# File lib/hobo/model/lifecycles.rb, line 101 def create(name, options={}, &block) @lifecycle.def_creator(name, block, options) end
# File lib/hobo/model/lifecycles.rb, line 111 def invariant(&block) @lifecycle.invariants << block end
# File lib/hobo/model/lifecycles.rb, line 91 def state(*args, &block) options = args.extract_options! names = args states = names.map {|name| @lifecycle.def_state(name, block) } if options[:default] raise ArgumentError, "you must define one state if you give the :default option" unless states.length == 1 @lifecycle.default_state = states.first end end
# File lib/hobo/model/lifecycles.rb, line 105 def transition(name, change, options={}, &block) change.each do |k,v| @lifecycle.def_transition(name, Array(k), v, block, options) end end
# File lib/hobo/model/lifecycles.rb, line 87 def initialize(lifecycle) @lifecycle = lifecycle end