Class: Jekyll::AttendeasePlugin::ScheduleGenerator
- Inherits:
-
Generator
- Object
- Generator
- Jekyll::AttendeasePlugin::ScheduleGenerator
- Defined in:
- lib/jekyll/attendease_plugin/schedule_generator.rb
Instance Attribute Summary collapse
-
#schedule_data ⇒ Object
readonly
Returns the value of attribute schedule_data.
Instance Method Summary collapse
Instance Attribute Details
#schedule_data ⇒ Object (readonly)
Returns the value of attribute schedule_data.
6 7 8 |
# File 'lib/jekyll/attendease_plugin/schedule_generator.rb', line 6 def schedule_data @schedule_data end |
Instance Method Details
#generate(site) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/jekyll/attendease_plugin/schedule_generator.rb', line 8 def generate(site) return if !site.config.event? || (site.config.event? && site.config.cms_theme?) if site.config['attendease']['api_host'] && site.config['attendease']['generate_schedule_pages'] @schedule_data = ScheduleDataParser.new(site) # # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # /schedule pages. dir = site.config['attendease']['schedule_path_name'] if dir if (site.config['attendease'] && site.config['attendease']['show_schedule_index']) site.pages << ScheduleIndexPage.new(site, site.source, File.join(dir), @schedule_data.event['dates']) else site.pages << ScheduleDayPage.new(site, site.source, File.join(dir), @schedule_data.event['dates'].first, @schedule_data.sessions, @schedule_data.event['dates']) end site.pages << ScheduleSessionsPage.new(site, site.source, File.join(dir, 'sessions'), @schedule_data.sessions, @schedule_data.event['dates']) @schedule_data.event['dates'].each do |day| site.pages << ScheduleDayPage.new(site, site.source, File.join(dir, day['date']), day, @schedule_data.sessions, @schedule_data.event['dates']) end @schedule_data.sessions.each do |session| site.pages << ScheduleSessionPage.new(site, site.source, File.join(dir, 'sessions'), session) end end # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # /presenters pages. dir = site.config['attendease']['presenters_path_name'] if dir @schedule_data.presenters.each do |presenter| site.pages << PresenterPage.new(site, site.source, dir, presenter, @schedule_data.sessions) end site.pages << PresentersIndexPage.new(site, site.source, File.join(dir), @schedule_data.presenters) end # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # /venue pages. # Create a single venue page at /venue if @schedule_data.venues.length == 1 dir = site.config['attendease']['venue_path_name'] if dir site.pages << VenuePage.new(site, site.source, dir, @schedule_data.venues.first, true) end end # Create a list of venues and venue pages to keep backwards compatibility. dir = site.config['attendease']['venues_path_name'] if dir @schedule_data.venues.each do |venue| site.pages << VenuePage.new(site, site.source, dir, venue) end site.pages << VenuesIndexPage.new(site, site.source, File.join(dir), @schedule_data.venues) end end end |