diff options
author | Lars Henrik Mai <lars.mai@kontinui.de> | 2014-09-21 18:18:21 +0200 |
---|---|---|
committer | Lars Henrik Mai <lars.mai@kontinui.de> | 2014-09-21 18:24:51 +0200 |
commit | 0740cac0afa46fbc87062eef7003ff653bd5208a (patch) | |
tree | ff47df8d43aa2f4b2fb43f3dc103f4c1f739c603 /lib/sublab_calendar/occurrence.rb | |
parent | 1955959b3bbd997a6a7f585f0293a295c019c935 (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.rb | 28 |
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 |