Class: FlowCore::Definition::Callback

Inherits:
Object
  • Object
show all
Defined in:
lib/flow_core/definition/callback.rb

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ Callback

Returns a new instance of Callback.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/flow_core/definition/callback.rb', line 5

def initialize(attributes)
  constant_or_klass = attributes.is_a?(Hash) ? attributes.delete(:type) : attributes
  @klass =
    if constant_or_klass.is_a? String
      constant_or_klass.safe_constantize
    else
      constant_or_klass
    end
  unless @klass && @klass < FlowCore::TransitionCallback
    raise TypeError, "First argument expect `FlowCore::TransitionCallback` subclass or its constant name - #{constant_or_klass}"
  end

  @configuration = attributes.is_a?(Hash) ? attributes : nil
end

Instance Method Details

#compileObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/flow_core/definition/callback.rb', line 20

def compile
  if @configuration&.any?
    {
      type: @klass.to_s,
      configuration: @configuration
    }
  else
    {
      type: @klass.to_s
    }
  end
end