class Remap::Mapper::Or
Represents two mappers that are combined with the | operator
@example Combine two mappers
class Mapper1 < Remap::Base contract do required(:a1) end end class Mapper2 < Remap::Base contract do required(:a2) end end state = Remap::State.call({ a2: 2 }) result = (Mapper1 | Mapper2).call!(state) result.fetch(:value) # => { a2: 2 }
Public Instance Methods
call!(state, &error)
click to toggle source
Succeeds if left or right succeeds Returns which ever succeeds first
@param state [State]
@yieldparam [Failure] if mapper fails @yieldreturn [Failure]
@return [Result]
# File lib/remap/mapper/or.rb, line 35 def call!(state, &error) left.call!(state) do |failure1| return right.call!(state) do |failure2| return error[failure1.merge(failure2)] end end end
inspect()
click to toggle source
@return [String]
# File lib/remap/mapper/or.rb, line 44 def inspect "%s | %s" % [left, right] end
Also aliased as: to_s