/ Published in: Diff
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
Index: lib/acts_as_state_machine.rb =================================================================== --- lib/acts_as_state_machine.rb (revision 66) +++ lib/acts_as_state_machine.rb (working copy) @@ -146,6 +146,10 @@ self.send(self.class.state_column).to_sym end + def current_state_text + self.send("#{current_state}_text") + end + # Returns what the next state for a given event would be, as a Ruby symbol. def next_state_for_event(event) ns = next_states_for_event(event) @@ -214,10 +218,12 @@ # state :closed, Proc.new { |o| Mailer.send_notice(o) } # end def state(name, opts={}) + text = opts.delete(:text) if opts.is_a?(Hash) state = SupportingClasses::State.new(name.to_sym, opts) read_inheritable_attribute(:states)[name.to_sym] = state define_method("#{state.name}?") { current_state == state.name } + define_method("#{state.name}_text") { text || "give me some :text" } end # Wraps ActiveRecord::Base.find to conveniently find all records in @@ -265,4 +271,4 @@ end end end -end \ No newline at end of file +end