Module: Transitions::ClassMethods

Defined in:
lib/transitions.rb

Instance Method Summary collapse

Instance Method Details

#define_state_query_method(state_name) ⇒ Object



57
58
59
60
61
# File 'lib/transitions.rb', line 57

def define_state_query_method(state_name)
  name = "#{state_name}?"
  undef_method(name) if method_defined?(name)
  define_method(name) { current_state.to_s == %(#{state_name}) }
end

#inherited(klass) ⇒ Object



34
35
36
37
# File 'lib/transitions.rb', line 34

def inherited(klass)
  super
  klass.state_machines = state_machines
end

#state_machine(name = nil, options = {}, &block) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/transitions.rb', line 47

def state_machine(name = nil, options = {}, &block)
  if name.is_a?(Hash)
    options = name
    name    = nil
  end
  name ||= :default
  state_machines[name] ||= Machine.new(self, name)
  block ? state_machines[name].update(options, &block) : state_machines[name]
end

#state_machinesObject



39
40
41
# File 'lib/transitions.rb', line 39

def state_machines
  @state_machines ||= {}
end

#state_machines=(value) ⇒ Object



43
44
45
# File 'lib/transitions.rb', line 43

def state_machines=(value)
  @state_machines = value ? value.dup : nil
end