Module: Hubbado::Sequence::Controls::Contract
- Defined in:
- lib/hubbado/sequence/controls/contract.rb
Class Method Summary collapse
- .example(model: nil, valid: true, save_result: true) ⇒ Object
-
.example_class(valid: true, save_result: true) ⇒ Object
Returns a contract class that can be passed to Contract::Build as ‘contract_class:`.
Class Method Details
.example(model: nil, valid: true, save_result: true) ⇒ Object
5 6 7 |
# File 'lib/hubbado/sequence/controls/contract.rb', line 5 def self.example(model: nil, valid: true, save_result: true) example_class(valid: valid, save_result: save_result).new(model) end |
.example_class(valid: true, save_result: true) ⇒ Object
Returns a contract class that can be passed to Contract::Build as ‘contract_class:`. The class wraps whatever model is passed to .new.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/hubbado/sequence/controls/contract.rb', line 11 def self.example_class(valid: true, save_result: true) Class.new do attr_reader :model, :validated_with, :deserialized_with, :saved attr_accessor :errors define_singleton_method(:default_valid) { valid } define_singleton_method(:default_save_result) { save_result } def initialize(model = nil) @model = model @valid = self.class.default_valid @save_result = self.class.default_save_result @errors = @valid ? [] : [:something_invalid] end def validate(params) @validated_with = params @valid end def deserialize(params) @deserialized_with = params self end def save @saved = true @save_result end end end |