interpreted_date 0.0.4 → 0.0.5
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/lib/interpreted_date.rb +9 -0
- data/lib/interpreted_date/version.rb +1 -1
- data/spec/interpreted_date_spec.rb +28 -0
- metadata +2 -2
data/lib/interpreted_date.rb
CHANGED
@@ -132,4 +132,13 @@ class InterpretedDate
|
|
132
132
|
self.decade == other_date.decade && self.year == other_date.year && self.month == other_date.month && self.day == other_date.day
|
133
133
|
end
|
134
134
|
|
135
|
+
def <=>(other_date)
|
136
|
+
return nil unless other_date.is_a?(InterpretedDate)
|
137
|
+
(self.decade <=> other_date.decade).nonzero? ||
|
138
|
+
(self.year <=> other_date.year).nonzero? ||
|
139
|
+
(self.month <=> other_date.month).nonzero? ||
|
140
|
+
(self.day <=> other_date.day).nonzero? ||
|
141
|
+
0
|
142
|
+
end
|
143
|
+
|
135
144
|
end
|
@@ -129,4 +129,32 @@ describe InterpretedDate do
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
+
describe "<=>", :focus do
|
133
|
+
|
134
|
+
it "correctly sorts with a decade" do
|
135
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 31}) <=> InterpretedDate.new({:decade => 2000 })).should == 1
|
136
|
+
(InterpretedDate.new({:decade => 1950, :year => 2012, :month => 2, :day => 31}) <=> InterpretedDate.new({:decade => 2000 })).should == -1
|
137
|
+
(InterpretedDate.new({:decade => 1950, :month => 2}) <=> InterpretedDate.new({:decade => 1950, :month => 10 })).should == -1
|
138
|
+
(InterpretedDate.new({:decade => 1950}) <=> InterpretedDate.new({:decade => 1950})).should == 0
|
139
|
+
end
|
140
|
+
|
141
|
+
it "correctly sorts with the year" do
|
142
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 31}) <=> InterpretedDate.new({:decade => 2010, :year => 2011 })).should == 1
|
143
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 31}) <=> InterpretedDate.new({:decade => 2010, :year => 2013 })).should == -1
|
144
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012}) <=> InterpretedDate.new({:decade => 2010, :year => 2012})).should == 0
|
145
|
+
end
|
146
|
+
|
147
|
+
it "correctly sorts with the month" do
|
148
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 31}) <=> InterpretedDate.new({:decade => 2010, :year => 2011, :month => 1 })).should == 1
|
149
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 31}) <=> InterpretedDate.new({:decade => 2010, :year => 2013, :month => 3 })).should == -1
|
150
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 3}) <=> InterpretedDate.new({:decade => 2010, :year => 2012, :month => 3})).should == 0
|
151
|
+
end
|
152
|
+
|
153
|
+
it "correctly sorts with the day" do
|
154
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 31}) <=> InterpretedDate.new({:decade => 2010, :year => 2011, :month => 2, :day => 1 })).should == 1
|
155
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 15}) <=> InterpretedDate.new({:decade => 2010, :year => 2013, :month => 2, :day => 31 })).should == -1
|
156
|
+
(InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 31}) <=> InterpretedDate.new({:decade => 2010, :year => 2012, :month => 2, :day => 31})).should == 0
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
132
160
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: interpreted_date
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|