Module: Stateful::InstanceMethods

Defined in:
lib/Stateful/InstanceMethods.rb

Instance Method Summary collapse

Instance Method Details

#active?(machine_name = nil) ⇒ Boolean

predicate methods

Returns:

  • (Boolean)


32
33
34
35
36
37
38
39
40
# File 'lib/Stateful/InstanceMethods.rb', line 32

def active?(machine_name = nil)
  if machine_name
    !send("#{machine_name}_final_state?")
  elsif state_machines.empty?
    !final_state?
  else
    state_machines.keys.any?{|name| !send("#{name}_final_state?")}
  end
end

#all_states(machine_name = nil) ⇒ Object



14
15
16
# File 'lib/Stateful/InstanceMethods.rb', line 14

def all_states(machine_name = nil)
  self.class.stateful_state_machine(machine_name)
end

#final_state(machine_name = nil) ⇒ Object



22
23
24
# File 'lib/Stateful/InstanceMethods.rb', line 22

def final_state(machine_name = nil)
  self.class.stateful_state_machine(machine_name).final_state
end

#final_states(machine_name = nil) ⇒ Object



26
27
28
# File 'lib/Stateful/InstanceMethods.rb', line 26

def final_states(machine_name = nil)
  self.class.stateful_state_machine(machine_name).final_states
end

#initial_state(machine_name = nil) ⇒ Object



18
19
20
# File 'lib/Stateful/InstanceMethods.rb', line 18

def initial_state(machine_name = nil)
  self.class.stateful_state_machine(machine_name).initial_state
end

#state_machine(name) ⇒ Object



10
11
12
# File 'lib/Stateful/InstanceMethods.rb', line 10

def state_machine(name)
  state_machines[name]
end

#state_machinesObject



6
7
8
# File 'lib/Stateful/InstanceMethods.rb', line 6

def state_machines
  self.class.state_machines
end