diff options
author | Lars Henrik Mai <lars.mai@kontinui.de> | 2014-07-10 13:25:25 +0200 |
---|---|---|
committer | Lars Henrik Mai <lars.mai@kontinui.de> | 2014-07-10 13:25:25 +0200 |
commit | 8e20191b693b9b1c91d487f58c455150b004719a (patch) | |
tree | b35bdd0ff602910b2f5826f856fcd3134e748e78 /lib/sublab_calendar/calendar.rb | |
parent | c4974555d8cc11f2465f47fe86078be0d0bd30e4 (diff) |
split class into multiple files and use new baikal server instance
Diffstat (limited to 'lib/sublab_calendar/calendar.rb')
-rw-r--r-- | lib/sublab_calendar/calendar.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/sublab_calendar/calendar.rb b/lib/sublab_calendar/calendar.rb new file mode 100644 index 0000000..e136ff5 --- /dev/null +++ b/lib/sublab_calendar/calendar.rb @@ -0,0 +1,48 @@ +module SublabCalendar + + class Calendar + + attr_reader :calendar + + def initialize(ical) + @calendar = Icalendar.parse(ical).first + end + + def self.load(url=URL) + request = HTTPI::Request.new + request.url = URL + request.auth.digest(USER, PASS) + request.auth.ssl.verify_mode = :none + response = HTTPI.get(request) + + ical = response.body + new(ical) + end + + def events + calendar.events.map(&method(:readable)) + end + + def future + calendar.events.select {|ev| ev.dtstart >= DateTime.now}.map(&method(:readable)) + end + + def past + calendar.events.select {|ev| ev.dtstart < DateTime.now}.map(&method(:readable)) + end + + def recurring + events.select(&:"recurring?") + end + + def next(count=1) + future.take(count) + end + + def readable(event) + SublabCalendar::Event.new(event) + end + + end + +end |