Jaryl / aasm forked from rubyist/aasm

AASM - State machines for Ruby classes

This URL has Read+Write access

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 [Scott Barron]
file MIT-LICENSE Wed Oct 14 20:07:46 -0700 2009 cleanup, move to jeweler, nuke gemspec [ttilley]
file README.rdoc Mon Dec 29 07:05:07 -0800 2008 Fix misleading example which uses a 'new' state... [Scott Barron]
file Rakefile Fri Dec 12 07:05:09 -0800 2008 exclude rcov.rb from rcov report [Scott Barron]
file TODO Sat May 31 15:08:12 -0700 2008 Support enter and exit actions on states [Scott Barron]
file aasm.gemspec Tue Dec 30 06:59:07 -0800 2008 bump revision [Scott Barron]
file aasm.rb Mon Jan 07 11:11:38 -0800 2008 Import into git [Scott Barron]
directory doc/ Thu Feb 21 08:41:56 -0800 2008 Prepare rakefile and rake tasks for gem packagi... [Scott Barron]
directory lib/ Loading commit data...
directory spec/ Tue Dec 30 06:54:12 -0800 2008 Don't add named_scope if the ActiveRecord objec... [joshknowles]
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 :unread

    aasm_state :unread
    aasm_state :read
    aasm_state :closed

    aasm_event :view do
      transitions :to => :read, :from => [:unread]
    end

    aasm_event :close do
      transitions :to => :closed, :from => [:read, :unread]
    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.