class ValueSemantics::ArrayCoercer

Attributes

element_coercer[R]

Public Class Methods

new(element_coercer = nil) click to toggle source
# File lib/value_semantics/array_coercer.rb, line 5
def initialize(element_coercer = nil)
  @element_coercer = element_coercer
  freeze
end

Public Instance Methods

call(obj) click to toggle source
# File lib/value_semantics/array_coercer.rb, line 10
def call(obj)
  if obj.respond_to?(:to_a)
    array = obj.to_a
    if element_coercer
      array.map { |element| element_coercer.call(element) }
    else
      array
    end
  else
    obj
  end
end