module Icalendar::Google::Parsers
Public Instance Methods
from_google_id(id)
click to toggle source
# File lib/icalendar/google/parsers.rb, line 7 def from_google_id(id) cid = CGI.escape(id) url = "https://calendar.google.com/calendar/ical/#{cid}/public/basic.ics" from_url(url) end
from_url(url)
click to toggle source
# File lib/icalendar/google/parsers.rb, line 13 def from_url(url) cid = url[%r{https://calendar.google.com/calendar/ical/(.*?)/public/basic.ics}, 1] uri = URI.parse(url) ssl = uri.scheme == "https" body = Net::HTTP.start(uri.host, uri.port, use_ssl: ssl) do |http| req = Net::HTTP::Get.new(uri.request_uri) res = http.request(req) enc = res['content-type'][%r{charset=(.*)}i, 1] enc.nil? ? res.body : res.body.force_encoding(enc) end Calendar.parse(body).each do |calendar| calendar.ical_url = url calendar.google_id = CGI.unescape(cid) end end