Casting array type properties now possible
This commit is contained in:
parent
9d724aee47
commit
3f1b2ea0c6
|
@ -1,5 +1,10 @@
|
|||
# CouchRest Model Change History
|
||||
|
||||
## 1.1.2 - 2011-07-XX
|
||||
|
||||
* Minor fix
|
||||
* Removing restriction that prohibited objects that cast as an array to be loaded.
|
||||
|
||||
## 1.1.1 - 2011-07-04
|
||||
|
||||
* Minor fix
|
||||
|
|
|
@ -43,9 +43,8 @@ module CouchRest::Model
|
|||
end
|
||||
end
|
||||
|
||||
# Cast an individual value, not an array
|
||||
# Cast an individual value
|
||||
def cast_value(parent, value)
|
||||
raise "An array inside an array cannot be casted, use Embeddable module" if value.is_a?(Array)
|
||||
value = typecast_value(value, self)
|
||||
associate_casted_value_to_parent(parent, value)
|
||||
end
|
||||
|
|
|
@ -442,14 +442,17 @@ describe "Property Class" do
|
|||
ary.last.should eql(Date.new(2011, 05, 22))
|
||||
end
|
||||
|
||||
it "should raise and error if value is array when type is not" do
|
||||
property = CouchRest::Model::Property.new(:test, Date)
|
||||
parent = mock("FooClass")
|
||||
lambda {
|
||||
cast = property.cast(parent, [Date.new(2010, 6, 1)])
|
||||
}.should raise_error
|
||||
it "should cast an object that provides an array" do
|
||||
prop = Class.new do
|
||||
attr_accessor :ary
|
||||
def initialize(val); self.ary = val; end
|
||||
def as_json; ary; end
|
||||
end
|
||||
property = CouchRest::Model::Property.new(:test, prop)
|
||||
parent = mock("FooClass")
|
||||
cast = property.cast(parent, [1, 2])
|
||||
cast.ary.should eql([1, 2])
|
||||
end
|
||||
|
||||
|
||||
it "should set parent as casted_by object in CastedArray" do
|
||||
property = CouchRest::Model::Property.new(:test, [Object])
|
||||
|
|
Loading…
Reference in a new issue