public
Fork of rubyist/aasm
Description: AASM - State machines for Ruby classes
Homepage: http://rubyi.st/aasm
Clone URL: git://github.com/eric/aasm.git
rubyist (author)
Wed Dec 24 07:21:37 -0800 2008
commit  82c3202da3dc3b53e93609a3537e394c925dbf15
tree    652e2f5c944523b1c5a034907553eb47bdb7f1cf
parent  37dd0439a566a7c27be5d6c6faf1774bbd19fc67
aasm /
name age message
file .gitignore Wed Jul 09 16:42:04 -0700 2008 Fixing version number in README.rdoc. [eric]
file CHANGELOG Mon Jun 23 06:02:21 -0700 2008 update changelog [rubyist]
file MIT-LICENSE Wed Oct 14 20:07:46 -0700 2009 cleanup, move to jeweler, nuke gemspec [Travis Tilley]
file README.rdoc Wed Jul 09 16:42:04 -0700 2008 Fixing version number in README.rdoc. [eric]
file Rakefile Fri Dec 12 07:05:09 -0800 2008 exclude rcov.rb from rcov report [rubyist]
file TODO Sat May 31 15:08:12 -0700 2008 Support enter and exit actions on states [rubyist]
file aasm.gemspec Mon Aug 18 07:34:51 -0700 2008 another ping to try to get github to publish th... [Greg Vaughn]
file aasm.rb Mon Jan 07 11:11:38 -0800 2008 Import into git [rubyist]
directory doc/ Thu Feb 21 08:41:56 -0800 2008 Prepare rakefile and rake tasks for gem packagi... [rubyist]
directory lib/ Loading commit data...
directory spec/ Wed Nov 05 08:06:36 -0800 2008 Allow duplicate state names in subclasses When... [tpope]
README.rdoc

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.

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-2.0.1.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.
Bugs:rubyist.lighthouseapp.com/projects/13207-aasm/
GitHub:github.com/rubyist/aasm/tree/master

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.