Class: Interactify::Contracts::Setup
- Inherits:
-
Object
- Object
- Interactify::Contracts::Setup
- Defined in:
- lib/interactify/contracts/setup.rb
Class Method Summary collapse
- .expects(context:, attrs:, filled:) ⇒ Object
- .promises(context:, attrs:, filled:, should_delegate:) ⇒ Object
Instance Method Summary collapse
-
#initialize(context:, attrs:, filled:, should_delegate: true) ⇒ Setup
constructor
A new instance of Setup.
- #setup(meth) ⇒ Object
- #setup_attrs(contract) ⇒ Object
Constructor Details
#initialize(context:, attrs:, filled:, should_delegate: true) ⇒ Setup
Returns a new instance of Setup.
14 15 16 17 18 19 |
# File 'lib/interactify/contracts/setup.rb', line 14 def initialize(context:, attrs:, filled:, should_delegate: true) @context = context @attrs = attrs @filled = filled @should_delegate = should_delegate end |
Class Method Details
.expects(context:, attrs:, filled:) ⇒ Object
6 7 8 |
# File 'lib/interactify/contracts/setup.rb', line 6 def self.expects(context:, attrs:, filled:) new(context:, attrs:, filled:).setup(:expects) end |
.promises(context:, attrs:, filled:, should_delegate:) ⇒ Object
10 11 12 |
# File 'lib/interactify/contracts/setup.rb', line 10 def self.promises(context:, attrs:, filled:, should_delegate:) new(context:, attrs:, filled:, should_delegate:).setup(:promises) end |
Instance Method Details
#setup(meth) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/interactify/contracts/setup.rb', line 21 def setup(meth) this = self @context.send(meth) do this.setup_attrs self end @context.delegate(*@attrs, to: :context) if @should_delegate end |
#setup_attrs(contract) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/interactify/contracts/setup.rb', line 31 def setup_attrs(contract) @attrs.each do |attr| field = contract.required(attr) field.filled if @filled end end |