Module: WorkflowTemplate::Definer::HasDefaultStateTransitionStrategy

Included in:
Workflow::ModuleMethods
Defined in:
lib/workflow_template/definer/has_default_state_transition_strategy.rb

Instance Method Summary collapse

Instance Method Details

#default_state_transition_strategy(*args) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/workflow_template/definer/has_default_state_transition_strategy.rb', line 13

def default_state_transition_strategy(*args)
  case args.length
  when 0
    return @default_state_transition_strategy if defined? @default_state_transition_strategy
    if defined?(superclass) && superclass.respond_to?(:default_state_transition_strategy)
      return superclass.default_state_transition_strategy
    end

    :merge
  when 1 then @default_state_transition_strategy = State.normalize_transition_strategy(args[0])
  else raise Error, "Unexpected arguments for state transition strategy: '#{args}'"
  end
end

#freezeObject



27
28
29
30
31
# File 'lib/workflow_template/definer/has_default_state_transition_strategy.rb', line 27

def freeze
  @default_state_transition_strategy = default_state_transition_strategy unless frozen?

  super
end