Sha256: e6748cb23b664d3028c8a701431b4f716ff45d9ce1ecf3ea506548f8e95abc72
Contents?: true
Size: 1.22 KB
Versions: 4
Compression:
Stored size: 1.22 KB
Contents
# # Icalendar wrapper. # # Allows injection of ics calender events from either a remote server or file. # Meant to provide the backbone event source for local reminders. # module CAL # Calendar object. class C # Calendar +f+ def initialize f @f = f end # each calendar event def each &b @f.events.each { |e| b.call(E.new(e)) } return nil end # map each calendar event def map &b a = [] @f.events.each { |e| a << b.call(E.new(e)) } return a end end # Calendar Event object class E # Calendar Event +f+. def initialize f @f = f end # Calendar Event location def where @f.location end # Calendar Event focus def who @f.summary end # Calendar Event details def what @f.description end # Calendar Event scheduling def when { begin: @f.dtstart, end: @f.dtend } end end # Load Calendar Event Collection from file +f+. def self.from_file f x = File.read(f) C.new(Icalendar::Calendar.parse(x).first) end # Load Calendar Event Collection from url +u+. def self.from_url u x = Faraday.new().get(u).body C.new(Icalendar::Calendar.parse(x).first) end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
gnu-remind-0.2.5 | lib/remind/calendar.rb |
gnu-remind-0.2.3 | lib/remind/calendar.rb |
gnu-remind-0.2.2 | lib/remind/calendar.rb |
gnu-remind-0.2.1 | lib/remind/calendar.rb |