Class: Statelogic::ActiveRecord::ClassMethods::ConfigHelper
- Inherits:
-
Object
- Object
- Statelogic::ActiveRecord::ClassMethods::ConfigHelper
- Defined in:
- lib/statelogic/activerecord.rb
Instance Method Summary collapse
- #initial_state(name, options = {}, &block) ⇒ Object
-
#initialize(cl, config) ⇒ ConfigHelper
constructor
A new instance of ConfigHelper.
- #state(name, options = {}, &block) ⇒ Object
Constructor Details
#initialize(cl, config) ⇒ ConfigHelper
Returns a new instance of ConfigHelper.
43 44 45 |
# File 'lib/statelogic/activerecord.rb', line 43 def initialize(cl, config) @class, @config = cl, config end |
Instance Method Details
#initial_state(name, options = {}, &block) ⇒ Object
47 48 49 |
# File 'lib/statelogic/activerecord.rb', line 47 def initial_state(name, = {}, &block) state(name, .update(:initial => true), &block) end |
#state(name, options = {}, &block) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/statelogic/activerecord.rb', line 51 def state(name, = {}, &block) attr = @config[:attribute] attr_was = :"#{attr}_was" @class.class_eval do define_method("#{name}?") { send(attr) == name } define_method("was_#{name}?") { send(attr_was) == name } end StateScopeHelper.new(@class, name, @config).instance_eval(&block) @config[:states] << name @config[:initial] << name if [:initial] end |