Class: ValueObjects::Base

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Model
Defined in:
lib/value_objects/base.rb

Defined Under Namespace

Classes: Collection

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.attrsObject (readonly)

Returns the value of attribute attrs.



30
31
32
# File 'lib/value_objects/base.rb', line 30

def attrs
  @attrs
end

Class Method Details

.dump(value) ⇒ Object



22
23
24
# File 'lib/value_objects/base.rb', line 22

def dump(value)
  value.to_hash if value
end

.i18n_scopeObject



26
27
28
# File 'lib/value_objects/base.rb', line 26

def i18n_scope
  :value_objects
end

.load(value) ⇒ Object



18
19
20
# File 'lib/value_objects/base.rb', line 18

def load(value)
  new(value) if value
end

Instance Method Details

#==(other) ⇒ Object



8
9
10
# File 'lib/value_objects/base.rb', line 8

def ==(other)
  self.class == other.class && self.class.attrs.all? { |key| public_send(key) == other.public_send(key) }
end

#to_hashObject



12
13
14
# File 'lib/value_objects/base.rb', line 12

def to_hash
  self.class.attrs.each_with_object({}) { |key, hash| hash[key] = public_send(key) }
end