<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -36,11 +36,56 @@ It can also have callbacks when entering some state:
       puts &quot;Confirmed&quot;
     end
 
+Adding MicroMachine to your models
+----------------------------------
+
+The most popular pattern among Ruby libraries that tackle this problem
+is to extend the model and transform it into a finite state machine.
+Instead of working as a mixin, MicroMachine's implementation is by
+composition: you instantiate a finite state machine (or many!) inside
+your model and you are in charge of querying and persisting the state.
+Here's an example of how to use it with an ActiveRecord model:
+
+    class Event &lt; ActiveRecord::Base
+      before_save :persist_confirmation
+
+      def confirm!
+        confirmation.trigger(:confirm)
+      end
+
+      def cancel!
+        confirmation.trigger(:cancel)
+      end
+
+      def reset!
+        confirmation.trigger(:reset)
+      end
+
+      def confirmation
+        @confirmation ||= begin
+          @confirmation = MicroMachine.new(confirmation_state || &quot;pending&quot;)
+          @confirmation.transitions_for[:confirm] = { &quot;pending&quot; =&gt; &quot;confirmed&quot; }
+          @confirmation.transitions_for[:cancel] = { &quot;confirmed&quot; =&gt; &quot;cancelled&quot; }
+          @confirmation.transitions_for[:reset] = { &quot;confirmed&quot; =&gt; &quot;pending&quot;, &quot;cancelled&quot; =&gt; &quot;pending&quot; }
+          @confirmation
+        end
+      end
+
+    private
+
+      def persist_confirmation
+        self.confirmation_state = confirmation.state
+      end
+    end
+
+This example asumes you have a :confirmation_state attribute in your
+model. This may look like a very verbose implementation, but you gain a
+lot in flexibility.
+
 Installation
 ------------
 
-    $ gem sources -a http://gems.github.com (you only have to do this once)
-    $ sudo gem install soveran-micromachine
+    $ sudo gem install micromachine
 
 License
 -------</diff>
      <filename>README.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
 
   s.specification_version = 2 if s.respond_to? :specification_version=
 
-  s.files = &lt;%= FileList['lib/**/*.rb', 'README*', 'LICENSE', 'Rakefile', 'example/**/*.*'].inspect %&gt;
+  s.files = &lt;%= Dir['lib/**/*.rb', 'README*', 'LICENSE', 'Rakefile', 'example/**/*.*'].inspect %&gt;
 
   s.require_paths = ['lib']
 </diff>
      <filename>micromachine.gemspec.erb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>446f6cd03cb4989785cdaee39c3653b27db83dcf</id>
    </parent>
  </parents>
  <author>
    <name>Michel Martens</name>
    <email>michel@soveran.com</email>
  </author>
  <url>http://github.com/soveran/micromachine/commit/da6d94b739dfbe82f1e363f29617030ac181dcc0</url>
  <id>da6d94b739dfbe82f1e363f29617030ac181dcc0</id>
  <committed-date>2009-06-06T17:40:47-07:00</committed-date>
  <authored-date>2009-06-06T17:40:47-07:00</authored-date>
  <message>Updated documentation and gemspec</message>
  <tree>0f12d35d11f7c3c60b0ba81ebd4b47984b109824</tree>
  <committer>
    <name>Michel Martens</name>
    <email>michel@soveran.com</email>
  </committer>
</commit>
