summaryrefslogtreecommitdiff
path: root/lib/sublab_calendar/occurrence.rb
diff options
context:
space:
mode:
authorLars Henrik Mai <lars.mai@kontinui.de>2014-09-21 18:18:21 +0200
committerLars Henrik Mai <lars.mai@kontinui.de>2014-09-21 18:24:51 +0200
commit0740cac0afa46fbc87062eef7003ff653bd5208a (patch)
treeff47df8d43aa2f4b2fb43f3dc103f4c1f739c603 /lib/sublab_calendar/occurrence.rb
parent1955959b3bbd997a6a7f585f0293a295c019c935 (diff)
make Event and Occurrence sortable and adds some convenience
Diffstat (limited to 'lib/sublab_calendar/occurrence.rb')
-rw-r--r--lib/sublab_calendar/occurrence.rb28
1 files changed, 24 insertions, 4 deletions
diff --git a/lib/sublab_calendar/occurrence.rb b/lib/sublab_calendar/occurrence.rb
index fad58a8..085a814 100644
--- a/lib/sublab_calendar/occurrence.rb
+++ b/lib/sublab_calendar/occurrence.rb
@@ -17,10 +17,24 @@ module SublabCalendar
}
end
- def inspect
- to_s
+ def to_json(*args)
+ to_h.to_json(*args)
end
+ def to_s
+ "<#{self.class} #{self.to_h}>"
+ end
+ alias_method :inspect, :to_s
+
+ def <=>(other)
+ self.dtstart.to_datetime <=> other.dtstart.to_datetime
+ end
+
+ def ==(o)
+ o.class == self.class && o.state == state
+ end
+ alias_method :eql?, :==
+
def summary
event.summary
end
@@ -29,8 +43,14 @@ module SublabCalendar
event.description
end
- def to_s
- "<#{self.class} #{self.to_h}>"
+ def dtstart
+ start_time.to_datetime
+ end
+
+ protected
+
+ def state
+ [event.uid, start_time, end_time]
end
end