Sha256: 95e717efe729e12e0dac29e9b43e2b6324a14d8b1f50c0e709e4703682b21e84

Contents?: true

Size: 1.38 KB

Versions: 46

Compression:

Stored size: 1.38 KB

Contents

module Spider
    
    module ControllerMixin
        
        def self.included(mod)
            extend_recipient(mod)
        end
        
        def self.extend_recipient(mod)
            mod.extend(ControllerMixinModuleMethods)
            mod.extend(ControllerMixinClassMethods) if mod.is_a?(Class)
            mod.controller_mixins << self
            mod.extend(self.const_get(:ClassMethods)) if self.const_defined?(:ClassMethods)
        end
        
        module ControllerMixinModuleMethods
            
            def controller_mixins
                @controller_mixins ||= []
            end
            
            def included(mod)
                extend_recipient(mod)
                super
            end
            
            def extend_recipient(mod)
                mod.extend(ControllerMixinModuleMethods)
                mod.extend(ControllerMixinClassMethods) if mod.is_a?(Class)
                mod.controller_mixins << self
                mod.extend(self.const_get(:ClassMethods)) if self.const_defined?(:ClassMethods)
            end
            
        end
        
        module ControllerMixinClassMethods
            
            def inherited(klass)
                self.controller_mixins.each do |mod|
                    klass.send(:include, mod)
                end
                super
            end
            
        end
                
    end
    
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
spiderfw-1.0.1 lib/spiderfw/controller/controller_mixin.rb
spiderfw-1.0.0 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.39 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.38 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.37 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.35 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.34 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.33 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.32 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.31 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.30 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.29 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.28 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.27 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.26 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.26.pre1 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.25 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.24 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.23 lib/spiderfw/controller/controller_mixin.rb
spiderfw-0.6.22 lib/spiderfw/controller/controller_mixin.rb