class Jet::Contract::Check
Attributes
check[R]
name[R]
Public Class Methods
[](key)
click to toggle source
# File lib/jet/contract/check.rb, line 6 def self.[](key) BuiltIn[key] end
new(name, &check)
click to toggle source
# File lib/jet/contract/check.rb, line 12 def initialize(name, &check) raise ArgumentError, "no block given" unless block_given? @check = lambda(&check) @name = name end
Public Instance Methods
call(output, *args)
click to toggle source
# File lib/jet/contract/check.rb, line 18 def call(output, *args) result = check.(output, *args) return Result.success(output, args: args) if Jet.success?(result) Result.failure(error(result), Jet.context(result, args: args, input: output)) end
inspect()
click to toggle source
# File lib/jet/contract/check.rb, line 24 def inspect "#<#{self.class.name}:#{name}>" end
to_sym()
click to toggle source
# File lib/jet/contract/check.rb, line 28 def to_sym name end
Private Instance Methods
error(result)
click to toggle source
# File lib/jet/contract/check.rb, line 34 def error(result) [:check_failure, name].tap { |errors| errors << result.output if result } end