Class: NinjaModel::Associations::NinjaModelProxy
- Inherits:
-
Object
- Object
- NinjaModel::Associations::NinjaModelProxy
- Defined in:
- lib/ninja_model/rails_ext/active_record.rb
Instance Attribute Summary collapse
-
#proxy_klass ⇒ Object
readonly
Returns the value of attribute proxy_klass.
Instance Method Summary collapse
- #handle_association(macro, association_id, options) ⇒ Object
-
#initialize(active_record) ⇒ NinjaModelProxy
constructor
A new instance of NinjaModelProxy.
- #instance(obj) ⇒ Object
Constructor Details
#initialize(active_record) ⇒ NinjaModelProxy
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/ninja_model/rails_ext/active_record.rb', line 154 def initialize(active_record) @klass = active_record @klass.class_eval do def ninja_proxy @ninja_proxy ||= begin self.class.ninja_proxy.instance(self) end @ninja_proxy.attributes = self.attributes.delete_if { |k,v| k.eql?('id') } @ninja_proxy end end @proxy_klass = active_record.parent.const_set("#{@klass.model_name}Proxy", Class.new(NinjaModel::Base)) @klass.columns_hash.each_pair do |k,v| @proxy_klass.send :attribute, k, v.type, v.default, @proxy_klass end end |
Instance Attribute Details
#proxy_klass ⇒ Object (readonly)
Returns the value of attribute proxy_klass.
153 154 155 |
# File 'lib/ninja_model/rails_ext/active_record.rb', line 153 def proxy_klass @proxy_klass end |
Instance Method Details
#handle_association(macro, association_id, options) ⇒ Object
179 180 181 182 183 184 185 186 |
# File 'lib/ninja_model/rails_ext/active_record.rb', line 179 def handle_association(macro, association_id, ) unless macro.eql?(:belongs_to) = {:foreign_key => derive_foreign_key}.merge() end @proxy = nil @proxy_klass.send macro, association_id, end |
#instance(obj) ⇒ Object
173 174 175 176 177 |
# File 'lib/ninja_model/rails_ext/active_record.rb', line 173 def instance(obj) proxy = @proxy_klass.new proxy.send :instantiate, {'attributes' => obj.attributes} proxy end |