Module: Transitions::ClassMethods
- Defined in:
- lib/transitions.rb
Instance Method Summary collapse
- #define_state_query_method(state_name) ⇒ Object
- #inherited(klass) ⇒ Object
- #state_machine(name = nil, options = {}, &block) ⇒ Object
- #state_machines ⇒ Object
- #state_machines=(value) ⇒ Object
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, = {}, &block) if name.is_a?(Hash) = name name = nil end name ||= :default state_machines[name] ||= Machine.new(self, name) block ? state_machines[name].update(, &block) : state_machines[name] end |
#state_machines ⇒ Object
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 |