public
Rubygem
Fork of rubyist/aasm
Description: AASM - State machines for Ruby classes
Homepage: http://rubyi.st/aasm
Clone URL: git://github.com/notch8/aasm.git
aasm /
name age message
file .gitignore Thu May 29 13:28:06 -0700 2008 add coverage output to gitignore [rubyist]
file CHANGELOG Mon Jun 23 06:02:21 -0700 2008 update changelog [rubyist]
file MIT-LICENSE Thu Feb 21 09:54:42 -0800 2008 Add .aasm_states method to get a list of all st... [rubyist]
file README.rdoc Sun Jun 22 08:50:22 -0700 2008 typo [rubyist]
file Rakefile Thu May 29 13:27:44 -0700 2008 That doesn't work [rubyist]
file TODO Sat May 31 15:08:12 -0700 2008 Support enter and exit actions on states [rubyist]
file aasm.gemspec Tue Jul 08 19:23:32 -0700 2008 pump version so gem updates [rubyist]
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/ Sun Jun 22 08:17:12 -0700 2008 Take state column for AR persistance out of cla... [rubyist]
directory spec/ Sun Jun 22 08:17:12 -0700 2008 Take state column for AR persistance out of cla... [rubyist]
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.

  • 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. Bugs:http://rubyist.lighthouseapp.com/projects/13207-aasm/ GitHub:http://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.