interpreted_date 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|