class Definition::ValueObject
Public Class Methods
conform(value)
click to toggle source
# File lib/definition/value_object.rb, line 23 def conform(value) unless @definition raise Definition::NotConfiguredError.new( "Value object has not been configured with a defintion. Use .definition to set a definition" ) end @definition.conform(value) end
define_accessor_methods()
click to toggle source
# File lib/definition/value_object.rb, line 38 def define_accessor_methods @definition.keys.each do |key| define_method(key) { self[key] } end end
definition(definition)
click to toggle source
# File lib/definition/value_object.rb, line 33 def definition(definition) @definition = definition define_accessor_methods if definition.is_a?(Definition::Types::Keys) end
new(args = nil, **kwargs)
click to toggle source
Calls superclass method
# File lib/definition/value_object.rb, line 15 def initialize(args = nil, **kwargs) result = self.class.conform(args || kwargs) raise InvalidValueObjectError.new(result) unless result.passed? super(result.value.freeze) end