Class: Vend::Resource
Direct Known Subclasses
Brand, Contact, Outlet, PriceBookEntry, RegisterSalePayment, RegisterSaleProduct, RemoteResource
Instance Attribute Summary collapse
-
#store ⇒ Object
Returns the value of attribute store.
Instance Method Summary collapse
-
#initialize(attributes = {}) ⇒ Resource
constructor
A new instance of Resource.
- #initialize_virtus ⇒ Object
- #set_attributes(attributes) ⇒ Object
- #set_attributes_virtus ⇒ Object
Constructor Details
#initialize(attributes = {}) ⇒ Resource
Returns a new instance of Resource.
12 13 14 15 16 17 |
# File 'lib/vend/resource.rb', line 12 def initialize attributes={} current_attribute_set = attribute_set self.extend(Virtus) attribute_set.merge(current_attribute_set) initialize_virtus attributes end |
Instance Attribute Details
#store ⇒ Object
Returns the value of attribute store.
7 8 9 |
# File 'lib/vend/resource.rb', line 7 def store @store end |
Instance Method Details
#initialize_virtus ⇒ Object
11 |
# File 'lib/vend/resource.rb', line 11 alias_method :initialize_virtus, :initialize |
#set_attributes(attributes) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/vend/resource.rb', line 20 def set_attributes(attributes) public_method_names = public_methods.map(&:to_s) unknown_attributes = attributes. dup. delete_if{|k, v| public_method_names.include?("#{k.to_s}=") } if unknown_attributes.size > 0 dates = %w{ created_at deleted_at updated_at } self.extend Virtus unless self.respond_to?(:attribute) unknown_attributes. each do |k,v| case when dates.include?(k) klass = DateTime else klass = String end self.attribute k, klass end end set_attributes_virtus attributes end |
#set_attributes_virtus ⇒ Object
19 |
# File 'lib/vend/resource.rb', line 19 alias_method :set_attributes_virtus, :set_attributes |