module SassListen::FSM::ClassMethods
def default_state(new_default = nil)
Obtain or set the default state
def default_state(new_default = nil) if new_default @default_state = new_default.to_sym else defined?(@default_state) ? @default_state : DEFAULT_STATE end end
def state(*args, &block)
Options:
Declare an FSM state and optionally provide a callback block to fire
def state(*args, &block) if args.last.is_a? Hash # Stringify keys :/ options = args.pop.each_with_object({}) { |(k, v), h| h[k.to_s] = v } else options = {} end args.each do |name| name = name.to_sym default_state name if options['default'] states[name] = State.new(name, options['to'], &block) end end
def states
def states @states ||= {} end