29 Mar '12, 6am

Micromachine - микроскопический конечный автомат

"Конечный автомат — абстрактный автомат без выходного потока, число возможных состояний которого конечно. Результат работы автомата определяется по его конечному состоянию." (из статьи в Википедии "Конечный автомат ") Micromachine - это библиотека в 22 строчки кода, которая реализует функционал конечного автомата. require 'micromachine' machine = MicroMachine.new(:new) # Initial state. machine.transitions_for[:confirm] = { :new => :confirmed } machine.transitions_for[:ignore] = { :new => :ignored } machine.transitions_for[:reset] = { :confirmed => :new, :ignored => :new } machine.trigger(:confirm) #=> true machine.state #=> :confirmed machine.trigger(:ignore) #=> false machine.state #=> :confirmed machine.trigger(:reset) #=> true machine.state #=> :new machine.trigger(:ignore) #=> true machine.state #=> :ignored Если вам нужны только базовые возможности, то стоит обратить ...

Full article: http://rubyflow.ru/items/1274

Tweets