Class: Flowlink::ObjectBase

Inherits:
Object
  • Object
show all
Defined in:
lib/flowlink_data/objectbase.rb

Direct Known Subclasses

Product

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.fieldsObject



45
46
47
48
# File 'lib/flowlink_data/objectbase.rb', line 45

def self.fields
  # A list of fields that the object should have.
  fail NotImplementedError
end

Instance Method Details

#fieldsObject



50
51
52
53
# File 'lib/flowlink_data/objectbase.rb', line 50

def fields
  # TODO: @fields ||= self.class.fields ???
  self.class.fields
end

#to_hash(*overrides) ⇒ Object

Base class for any Flowlink objects. Child classes should implement self.fields internally.



35
36
37
38
39
40
41
# File 'lib/flowlink_data/objectbase.rb', line 35

def to_hash(*overrides)
  overrides = FieldMethod.multi_new(overrides)
  defaults  = FieldMethod.multi_new(fields)
  f_methods = FieldMethod.merge(overrides, defaults)

  Hash[f_methods.map { |f| [f.method_name.to_s, send(*f.to_a)] }]
end