<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -84,6 +84,12 @@ CouchRest uses a mixin you can find in lib/mixins/callbacks which is extracted f
     set_callback :save, :after,  :after_method, :if =&gt; :condition
     set_callback :save, :around {|r| stuff; yield; stuff }
     
+    Or the new shorter version:
+    
+    before_save :before_method
+    after_save  :after_method, :if =&gt; :condition
+    around_save {|r| stuff; yield; stuff }
+    
 Check the mixin or the ExtendedDocument class to see how to implement your own callbacks.
 
 ### Casting</diff>
      <filename>README.md</filename>
    </modified>
    <modified>
      <diff>@@ -528,6 +528,16 @@ module CouchRest
 
             self.set_callback(:#{symbol}, :before)
           RUBY_EVAL
+          
+          # Define more convenient callback methods
+          # set_callback(:save, :before) becomes before_save
+          [:before, :after, :around].each do |filter|
+            self.class_eval &lt;&lt;-RUBY_EVAL, __FILE__, __LINE__ + 1
+              def self.#{filter}_#{symbol}(meth=nil, &amp;blk)
+                set_callback(:#{symbol}, :#{filter}, meth||blk)
+              end
+            RUBY_EVAL
+          end
         end
       end
     end</diff>
      <filename>lib/couchrest/mixins/callbacks.rb</filename>
    </modified>
    <modified>
      <diff>@@ -35,10 +35,10 @@ class WithCastedCallBackModel &lt; Hash
   property :run_before_validate
   property :run_after_validate
   
-  set_callback :validate, :before do |object|
+  before_validate do |object|
     object.run_before_validate = true
   end
-  set_callback :validate, :after do |object| 
+  after_validate do |object| 
     object.run_after_validate = true
   end
 end</diff>
      <filename>spec/couchrest/more/casted_model_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -29,28 +29,28 @@ describe &quot;ExtendedDocument&quot; do
     property :run_before_update
     property :run_after_update
     
-    set_callback :validate, :before do |object|
+    before_validate do |object|
       object.run_before_validate = true
     end
-    set_callback :validate, :after do |object| 
+    after_validate do |object| 
       object.run_after_validate = true
     end
-    set_callback :save, :before do |object| 
+    before_save do |object| 
       object.run_before_save = true
     end
-    set_callback :save, :after do |object| 
+    after_save do |object| 
       object.run_after_save = true
     end
-    set_callback :create, :before do |object| 
+    before_create do |object| 
       object.run_before_create = true
     end
-    set_callback :create, :after do |object| 
+    after_create do |object| 
       object.run_after_create = true
     end
-    set_callback :update, :before do |object| 
+    before_update do |object| 
       object.run_before_update = true
     end
-    set_callback :update, :after do |object| 
+    after_update do |object| 
       object.run_after_update = true
     end
   end</diff>
      <filename>spec/couchrest/more/extended_doc_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,7 +26,7 @@ class Article &lt; CouchRest::ExtendedDocument
 
   timestamps!
   
-  set_callback :save, :before, :generate_slug_from_title
+  before_save :generate_slug_from_title
   
   def generate_slug_from_title
     self['slug'] = title.downcase.gsub(/[^a-z0-9]/,'-').squeeze('-').gsub(/^\-|\-$/,'') if new?</diff>
      <filename>spec/fixtures/more/article.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>806a79a72aa517bb0280ea5a5ad995e820858263</id>
    </parent>
  </parents>
  <author>
    <name>Peter Gumeson</name>
    <email>gumeson@gmail.com</email>
  </author>
  <url>http://github.com/will/couchrest/commit/ab362cb32ca067e7134c0ac21a4c823b3866949d</url>
  <id>ab362cb32ca067e7134c0ac21a4c823b3866949d</id>
  <committed-date>2009-06-07T17:01:21-07:00</committed-date>
  <authored-date>2009-06-07T17:01:21-07:00</authored-date>
  <message>More convenient callback alias methods</message>
  <tree>1cc69e7c28f91b433aa00ebdc5876273deba5dae</tree>
  <committer>
    <name>Peter Gumeson</name>
    <email>gumeson@gmail.com</email>
  </committer>
</commit>
