Class: SplitApi::DataObjects::BaseDataObject
- Inherits:
-
Object
- Object
- SplitApi::DataObjects::BaseDataObject
- Defined in:
- lib/splitapi-rb/data_objects/base_data_object.rb
Direct Known Subclasses
Constant Summary collapse
- PROPERTIES =
this is redefined in the subclass
%i().freeze
Instance Method Summary collapse
- #==(other_obj) ⇒ Object
-
#initialize(opts = {}) ⇒ BaseDataObject
constructor
A new instance of BaseDataObject.
- #to_h ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ BaseDataObject
Returns a new instance of BaseDataObject.
6 7 8 9 10 |
# File 'lib/splitapi-rb/data_objects/base_data_object.rb', line 6 def initialize(opts = {}) opts.each do |k, v| instance_variable_set("@#{k}", v) unless v.nil? end end |
Instance Method Details
#==(other_obj) ⇒ Object
12 13 14 |
# File 'lib/splitapi-rb/data_objects/base_data_object.rb', line 12 def ==(other_obj) self.class::PROPERTIES.all? { |property| send(property) == other_obj.send(property) } end |
#to_h ⇒ Object
16 17 18 19 20 |
# File 'lib/splitapi-rb/data_objects/base_data_object.rb', line 16 def to_h self.class::PROPERTIES.each_with_object({}) do |property, memo| memo.merge!(property => instance_variable_get("@#{property}")) end end |