Module: MandateClaw

Defined in:
lib/mandate_claw.rb,
lib/mandate_claw/version.rb,
lib/mandate_claw/dsl/party.rb,
lib/mandate_claw/dsl/contract.rb,
lib/mandate_claw/dsl/temporal.rb,
lib/mandate_claw/dsl/obligation.rb,
lib/mandate_claw/dsl/permission.rb,
lib/mandate_claw/dsl/attestation.rb,
lib/mandate_claw/dsl/prohibition.rb,
lib/mandate_claw/dsl/agent_bounds.rb,
lib/mandate_claw/dsl/decision_rule.rb,
lib/mandate_claw/renderers/markdown_renderer.rb,
lib/mandate_claw/validators/contract_validator.rb

Defined Under Namespace

Modules: DSL, Renderers, Validators Classes: BreachError, Error, ValidationError

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.define(name, &block) ⇒ Object

Convenience: define a contract class inline

MandateClaw.define(:invoice_contract) do
  party :buyer,  identifies_by: :customer_id
  ...
end


31
32
33
34
35
# File 'lib/mandate_claw.rb', line 31

def self.define(name, &block)
  contract = Class.new(MandateClaw::DSL::Contract)
  contract.contract(&block)
  contract
end