diff --git a/lib/couchrest/mixins/properties.rb b/lib/couchrest/mixins/properties.rb index 21e9ca2..bfd6f15 100644 --- a/lib/couchrest/mixins/properties.rb +++ b/lib/couchrest/mixins/properties.rb @@ -58,6 +58,10 @@ module CouchRest key = self.has_key?(property.name) ? property.name : property.name.to_sym # Don't cast the property unless it has a value next if (value = self[key]).nil? + # Don't cast the property if it is not accessible + if self.class.respond_to? :accessible_properties + next if self.class.accessible_properties.index(key).nil? + end write_property(property, value) end end diff --git a/spec/couchrest/more/property_spec.rb b/spec/couchrest/more/property_spec.rb index a98e1a9..9156795 100644 --- a/spec/couchrest/more/property_spec.rb +++ b/spec/couchrest/more/property_spec.rb @@ -175,8 +175,9 @@ describe "ExtendedDocument properties" do @course['participants'].should eql([{}, 'q', 1]) end - it "should cast end_date to Date" do - @event['end_date'].should be_an_instance_of(Date) + it "should cast started_on to Date" do + @course.started_on = Date.today + @course['started_on'].should be_an_instance_of(Date) end end