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.
@@ -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
@@ -1,3 +1,3 @@
1
1
  class InterpretedDate
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  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
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-15 00:00:00.000000000 Z
12
+ date: 2012-10-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec