class RSchema::Coercers::Chain
Applies a list of coercers, in order
Attributes
subcoercers[R]
Public Class Methods
[](*subbuilders)
click to toggle source
# File lib/rschema/coercers/chain.rb, line 11 def self.[](*subbuilders) Builder.new(subbuilders) end
new(subcoercers)
click to toggle source
# File lib/rschema/coercers/chain.rb, line 15 def initialize(subcoercers) @subcoercers = subcoercers end
Public Instance Methods
call(value)
click to toggle source
# File lib/rschema/coercers/chain.rb, line 19 def call(value) result = Result.success(value) subcoercers.each do |coercer| result = coercer.call(result.value) break if result.invalid? end result end
will_affect?(value)
click to toggle source
# File lib/rschema/coercers/chain.rb, line 28 def will_affect?(value) subcoercers.any? { |sc| sc.will_affect?(value) } end