Sha256: a14bb50d878c1e9bb189a01965f75c9bbc91bb35dcff05c528b73284ebee9db3
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module StateFu class State < StateFu::Sprocket attr_reader :entry_requirements, :exit_requirements def initialize(machine, name, options={}) @entry_requirements = [].extend ArrayWithSymbolAccessor @exit_requirements = [].extend ArrayWithSymbolAccessor super( machine, name, options ) end def events machine.events.from(self) end # # Proxy methods to StateFu::Lathe # # TODO - build something meta to build these proxy events def event( name, options={}, &block ) if block_given? lathe.event( name, options, &block ) else lathe.event( name, options ) end end def enterable_by?( binding, *args ) entry_requirements.reject do |r| res = binding.evaluate_requirement_with_args( r, *args ) end.empty? end def exitable_by?( binding, *args ) exit_requirements.reject do |r| binding.evaluate_requirement_with_args( r, *args ) end.empty? end # allows @obj.state_fu.state === :new def === other self.to_sym === other.to_sym end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
davidlee-state-fu-0.2.0 | lib/state_fu/state.rb |