class Objectifier::ScalarValue
Attributes
name[R]
type[R]
Public Class Methods
new(name, args)
click to toggle source
# File lib/objectifier/scalar_value.rb, line 7 def initialize(name, args) raise ArgumentError, "name required" if name.nil? raise ArgumentError, "type required" unless args[:type] @name = name.to_s @type = args[:type] # TODO: check type is valid? @required = args.fetch(:required, true) end
Public Instance Methods
call(parameters)
click to toggle source
# File lib/objectifier/scalar_value.rb, line 19 def call(parameters) if @required && !key_present(parameters) ErrorResult.err(@name, "required field missing") elsif key_present(parameters) transform(key_value(parameters)) else SuccessResult.new(@name) end end
required?()
click to toggle source
# File lib/objectifier/scalar_value.rb, line 15 def required? @required end
to_s()
click to toggle source
# File lib/objectifier/scalar_value.rb, line 29 def to_s "scalar %s - type: %s - required: %s" % [ @name, @type.to_s, @required.to_s ] end
Protected Instance Methods
key_present(parameters)
click to toggle source
# File lib/objectifier/scalar_value.rb, line 35 def key_present(parameters) parameters.has_key?(@name) end
key_value(parameters)
click to toggle source
# File lib/objectifier/scalar_value.rb, line 39 def key_value(parameters) parameters.fetch( @name, parameters[@name] ) end
transform(value)
click to toggle source
# File lib/objectifier/scalar_value.rb, line 46 def transform(value) Objectifier.factories.for_type(@type).call(@name, value) end