Module: PromisePay::Lib::DynamicAccessors
- Included in:
- Callback, Fee, Item, ItemStatus, User
- Defined in:
- lib/promise_pay/lib/dynamic_accessors.rb
Instance Method Summary collapse
- #accessor_defined?(attribute) ⇒ Boolean
- #assign_instance_variables(result) ⇒ Object
- #define_accessor(attribute, value, object) ⇒ Object
- #initialize_property(attribute, value) ⇒ Object
- #set_property(attribute, value) ⇒ Object
Instance Method Details
#accessor_defined?(attribute) ⇒ Boolean
23 24 25 |
# File 'lib/promise_pay/lib/dynamic_accessors.rb', line 23 def accessor_defined?(attribute) respond_to?(attribute) && respond_to?("#{attribute}=") end |
#assign_instance_variables(result) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/promise_pay/lib/dynamic_accessors.rb', line 4 def assign_instance_variables(result) return if result.empty? result.each do |attribute, value| if value.is_a?(Hash) value.each { |att, val| initialize_property(att, val) } else initialize_property(attribute, value) end end self end |
#define_accessor(attribute, value, object) ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/promise_pay/lib/dynamic_accessors.rb', line 32 def define_accessor(attribute, value, object) klass = object.class if attribute.to_s.end_with? "_at" define_date_based_accessors(attribute, value, klass) else define_standard_accessors(attribute, value, klass) end end |
#initialize_property(attribute, value) ⇒ Object
17 18 19 20 21 |
# File 'lib/promise_pay/lib/dynamic_accessors.rb', line 17 def initialize_property(attribute, value) attribute = attribute.gsub(/s$/, '_id') if ["buyers","sellers"].include? attribute define_accessor(attribute, value, self) unless accessor_defined?(attribute) set_property(attribute, value) end |
#set_property(attribute, value) ⇒ Object
27 28 29 30 |
# File 'lib/promise_pay/lib/dynamic_accessors.rb', line 27 def set_property(attribute, value) setter_method = "#{attribute}=" self.send(setter_method, value) end |