class Jet::Contract::Check::Set
Attributes
checks[R]
Public Class Methods
new(*checks)
click to toggle source
# File lib/jet/contract/check/set.rb, line 9 def initialize(*checks) @checks = [] checks.each { |c| add!(c) } @checks.freeze end
Public Instance Methods
call(output)
click to toggle source
# File lib/jet/contract/check/set.rb, line 15 def call(output) @checks.each do |(check, *args)| check.(output, *args).tap { |r| return r if Jet.failure?(r) } end Result.success(output) end
to_builder()
click to toggle source
# File lib/jet/contract/check/set.rb, line 22 def to_builder @checks.map { |(c, *args)| [c.name].concat(args) } end
Private Instance Methods
add!(check)
click to toggle source
# File lib/jet/contract/check/set.rb, line 28 def add!(check) case check when Array add_with_args!(check.first, *check[1..-1]) when Hash check.each { |c, args| add_with_args!(c, args) } when Check add_with_args!(check) else Jet.type_check!(check.inspect, check, Array, Hash, Check) end @checks end
add_with_args!(check, *args)
click to toggle source
# File lib/jet/contract/check/set.rb, line 42 def add_with_args!(check, *args) Jet.type_check!(check.inspect, check, Check) @checks << [check].concat(args) end