class RSchema::Coercers::Any

Applies subcoercers, in order, until one succeeds

Attributes

subcoercers[R]

Public Class Methods

[](*subbuilders) click to toggle source
# File lib/rschema/coercers/any.rb, line 11
def self.[](*subbuilders)
  Builder.new(subbuilders)
end
new(subcoercers) click to toggle source
# File lib/rschema/coercers/any.rb, line 15
def initialize(subcoercers)
  @subcoercers = subcoercers
end

Public Instance Methods

call(value) click to toggle source
# File lib/rschema/coercers/any.rb, line 19
def call(value)
  subcoercers.each do |coercer|
    result = coercer.call(value)
    return result if result.valid?
  end
  Result.failure
end
will_affect?(value) click to toggle source
# File lib/rschema/coercers/any.rb, line 27
def will_affect?(value)
  subcoercers.any? { |sc| sc.will_affect?(value) }
end