updating to couchrest 1.1.2 and as_couch_json method
This commit is contained in:
parent
9d724aee47
commit
3258ac22e9
4 changed files with 22 additions and 6 deletions
|
@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|||
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
||||
s.require_paths = ["lib"]
|
||||
|
||||
s.add_dependency(%q<couchrest>, "1.1.1")
|
||||
s.add_dependency(%q<couchrest>, "~> 1.1.2")
|
||||
s.add_dependency(%q<mime-types>, "~> 1.15")
|
||||
s.add_dependency(%q<activemodel>, "~> 3.0")
|
||||
s.add_dependency(%q<tzinfo>, "~> 0.3.22")
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
# CouchRest Model Change History
|
||||
|
||||
## 1.1.2 - 2011-07-XX
|
||||
|
||||
* Minor fixes
|
||||
* Upgrade to couchrest 1.1.2
|
||||
* Override as_couch_json to ensure nil values not stored
|
||||
|
||||
## 1.1.1 - 2011-07-04
|
||||
|
||||
* Minor fix
|
||||
|
|
|
@ -12,8 +12,10 @@ module CouchRest
|
|||
raise "You can only mixin Properties in a class responding to [] and []=, if you tried to mixin CastedModel, make sure your class inherits from Hash or responds to the proper methods" unless (method_defined?(:[]) && method_defined?(:[]=))
|
||||
end
|
||||
|
||||
def as_json(options = nil)
|
||||
Hash[self].reject{|k,v| v.nil?}.as_json(options)
|
||||
# Provide an attribute hash ready to be sent to CouchDB but with
|
||||
# all the nil attributes removed.
|
||||
def as_couch_json
|
||||
super.delete_if{|k,v| v.nil?}
|
||||
end
|
||||
|
||||
# Returns the Class properties with their values
|
||||
|
|
|
@ -62,15 +62,23 @@ describe CouchRest::Model::Property do
|
|||
@card.updated_at.should_not be_nil
|
||||
end
|
||||
|
||||
describe "#as_json" do
|
||||
describe "#as_couch_json" do
|
||||
|
||||
it "should provide a simple hash from model" do
|
||||
@card.as_json.class.should eql(Hash)
|
||||
@card.as_couch_json.class.should eql(Hash)
|
||||
end
|
||||
|
||||
it "should remove properties from Hash if value is nil" do
|
||||
@card.last_name = nil
|
||||
@card.as_json.keys.include?('last_name').should be_false
|
||||
@card.as_couch_json.keys.include?('last_name').should be_false
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "#as_json" do
|
||||
|
||||
it "should provide a simple hash from model" do
|
||||
@card.as_json.class.should eql(Hash)
|
||||
end
|
||||
|
||||
it "should pass options to Active Support's as_json" do
|
||||
|
|
Loading…
Reference in a new issue