Module: WorkflowTemplate::Definer::HasStateAdapter

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

Instance Method Summary collapse

Instance Method Details

#freezeObject



23
24
25
26
27
# File 'lib/workflow_template/definer/has_state_adapter.rb', line 23

def freeze
  @state_adapter = state_adapter unless frozen?

  super
end

#state_adapter(*args) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/workflow_template/definer/has_state_adapter.rb', line 9

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

    State::Adapter.fetch(:default)
  when 1 then @state_adapter = State::Adapter.fetch(args[0])
  else raise Error, "Unexpected arguments for state adapter: '#{args}'"
  end
end