Class: Class
- Inherits:
-
Object
- Object
- Class
- Defined in:
- lib/sevendigital/model/sevendigital_object.rb
Instance Method Summary collapse
-
#sevendigital_basic_property(*properties) ⇒ Object
:nodoc:.
- #sevendigital_extended_property(accessor, get_method = nil) ⇒ Object
Instance Method Details
#sevendigital_basic_property(*properties) ⇒ Object
:nodoc:
4 5 6 7 8 9 10 |
# File 'lib/sevendigital/model/sevendigital_object.rb', line 4 def sevendigital_basic_property(*properties) @basic_properties ||= [] properties.each do |property| @basic_properties << "@#{property}".to_sym sevendigital_extended_property property, :get_details end end |
#sevendigital_extended_property(accessor, get_method = nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/sevendigital/model/sevendigital_object.rb', line 12 def sevendigital_extended_property(accessor, get_method = nil) get_method ||= "get_#{accessor.to_s}".to_sym demand_method = "demand_#{accessor.to_s}".to_sym define_method(demand_method) do |*| if instance_variable_get("@#{accessor}").nil? then value = send(get_method, *) instance_variable_set("@#{accessor}", value) if get_method != :get_details end end define_method("#{accessor}") do |*| begin send(demand_method, *) if instance_variable_get("@#{accessor}").nil? && @api_client.configuration.lazy_load rescue Sevendigital::SevendigitalError => error @api_client.log(:verbose) { "Class: Error while lazyloading #{accessor} - #{error.error_code} #{error.}" } raise error if !@api_client.configuration.ignorant_lazy_load end instance_variable_get("@#{accessor}") end define_method("#{accessor}=") do |val| instance_variable_set("@#{accessor}",val) end end |