# State machines in Ruby

**URL:** <https://www.ruby-forum.com/t/state-machines-in-ruby/166800>\
**Category:** Ruby\
**Created:** [April 29, 2009, 5:34pm UTC](https://www.ruby-forum.com/t/state-machines-in-ruby/166800 "2009-04-29T17:34:13Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![juan\_zanos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/4da419/32.png) [@juan\_zanos](https://www.ruby-forum.com/u/juan_zanos)\
**Post date:** [April 29, 2009, 5:34pm UTC](https://www.ruby-forum.com/t/state-machines-in-ruby/166800/1 "2009-04-29T17:34:13Z")

</div>

What’s the best way to represent a state machine in Ruby? I’m not  
concerned with performance, just simplicity.

---

<div class="post-metadata">

**Author:** ![juan\_zanos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/4da419/32.png) [@juan\_zanos](https://www.ruby-forum.com/u/juan_zanos)\
**Post date:** [April 29, 2009, 6:37pm UTC](https://www.ruby-forum.com/t/state-machines-in-ruby/166800/2 "2009-04-29T18:37:32Z")

</div>

AASM - State machines for Ruby classes

> **[GitHub - rubyist/aasm: AASM - State machines for Ruby classes](https://github.com/rubyist/aasm)**
>
> AASM - State machines for Ruby classes. Contribute to rubyist/aasm development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![juan\_zanos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/4da419/32.png) [@juan\_zanos](https://www.ruby-forum.com/u/juan_zanos)\
**Post date:** [April 29, 2009, 6:47pm UTC](https://www.ruby-forum.com/t/state-machines-in-ruby/166800/3 "2009-04-29T18:47:30Z")

</div>

I’m just about to release a new state machine library. Give me a few  
more hours since I have a ton of other releases in the queue today. It  
will land somewhere here:

```
http://github.com/binary42/ruby-fsm/tree/master

```

It has a much improved API and many more features. Sorry to hype  
vaporware but it will be coming soon.

Brian.
