Module: Trax::Model::ClassMethods
- Defined in:
- lib/trax/model.rb
Instance Method Summary collapse
- #after_inherited(&block) ⇒ Object
- #mixin(key, options = {}) ⇒ Object
- #mixins(*args) ⇒ Object
- #register_trax_models(*models) ⇒ Object
- #trax_registry_key ⇒ Object
Instance Method Details
#after_inherited(&block) ⇒ Object
114 115 116 |
# File 'lib/trax/model.rb', line 114 def after_inherited(&block) instance_variable_set(:@_after_inherited_block, block) end |
#mixin(key, options = {}) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/trax/model.rb', line 118 def mixin(key, = {}) raise ::Trax::Model::Errors::MixinNotRegistered.new( model: self.name, mixin: key ) unless ::Trax::Model.mixin_registry.key?(key) mixin_module = ::Trax::Model.mixin_registry[key] self.registered_mixins[key] = mixin_module self.class_eval do include(mixin_module) unless self.ancestors.include?(mixin_module) = {} if .is_a?(TrueClass) = { => true } if .is_a?(Symbol) mixin_module.apply_mixin(self, ) if mixin_module.respond_to?(:apply_mixin) if mixin_module.instance_variable_defined?(:@_after_included_block) block = mixin_module.instance_variable_get(:@_after_included_block) instance_exec(, &block) end end end |
#mixins(*args) ⇒ Object
142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/trax/model.rb', line 142 def mixins(*args) = args. if(!.blank?) .each_pair do |key, val| self.mixin(key, val) end else args.map{ |key| mixin(key) } end end |
#register_trax_models(*models) ⇒ Object
154 155 156 157 158 |
# File 'lib/trax/model.rb', line 154 def register_trax_models(*models) models.each do |model| register_trax_model(model) end end |
#trax_registry_key ⇒ Object
160 161 162 |
# File 'lib/trax/model.rb', line 160 def trax_registry_key name.underscore end |