Module: LinkedRails::Enhanceable
- Included in:
- Actions::List
- Defined in:
- lib/linked_rails/enhanceable.rb
Instance Method Summary collapse
- #enhanceable(klass_method, enhanceable) ⇒ Object
- #include_enhancements(klass_method, enhanceable) ⇒ Object
Instance Method Details
#enhanceable(klass_method, enhanceable) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/linked_rails/enhanceable.rb', line 12 def enhanceable(klass_method, enhanceable) include_enhancements(klass_method, enhanceable) define_singleton_method('inherited') do |target| super(target) target.include_enhancements(klass_method, enhanceable) if target.name end end |
#include_enhancements(klass_method, enhanceable) ⇒ Object
5 6 7 8 9 10 |
# File 'lib/linked_rails/enhanceable.rb', line 5 def include_enhancements(klass_method, enhanceable) send(klass_method) .try(:enhancement_modules, enhanceable) &.reject { |mod| include? mod } &.each { |mod| include mod } end |