Current section

Files

Jump to
magical lib ical parser calendar_parser.ex
Raw

lib/ical/parser/calendar_parser.ex

defmodule Magical.Parser.CalendarParser do
@moduledoc false
alias Magical.Event
alias Magical.Parser.EventParser
def parse_calendar([{"begin", "VEVENT", _} | _] = event, calendar) do
child = Enum.reduce(event, %Event{}, &EventParser.parse_event/2)
%{calendar | events: [child | calendar.events]}
end
def parse_calendar({"version", version, _}, calendar), do: Map.put(calendar, :version, version)
def parse_calendar({"x-wr-timezone", time_zone, _}, calendar),
do: Map.put(calendar, :time_zone, time_zone)
def parse_calendar({"prodid", prodid, _}, calendar), do: Map.put(calendar, :prodid, prodid)
def parse_calendar({"x-wr-calname", calname, _}, calendar),
do: Map.put(calendar, :title, calname)
def parse_calendar({"x-name", name, _}, calendar),
do: Map.put(calendar, :title, name)
def parse_calendar({"name", name, _}, calendar),
do: Map.put(calendar, :title, name)
def parse_calendar({"x-wr-caldesc", caldesc, _}, calendar),
do: Map.put(calendar, :title, caldesc)
def parse_calendar(_, calendar), do: calendar
end