From d2bfbfd2810fbee673e43b2515db8bac527b3441 Mon Sep 17 00:00:00 2001 From: hukl Date: Mon, 16 Mar 2009 20:58:49 +0100 Subject: Refactored Chaos Calendar by wrapping libical and introducing event and occurrence model. More improvements to come. Enables us to create events with reoccurrence and intervals etc. --- lib/chaos_calendar.rb | 35 ----------------------------------- lib/chaos_calendar/gen.sh | 0 2 files changed, 35 deletions(-) delete mode 100644 lib/chaos_calendar.rb mode change 100644 => 100755 lib/chaos_calendar/gen.sh (limited to 'lib') diff --git a/lib/chaos_calendar.rb b/lib/chaos_calendar.rb deleted file mode 100644 index b363ccb..0000000 --- a/lib/chaos_calendar.rb +++ /dev/null @@ -1,35 +0,0 @@ -require 'vpim' - -class Occurrence - def initialize start, event, node - @dtstart = start - @event = event - @node = node - end - attr_reader :dtstart, :event, :node -end - -class ChaosCalendar - attr_reader :calendar - def initialize - @calendar = {} - end - - def push cal, node - Vpim::Icalendar.decode( cal ).each { |c| c.events.each { |e| @calendar[e] = node } } - end - - def occurrences start_time, end_time - occurr = [] - @calendar.each { |e, node| - if e.occurs_in?( start_time, end_time ) - e.occurences( end_time ) { |t| - occurr << Occurrence.new(t,e,node) if (t + (e.duration || 0)) >= start_time - } - end - } - - return occurr.sort { |lhs, rhs| lhs.dtstart <=> rhs.dtstart } - end - -end diff --git a/lib/chaos_calendar/gen.sh b/lib/chaos_calendar/gen.sh old mode 100644 new mode 100755 -- cgit v1.3