Adding support to :cast_as => 'Date'.
This commit is contained in:
parent
273a174aae
commit
bc6df2f5ca
|
@ -53,6 +53,9 @@ module CouchRest
|
|||
# Auto parse Time objects
|
||||
self[property.name] = if ((property.init_method == 'new') && target == 'Time')
|
||||
self[key].is_a?(String) ? Time.parse(self[key].dup) : self[key]
|
||||
elsif
|
||||
((property.init_method == 'new') && 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)
|
||||
|
|
|
@ -122,7 +122,7 @@ describe "ExtendedDocument properties" do
|
|||
describe "casting" do
|
||||
describe "cast keys to any type" do
|
||||
before(:all) do
|
||||
event_doc = { :subject => "Some event", :occurs_at => Time.now }
|
||||
event_doc = { :subject => "Some event", :occurs_at => Time.now, :end_date => Date.today }
|
||||
e = Event.database.save_doc event_doc
|
||||
|
||||
@event = Event.get e['id']
|
||||
|
@ -130,6 +130,9 @@ describe "ExtendedDocument properties" do
|
|||
it "should cast occurs_at to Time" do
|
||||
@event['occurs_at'].should be_an_instance_of(Time)
|
||||
end
|
||||
it "should cast end_date to Date" do
|
||||
@event['end_date'].should be_an_instance_of(Date)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
3
spec/fixtures/more/event.rb
vendored
3
spec/fixtures/more/event.rb
vendored
|
@ -3,4 +3,7 @@ class Event < CouchRest::ExtendedDocument
|
|||
|
||||
property :subject
|
||||
property :occurs_at, :cast_as => 'Time', :send => 'parse'
|
||||
property :end_date, :cast_as => 'Date'
|
||||
|
||||
|
||||
end
|
Loading…
Reference in a new issue