class Hobo::Model::Lifecycles::DeclarationDSL

Public Instance Methods

create(name, options={}, &block) click to toggle source
# File lib/hobo/model/lifecycles.rb, line 101
def create(name, options={}, &block)
  @lifecycle.def_creator(name, block, options)
end
invariant(&block) click to toggle source
# File lib/hobo/model/lifecycles.rb, line 111
def invariant(&block)
  @lifecycle.invariants << block
end
state(*args, &block) click to toggle source
# 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
transition(name, change, options={}, &block) click to toggle source
# 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

Public Class Methods

new(lifecycle) click to toggle source
# File lib/hobo/model/lifecycles.rb, line 87
def initialize(lifecycle)
  @lifecycle = lifecycle
end