mirror of
https://github.com/aasm/aasm
synced 2023-03-27 23:22:41 -04:00
72 lines
1.5 KiB
Text
72 lines
1.5 KiB
Text
= AASM - Ruby state machines
|
|
|
|
This package contains AASM, a library for adding finite state machines to Ruby classes.
|
|
|
|
AASM started as the acts_as_state_machine plugin but has evolved into a more generic library that no longer targets only ActiveRecord models.
|
|
|
|
AASM has the following features:
|
|
|
|
* States
|
|
* Machines
|
|
* Events
|
|
* Transitions
|
|
|
|
== Download
|
|
|
|
The latest AASM can currently be pulled from the git repository on github.
|
|
|
|
* http://github.com/rubyist/aasm/tree/master
|
|
|
|
A release and a gem are forthcoming.
|
|
|
|
|
|
|
|
== Installation
|
|
|
|
=== From GitHub hosted gems
|
|
|
|
% sudo gem sources -a http://gems.github.com # (you only need to do this once)
|
|
% sudo gem install rubyist-aasm
|
|
|
|
=== Building your own gems
|
|
|
|
% rake gem
|
|
% sudo gem install pkg/aasm-0.0.2.gem
|
|
|
|
|
|
== Simple Example
|
|
|
|
Here's a quick example highlighting some of the features.
|
|
|
|
class Conversation
|
|
include AASM
|
|
|
|
aasm_initial_state :new
|
|
|
|
aasm_state :new
|
|
aasm_state :read
|
|
aasm_state :closed
|
|
|
|
|
|
aasm_event :view do
|
|
transitions :to => :read, :from => [:new]
|
|
end
|
|
|
|
aasm_event :close do
|
|
transitions :to => :closed, :from => [:read, :new]
|
|
end
|
|
end
|
|
|
|
= Other Stuff
|
|
|
|
Author:: Scott Barron <scott at elitists dot net>
|
|
License:: Copyright 2006, 2007, 2008 by Scott Barron.
|
|
Released under an MIT-style license. See the LICENSE file
|
|
included in the distribution.
|
|
|
|
== Warranty
|
|
|
|
This software is provided "as is" and without any express or
|
|
implied warranties, including, without limitation, the implied
|
|
warranties of merchantibility and fitness for a particular
|
|
purpose.
|