<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -12,6 +12,7 @@ changes. A list of these people is included below.
  * [Jonathan S. Katz](http://github.com/jkatz)
  * [Matt Lyon](http://mattly.tumblr.com/)
  * Simon Rozet (simon /at/ rozet /dot/ name)
+ * [Marcos Tapaj&#243;s](http://tapajos.me)
  
 Patches are welcome. The primary source for this software project is [on Github](http://github.com/jchris/couchrest/tree/master)
 </diff>
      <filename>THANKS.md</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 Gem::Specification.new do |s|
   s.name = %q{couchrest}
-  s.version = &quot;0.23&quot;
+  s.version = &quot;0.34&quot;
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;J. Chris Anderson&quot;, &quot;Matt Aimonetti&quot;]
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
   s.description = %q{CouchRest provides a simple interface on top of CouchDB's RESTful HTTP API, as well as including some utility scripts for managing views and attachments.}
   s.email = %q{jchris@apache.org}
   s.extra_rdoc_files = [&quot;README.md&quot;, &quot;LICENSE&quot;, &quot;THANKS.md&quot;]
-  s.files = [&quot;LICENSE&quot;, &quot;README.md&quot;, &quot;Rakefile&quot;, &quot;THANKS.md&quot;, &quot;examples/model&quot;, &quot;examples/model/example.rb&quot;, &quot;examples/word_count&quot;, &quot;examples/word_count/markov&quot;, &quot;examples/word_count/views&quot;, &quot;examples/word_count/views/books&quot;, &quot;examples/word_count/views/books/chunked-map.js&quot;, &quot;examples/word_count/views/books/united-map.js&quot;, &quot;examples/word_count/views/markov&quot;, &quot;examples/word_count/views/markov/chain-map.js&quot;, &quot;examples/word_count/views/markov/chain-reduce.js&quot;, &quot;examples/word_count/views/word_count&quot;, &quot;examples/word_count/views/word_count/count-map.js&quot;, &quot;examples/word_count/views/word_count/count-reduce.js&quot;, &quot;examples/word_count/word_count.rb&quot;, &quot;examples/word_count/word_count_query.rb&quot;, &quot;examples/word_count/word_count_views.rb&quot;, &quot;lib/couchrest&quot;, &quot;lib/couchrest/commands&quot;, &quot;lib/couchrest/commands/generate.rb&quot;, &quot;lib/couchrest/commands/push.rb&quot;, &quot;lib/couchrest/core&quot;, &quot;lib/couchrest/core/database.rb&quot;, &quot;lib/couchrest/core/design.rb&quot;, &quot;lib/couchrest/core/document.rb&quot;, &quot;lib/couchrest/core/response.rb&quot;, &quot;lib/couchrest/core/server.rb&quot;, &quot;lib/couchrest/core/view.rb&quot;, &quot;lib/couchrest/helper&quot;, &quot;lib/couchrest/helper/pager.rb&quot;, &quot;lib/couchrest/helper/streamer.rb&quot;, &quot;lib/couchrest/helper/upgrade.rb&quot;, &quot;lib/couchrest/mixins&quot;, &quot;lib/couchrest/mixins/attachments.rb&quot;, &quot;lib/couchrest/mixins/callbacks.rb&quot;, &quot;lib/couchrest/mixins/class_proxy.rb&quot;, &quot;lib/couchrest/mixins/design_doc.rb&quot;, &quot;lib/couchrest/mixins/document_queries.rb&quot;, &quot;lib/couchrest/mixins/extended_attachments.rb&quot;, &quot;lib/couchrest/mixins/extended_document_mixins.rb&quot;, &quot;lib/couchrest/mixins/properties.rb&quot;, &quot;lib/couchrest/mixins/validation.rb&quot;, &quot;lib/couchrest/mixins/views.rb&quot;, &quot;lib/couchrest/mixins.rb&quot;, &quot;lib/couchrest/monkeypatches.rb&quot;, &quot;lib/couchrest/more&quot;, &quot;lib/couchrest/more/casted_model.rb&quot;, &quot;lib/couchrest/more/extended_document.rb&quot;, &quot;lib/couchrest/more/property.rb&quot;, &quot;lib/couchrest/support&quot;, &quot;lib/couchrest/support/blank.rb&quot;, &quot;lib/couchrest/support/class.rb&quot;, &quot;lib/couchrest/validation&quot;, &quot;lib/couchrest/validation/auto_validate.rb&quot;, &quot;lib/couchrest/validation/contextual_validators.rb&quot;, &quot;lib/couchrest/validation/validation_errors.rb&quot;, &quot;lib/couchrest/validation/validators&quot;, &quot;lib/couchrest/validation/validators/absent_field_validator.rb&quot;, &quot;lib/couchrest/validation/validators/confirmation_validator.rb&quot;, &quot;lib/couchrest/validation/validators/format_validator.rb&quot;, &quot;lib/couchrest/validation/validators/formats&quot;, &quot;lib/couchrest/validation/validators/formats/email.rb&quot;, &quot;lib/couchrest/validation/validators/formats/url.rb&quot;, &quot;lib/couchrest/validation/validators/generic_validator.rb&quot;, &quot;lib/couchrest/validation/validators/length_validator.rb&quot;, &quot;lib/couchrest/validation/validators/method_validator.rb&quot;, &quot;lib/couchrest/validation/validators/numeric_validator.rb&quot;, &quot;lib/couchrest/validation/validators/required_field_validator.rb&quot;, &quot;lib/couchrest.rb&quot;, &quot;spec/couchrest&quot;, &quot;spec/couchrest/core&quot;, &quot;spec/couchrest/core/couchrest_spec.rb&quot;, &quot;spec/couchrest/core/database_spec.rb&quot;, &quot;spec/couchrest/core/design_spec.rb&quot;, &quot;spec/couchrest/core/document_spec.rb&quot;, &quot;spec/couchrest/core/server_spec.rb&quot;, &quot;spec/couchrest/helpers&quot;, &quot;spec/couchrest/helpers/pager_spec.rb&quot;, &quot;spec/couchrest/helpers/streamer_spec.rb&quot;, &quot;spec/couchrest/more&quot;, &quot;spec/couchrest/more/casted_extended_doc_spec.rb&quot;, &quot;spec/couchrest/more/casted_model_spec.rb&quot;, &quot;spec/couchrest/more/extended_doc_attachment_spec.rb&quot;, &quot;spec/couchrest/more/extended_doc_spec.rb&quot;, &quot;spec/couchrest/more/extended_doc_subclass_spec.rb&quot;, &quot;spec/couchrest/more/extended_doc_view_spec.rb&quot;, &quot;spec/couchrest/more/property_spec.rb&quot;, &quot;spec/fixtures&quot;, &quot;spec/fixtures/attachments&quot;, &quot;spec/fixtures/attachments/couchdb.png&quot;, &quot;spec/fixtures/attachments/README&quot;, &quot;spec/fixtures/attachments/test.html&quot;, &quot;spec/fixtures/more&quot;, &quot;spec/fixtures/more/article.rb&quot;, &quot;spec/fixtures/more/card.rb&quot;, &quot;spec/fixtures/more/course.rb&quot;, &quot;spec/fixtures/more/event.rb&quot;, &quot;spec/fixtures/more/invoice.rb&quot;, &quot;spec/fixtures/more/person.rb&quot;, &quot;spec/fixtures/more/question.rb&quot;, &quot;spec/fixtures/more/service.rb&quot;, &quot;spec/fixtures/views&quot;, &quot;spec/fixtures/views/lib.js&quot;, &quot;spec/fixtures/views/test_view&quot;, &quot;spec/fixtures/views/test_view/lib.js&quot;, &quot;spec/fixtures/views/test_view/only-map.js&quot;, &quot;spec/fixtures/views/test_view/test-map.js&quot;, &quot;spec/fixtures/views/test_view/test-reduce.js&quot;, &quot;spec/spec.opts&quot;, &quot;spec/spec_helper.rb&quot;, &quot;utils/remap.rb&quot;, &quot;utils/subset.rb&quot;]
+  s.files = [&quot;LICENSE&quot;, &quot;README.md&quot;, &quot;Rakefile&quot;, &quot;THANKS.md&quot;, &quot;examples/model&quot;, &quot;examples/model/example.rb&quot;, &quot;examples/word_count&quot;, &quot;examples/word_count/markov&quot;, &quot;examples/word_count/views&quot;, &quot;examples/word_count/views/books&quot;, &quot;examples/word_count/views/books/chunked-map.js&quot;, &quot;examples/word_count/views/books/united-map.js&quot;, &quot;examples/word_count/views/markov&quot;, &quot;examples/word_count/views/markov/chain-map.js&quot;, &quot;examples/word_count/views/markov/chain-reduce.js&quot;, &quot;examples/word_count/views/word_count&quot;, &quot;examples/word_count/views/word_count/count-map.js&quot;, &quot;examples/word_count/views/word_count/count-reduce.js&quot;, &quot;examples/word_count/word_count.rb&quot;, &quot;examples/word_count/word_count_query.rb&quot;, &quot;examples/word_count/word_count_views.rb&quot;, &quot;lib/couchrest&quot;, &quot;lib/couchrest/commands&quot;, &quot;lib/couchrest/commands/generate.rb&quot;, &quot;lib/couchrest/commands/push.rb&quot;, &quot;lib/couchrest/core&quot;, &quot;lib/couchrest/core/database.rb&quot;, &quot;lib/couchrest/core/design.rb&quot;, &quot;lib/couchrest/core/document.rb&quot;, &quot;lib/couchrest/core/response.rb&quot;, &quot;lib/couchrest/core/server.rb&quot;, &quot;lib/couchrest/core/view.rb&quot;, &quot;lib/couchrest/helper&quot;, &quot;lib/couchrest/helper/pager.rb&quot;, &quot;lib/couchrest/helper/streamer.rb&quot;, &quot;lib/couchrest/helper/upgrade.rb&quot;, &quot;lib/couchrest/mixins&quot;, &quot;lib/couchrest/mixins/attachments.rb&quot;, &quot;lib/couchrest/mixins/callbacks.rb&quot;, &quot;lib/couchrest/mixins/class_proxy.rb&quot;, &quot;lib/couchrest/mixins/design_doc.rb&quot;, &quot;lib/couchrest/mixins/document_queries.rb&quot;, &quot;lib/couchrest/mixins/extended_attachments.rb&quot;, &quot;lib/couchrest/mixins/extended_document_mixins.rb&quot;, &quot;lib/couchrest/mixins/properties.rb&quot;, &quot;lib/couchrest/mixins/validation.rb&quot;, &quot;lib/couchrest/mixins/views.rb&quot;, &quot;lib/couchrest/mixins.rb&quot;, &quot;lib/couchrest/monkeypatches.rb&quot;, &quot;lib/couchrest/more&quot;, &quot;lib/couchrest/more/casted_model.rb&quot;, &quot;lib/couchrest/more/extended_document.rb&quot;, &quot;lib/couchrest/more/property.rb&quot;, &quot;lib/couchrest/support&quot;, &quot;lib/couchrest/support/blank.rb&quot;, &quot;lib/couchrest/support/class.rb&quot;, &quot;lib/couchrest/support/rails.rb&quot;, &quot;lib/couchrest/validation&quot;, &quot;lib/couchrest/validation/auto_validate.rb&quot;, &quot;lib/couchrest/validation/contextual_validators.rb&quot;, &quot;lib/couchrest/validation/validation_errors.rb&quot;, &quot;lib/couchrest/validation/validators&quot;, &quot;lib/couchrest/validation/validators/absent_field_validator.rb&quot;, &quot;lib/couchrest/validation/validators/confirmation_validator.rb&quot;, &quot;lib/couchrest/validation/validators/format_validator.rb&quot;, &quot;lib/couchrest/validation/validators/formats&quot;, &quot;lib/couchrest/validation/validators/formats/email.rb&quot;, &quot;lib/couchrest/validation/validators/formats/url.rb&quot;, &quot;lib/couchrest/validation/validators/generic_validator.rb&quot;, &quot;lib/couchrest/validation/validators/length_validator.rb&quot;, &quot;lib/couchrest/validation/validators/method_validator.rb&quot;, &quot;lib/couchrest/validation/validators/numeric_validator.rb&quot;, &quot;lib/couchrest/validation/validators/required_field_validator.rb&quot;, &quot;lib/couchrest.rb&quot;, &quot;spec/couchrest&quot;, &quot;spec/couchrest/core&quot;, &quot;spec/couchrest/core/couchrest_spec.rb&quot;, &quot;spec/couchrest/core/database_spec.rb&quot;, &quot;spec/couchrest/core/design_spec.rb&quot;, &quot;spec/couchrest/core/document_spec.rb&quot;, &quot;spec/couchrest/core/server_spec.rb&quot;, &quot;spec/couchrest/helpers&quot;, &quot;spec/couchrest/helpers/pager_spec.rb&quot;, &quot;spec/couchrest/helpers/streamer_spec.rb&quot;, &quot;spec/couchrest/more&quot;, &quot;spec/couchrest/more/casted_extended_doc_spec.rb&quot;, &quot;spec/couchrest/more/casted_model_spec.rb&quot;, &quot;spec/couchrest/more/extended_doc_attachment_spec.rb&quot;, &quot;spec/couchrest/more/extended_doc_spec.rb&quot;, &quot;spec/couchrest/more/extended_doc_subclass_spec.rb&quot;, &quot;spec/couchrest/more/extended_doc_view_spec.rb&quot;, &quot;spec/couchrest/more/property_spec.rb&quot;, &quot;spec/fixtures&quot;, &quot;spec/fixtures/attachments&quot;, &quot;spec/fixtures/attachments/couchdb.png&quot;, &quot;spec/fixtures/attachments/README&quot;, &quot;spec/fixtures/attachments/test.html&quot;, &quot;spec/fixtures/more&quot;, &quot;spec/fixtures/more/article.rb&quot;, &quot;spec/fixtures/more/card.rb&quot;, &quot;spec/fixtures/more/course.rb&quot;, &quot;spec/fixtures/more/event.rb&quot;, &quot;spec/fixtures/more/invoice.rb&quot;, &quot;spec/fixtures/more/person.rb&quot;, &quot;spec/fixtures/more/question.rb&quot;, &quot;spec/fixtures/more/service.rb&quot;, &quot;spec/fixtures/views&quot;, &quot;spec/fixtures/views/lib.js&quot;, &quot;spec/fixtures/views/test_view&quot;, &quot;spec/fixtures/views/test_view/lib.js&quot;, &quot;spec/fixtures/views/test_view/only-map.js&quot;, &quot;spec/fixtures/views/test_view/test-map.js&quot;, &quot;spec/fixtures/views/test_view/test-reduce.js&quot;, &quot;spec/spec.opts&quot;, &quot;spec/spec_helper.rb&quot;, &quot;utils/remap.rb&quot;, &quot;utils/subset.rb&quot;]
   s.has_rdoc = true
   s.homepage = %q{http://github.com/jchris/couchrest}
   s.require_paths = [&quot;lib&quot;]</diff>
      <filename>couchrest.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ require 'couchrest/monkeypatches'
 
 # = CouchDB, close to the metal
 module CouchRest
-  VERSION    = '0.23' unless self.const_defined?(&quot;VERSION&quot;)
+  VERSION    = '0.34' unless self.const_defined?(&quot;VERSION&quot;)
   
   autoload :Server,       'couchrest/core/server'
   autoload :Database,     'couchrest/core/database'</diff>
      <filename>lib/couchrest.rb</filename>
    </modified>
    <modified>
      <diff>@@ -53,6 +53,9 @@ module CouchRest
             # Auto parse Time objects
             self[property.name] = if ((property.init_method == 'new') &amp;&amp; target == 'Time') 
               self[key].is_a?(String) ? Time.parse(self[key].dup) : self[key]
+            elsif 
+              ((property.init_method == 'new') &amp;&amp; target == 'Date') 
+                self[key].is_a?(String) ? Date.parse(self[key].dup) : self[key]
             else
               # Let people use :send as a Time parse arg
               klass = ::CouchRest.constantize(target)</diff>
      <filename>lib/couchrest/mixins/properties.rb</filename>
    </modified>
    <modified>
      <diff>@@ -193,6 +193,7 @@ module CouchRest
     # if the document is not saved properly.
     def save!
       raise &quot;#{self.inspect} failed to save&quot; unless self.save
+      true
     end
 
     # Deletes the document from the database. Runs the :destroy callbacks.</diff>
      <filename>lib/couchrest/more/extended_document.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 require File.join(FIXTURE_PATH, 'more', 'article')
 require File.join(FIXTURE_PATH, 'more', 'course')
+require File.join(FIXTURE_PATH, 'more', 'card')
 
 
 describe &quot;ExtendedDocument&quot; do
@@ -339,6 +340,25 @@ describe &quot;ExtendedDocument&quot; do
     it &quot;should set the type&quot; do
       @sobj['couchrest-type'].should == 'Basic'
     end
+    
+    describe &quot;save!&quot; do
+      
+      before(:each) do
+        @sobj = Card.new(:first_name =&gt; &quot;Marcos&quot;, :last_name =&gt; &quot;Tapaj&#243;s&quot;)
+      end
+      
+      it &quot;should return true if save the document&quot; do
+        @sobj.save!.should == true
+      end
+      
+      it &quot;should raise error if don't save the document&quot; do
+        @sobj.first_name = nil
+        lambda {  @sobj.save!.should == true }.should raise_error(RuntimeError)
+      end
+
+    end
+    
+    
   end
   
   describe &quot;saving a model with a unique_id configured&quot; do</diff>
      <filename>spec/couchrest/more/extended_doc_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -122,14 +122,17 @@ describe &quot;ExtendedDocument properties&quot; do
   describe &quot;casting&quot; do
     describe &quot;cast keys to any type&quot; do
       before(:all) do
-        event_doc = { :subject =&gt; &quot;Some event&quot;, :occurs_at =&gt; Time.now }
+        event_doc = { :subject =&gt; &quot;Some event&quot;, :occurs_at =&gt; Time.now, :end_date =&gt; Date.today }
         e = Event.database.save_doc event_doc
 
         @event = Event.get e['id']
       end
-      it &quot;should cast created_at to Time&quot; do
+      it &quot;should cast occurs_at to Time&quot; do
         @event['occurs_at'].should be_an_instance_of(Time)
       end
+      it &quot;should cast end_date to Date&quot; do
+        @event['end_date'].should be_an_instance_of(Date)
+      end
     end
   end
   </diff>
      <filename>spec/couchrest/more/property_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,4 +3,7 @@ class Event &lt; CouchRest::ExtendedDocument
   
   property :subject
   property :occurs_at, :cast_as =&gt; 'Time', :send =&gt; 'parse'
+  property :end_date,  :cast_as =&gt; 'Date'
+  
+  
 end
\ No newline at end of file</diff>
      <filename>spec/fixtures/more/event.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>accb50dd024bead2c2d836638e43dd4a540bb1b6</id>
    </parent>
    <parent>
      <id>8db522a116ff3f6e7d7d041ca6d8a8527509a76a</id>
    </parent>
  </parents>
  <author>
    <name>Tapaj&#243;s</name>
    <email>tapajos@gmail.com</email>
  </author>
  <url>http://github.com/mattetti/couchrest/commit/3c2ebb022d7f1e0b226f409c06e227c83bbf495b</url>
  <id>3c2ebb022d7f1e0b226f409c06e227c83bbf495b</id>
  <committed-date>2009-09-03T19:10:06-07:00</committed-date>
  <authored-date>2009-09-03T19:10:06-07:00</authored-date>
  <message>Merge remote branch 'remotes/old/master'

Conflicts:
	README.md
	couchrest.gemspec
	lib/couchrest.rb
	lib/couchrest/mixins/properties.rb</message>
  <tree>3138870363abc3eea788c022acc309a16b91ada4</tree>
  <committer>
    <name>Tapaj&#243;s</name>
    <email>tapajos@gmail.com</email>
  </committer>
</commit>
