Class: ActiveRecord::Base
- Inherits:
-
Object
- Object
- ActiveRecord::Base
show all
- Defined in:
- lib/ninja_model/rails_ext/active_record.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/ninja_model/rails_ext/active_record.rb', line 31
def method_missing(method, *args)
begin
super
rescue NoMethodError => ex
if self.class.read_inheritable_attribute(:ninja_proxy) && ninja_proxy.respond_to?(method)
ninja_proxy.send(method, *args)
else
raise ex
end
end
end
|
Class Method Details
.has_one_with_ninja_model(association_id, options = {}) ⇒ Object
6
7
8
9
10
11
12
|
# File 'lib/ninja_model/rails_ext/active_record.rb', line 6
def has_one_with_ninja_model(association_id, options = {})
if NinjaModel.ninja_model?(options[:class_name] || association_id)
ninja_proxy.handle_association(:has_one, association_id, options)
else
has_one_without_ninja_model(association_id, options)
end
end
|
.ninja_proxy ⇒ Object
25
26
27
|
# File 'lib/ninja_model/rails_ext/active_record.rb', line 25
def ninja_proxy
read_inheritable_attribute(:ninja_proxy) || write_inheritable_attribute(:ninja_proxy, NinjaModel::Associations::NinjaModelProxy.new(self))
end
|
.reflect_on_association_with_ninja_model(association) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/ninja_model/rails_ext/active_record.rb', line 15
def reflect_on_association_with_ninja_model(association)
if read_inheritable_attribute(:ninja_proxy) && ninja_proxy.proxy_klass.reflections.include?(association)
ninja_proxy.proxy_klass.reflect_on_association(association)
else
reflect_on_association_without_ninja_model(association)
end
end
|