fixed a bug with CastedModel constructer calling Hash#initialize(ifnone)

Signed-off-by: Matt Aimonetti <mattaimonetti@gmail.com>
This commit is contained in:
YAMAMOTO Yohei 2009-04-02 22:00:28 +08:00 committed by Matt Aimonetti
parent ef3b0527c9
commit 6fca60ebe4
2 changed files with 11 additions and 1 deletions

View file

@ -9,7 +9,8 @@ module CouchRest
end
def initialize(keys={})
super
raise StandardError unless self.is_a? Hash
super()
keys.each do |k,v|
self[k.to_s] = v
end if keys

View file

@ -4,6 +4,7 @@ require File.join(FIXTURE_PATH, 'more', 'card')
class WithCastedModelMixin < Hash
include CouchRest::CastedModel
property :name
property :no_value
end
class DummyModel < CouchRest::ExtendedDocument
@ -54,6 +55,14 @@ describe CouchRest::CastedModel do
it "should know who casted it" do
@casted_obj.casted_by.should == @obj
end
it "should return nil for the 'no_value' attribute" do
@casted_obj.no_value.should be_nil
end
it "should return nil for the unknown attribute" do
@casted_obj["unknown"].should be_nil
end
end
describe "casted as an array of a different type" do