Class: Bparity::Formal::ContractChecker
- Inherits:
-
Object
- Object
- Bparity::Formal::ContractChecker
- Defined in:
- lib/bparity/formal/contract.rb
Instance Method Summary collapse
- #check(invariants, context) ⇒ Object
-
#initialize(compiler: ContractCompiler.new) ⇒ ContractChecker
constructor
A new instance of ContractChecker.
Constructor Details
#initialize(compiler: ContractCompiler.new) ⇒ ContractChecker
Returns a new instance of ContractChecker.
64 65 66 |
# File 'lib/bparity/formal/contract.rb', line 64 def initialize(compiler: ContractCompiler.new) @compiler = compiler end |
Instance Method Details
#check(invariants, context) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/bparity/formal/contract.rb', line 68 def check(invariants, context) invariants.filter_map do |invariant| predicate = @compiler.compile(invariant.fetch("expr")) next if predicate.call(context) { "id" => invariant["id"], "expression" => invariant["expr"], "input" => context } rescue StandardError => e { "id" => invariant["id"], "expression" => invariant["expr"], "error" => e., "input" => context } end end |