module ValueObject::DSL

Attributes

all[RW]

Public Instance Methods

find(key) click to toggle source
# File lib/value_object/dsl.rb, line 3
def find(key)
  return unless key
  object = all.find { |v| v.key.to_s.eql?(key.to_s) }
  object || raise_invalid_value(key)
end

Protected Instance Methods

value(*args) click to toggle source
# File lib/value_object/dsl.rb, line 13
def value(*args)
  object = new(*args)
  define_value_getter object

  @all ||= []
  @all << object
end

Private Instance Methods

define_value_getter(object) click to toggle source
# File lib/value_object/dsl.rb, line 23
def define_value_getter(object)
  define_singleton_method(object.key) { object }
end
raise_invalid_value(key) click to toggle source
# File lib/value_object/dsl.rb, line 27
def raise_invalid_value(key)
  raise(ValueObject::InvalidValue, "#{self} #{key} not found")
end