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