Module: Troupe::Contract::ClassMethods
- Defined in:
- lib/troupe/contract.rb
Instance Method Summary collapse
- #all_properties ⇒ Object
- #default_for(attr) ⇒ Object
- #expected_and_permitted_properties ⇒ Object
- #expected_properties ⇒ Object
-
#expects(*args, &block) ⇒ Object
Sugar for core DSL.
- #missing_properties(context) ⇒ Object
- #on_violation(&block) ⇒ Object
- #on_violation_block ⇒ Object
- #on_violation_for(*args, &block) ⇒ Object
- #permits(*args, &block) ⇒ Object
- #permitted_properties ⇒ Object
-
#property(attr, opts = {}, &block) ⇒ Object
Core DSL.
- #provided_properties ⇒ Object
- #provides(*args, &block) ⇒ Object
- #violation_block_for(attr) ⇒ Object
Instance Method Details
#all_properties ⇒ Object
100 |
# File 'lib/troupe/contract.rb', line 100 def all_properties; property_table.all_properties; end |
#default_for(attr) ⇒ Object
101 |
# File 'lib/troupe/contract.rb', line 101 def default_for(attr); property_table.default_for(attr); end |
#expected_and_permitted_properties ⇒ Object
105 106 107 |
# File 'lib/troupe/contract.rb', line 105 def expected_and_permitted_properties property_table.expected_and_permitted_properties end |
#expected_properties ⇒ Object
97 |
# File 'lib/troupe/contract.rb', line 97 def expected_properties; property_table.expected_properties; end |
#expects(*args, &block) ⇒ Object
Sugar for core DSL
81 82 83 |
# File 'lib/troupe/contract.rb', line 81 def expects(*args, &block) presence_is(:expected, args, block) end |
#missing_properties(context) ⇒ Object
103 |
# File 'lib/troupe/contract.rb', line 103 def missing_properties(context); property_table.missing_properties(context); end |
#on_violation(&block) ⇒ Object
75 76 77 |
# File 'lib/troupe/contract.rb', line 75 def on_violation(&block) @on_violation_block = block end |
#on_violation_block ⇒ Object
93 94 95 |
# File 'lib/troupe/contract.rb', line 93 def on_violation_block @on_violation_block end |
#on_violation_for(*args, &block) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/troupe/contract.rb', line 68 def on_violation_for(*args, &block) args.each do |arg| next unless property = property_table.get(arg) property.on_violation = block end end |
#permits(*args, &block) ⇒ Object
85 86 87 |
# File 'lib/troupe/contract.rb', line 85 def permits(*args, &block) presence_is(:permitted, args, block) end |
#permitted_properties ⇒ Object
98 |
# File 'lib/troupe/contract.rb', line 98 def permitted_properties; property_table.permitted_properties; end |
#property(attr, opts = {}, &block) ⇒ Object
Core DSL
61 62 63 64 65 66 |
# File 'lib/troupe/contract.rb', line 61 def property(attr, opts={}, &block) opts.merge!(default: block) if block property_table.set(attr, opts) delegate_properties end |
#provided_properties ⇒ Object
99 |
# File 'lib/troupe/contract.rb', line 99 def provided_properties; property_table.provided_properties; end |
#provides(*args, &block) ⇒ Object
89 90 91 |
# File 'lib/troupe/contract.rb', line 89 def provides(*args, &block) presence_is(:provided, args, block) end |
#violation_block_for(attr) ⇒ Object
102 |
# File 'lib/troupe/contract.rb', line 102 def violation_block_for(attr); property_table.get(attr).on_violation; end |