Class: Interactify::Dsl::IfKlass

Inherits:
Object
  • Object
show all
Defined in:
lib/interactify/dsl/if_klass.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(if_builder) ⇒ IfKlass

Returns a new instance of IfKlass.



8
9
10
# File 'lib/interactify/dsl/if_klass.rb', line 8

def initialize(if_builder)
  @if_builder = if_builder
end

Instance Attribute Details

#if_builderObject (readonly)

Returns the value of attribute if_builder.



6
7
8
# File 'lib/interactify/dsl/if_klass.rb', line 6

def if_builder
  @if_builder
end

Instance Method Details

#klassObject



12
13
14
15
16
17
18
19
# File 'lib/interactify/dsl/if_klass.rb', line 12

def klass
  attach_expectations
  attach_source_location
  attach_run!
  attach_inspect

  if_builder.klass_basis
end

#run!(context) ⇒ Object



21
22
23
24
25
26
# File 'lib/interactify/dsl/if_klass.rb', line 21

def run!(context)
  result = condition.is_a?(Proc) ? condition.call(context) : context.send(condition)

  interactor = result ? success_interactor : failure_interactor
  interactor.respond_to?(:call!) ? interactor.call!(context) : interactor&.call(context)
end