Class: RunIcal::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/run_ical.rb

Constant Summary collapse

ALARM_TRIGGER =

1 day before

"-P1DT0H0M0S"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(race_date:, program:) ⇒ Generator

Returns a new instance of Generator.



24
25
26
27
# File 'lib/run_ical.rb', line 24

def initialize(race_date:, program:)
  @race_date = race_date
  @program = RunIcal::Data.const_get(program)
end

Class Method Details

.generate(race_date:, program:) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
21
22
# File 'lib/run_ical.rb', line 17

def self.generate(race_date:, program:)
  raise ArgumentError, "#{program} is unsupported" unless RunIcal::Data.constants.include?(program.to_sym)

  program = program.to_sym
  new(race_date: race_date, program: program).generate
end

Instance Method Details

#generateObject



29
30
31
32
33
34
35
# File 'lib/run_ical.rb', line 29

def generate
  cal = Icalendar::Calendar.new
  cal.x_wr_calname = "#{@program.const_get(:DESCRIPTION)} for #{@race_date}"
  training_days.each { |date, activity| add_event(cal, date, activity) }
  cal.publish
  cal.to_ical
end