mongoid 1.2.5 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.5
1
+ 1.2.6
@@ -7,12 +7,7 @@ module Mongoid #:nodoc:
7
7
  include InstanceMethods
8
8
  extend ClassMethods
9
9
 
10
- cattr_accessor \
11
- :_collection,
12
- :collection_name,
13
- :embedded,
14
- :primary_key,
15
- :hereditary
10
+ cattr_accessor :_collection, :collection_name, :embedded, :primary_key, :hereditary
16
11
 
17
12
  self.embedded = false
18
13
  self.hereditary = false
@@ -118,6 +113,17 @@ module Mongoid #:nodoc:
118
113
  other.attributes.except(:modified_at).except(:created_at)
119
114
  end
120
115
 
116
+ # Delegates to ==
117
+ def eql?(comparison_object)
118
+ self == (comparison_object)
119
+ end
120
+
121
+ # Delegates to id in order to allow two records of the same type and id to work with something like:
122
+ # [ Person.find(1), Person.find(2), Person.find(3) ] & [ Person.find(1), Person.find(4) ] # => [ Person.find(1) ]
123
+ def hash
124
+ id.hash
125
+ end
126
+
121
127
  # Introduces a child object into the +Document+ object graph. This will
122
128
  # set up the relationships between the parent and child and update the
123
129
  # attributes of the parent +Document+.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mongoid}
8
- s.version = "1.2.5"
8
+ s.version = "1.2.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Durran Jordan"]
@@ -67,6 +67,73 @@ describe Mongoid::Document do
67
67
 
68
68
  end
69
69
 
70
+ describe "#eql?" do
71
+
72
+ context "when other object is a Document" do
73
+
74
+ context "when attributes are equal" do
75
+
76
+ before do
77
+ @document = Person.new(:_id => 1, :title => "Sir")
78
+ @other = Person.new(:_id => 1, :title => "Sir")
79
+ end
80
+
81
+ it "returns true" do
82
+ @document.eql?(@other).should be_true
83
+ end
84
+
85
+ end
86
+
87
+ context "when attributes are not equal" do
88
+
89
+ before do
90
+ @document = Person.new(:title => "Sir")
91
+ @other = Person.new(:title => "Madam")
92
+ end
93
+
94
+ it "returns false" do
95
+ @document.eql?(@other).should_not be_true
96
+ end
97
+
98
+ end
99
+
100
+ end
101
+
102
+ context "when other object is not a Document" do
103
+
104
+ it "returns false" do
105
+ Person.new.eql?("Test").should be_false
106
+ end
107
+
108
+ end
109
+
110
+ context "when comapring parent to its subclass" do
111
+
112
+ it "returns false" do
113
+ Canvas.new.eql?(Firefox.new).should_not be_true
114
+ end
115
+
116
+ end
117
+
118
+ end
119
+
120
+ describe "#hash" do
121
+
122
+ before do
123
+ @document = Person.new(:_id => 1, :title => "Sir")
124
+ @other = Person.new(:_id => 2, :title => "Sir")
125
+ end
126
+
127
+ it "deligates to id" do
128
+ @document.hash.should == @document.id.hash
129
+ end
130
+
131
+ it "has unique hash per id" do
132
+ @document.hash.should_not == @other.hash
133
+ end
134
+
135
+ end
136
+
70
137
  describe "#alias_method_chain" do
71
138
 
72
139
  context "on a field setter" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: 1.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan