Class: Jekyll::AttendeasePlugin::ScheduleWidgetTag

Inherits:
Liquid::Tag
  • Object
show all
Defined in:
lib/jekyll/attendease_plugin/tags.rb

Instance Method Summary collapse

Instance Method Details

#render(context) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/jekyll/attendease_plugin/tags.rb', line 4

def render(context)
  schedule_data = ScheduleDataParser.new(context.registers[:site])
  base = File.join(context.registers[:site].config['source'])

  instances = schedule_data.sessions.inject([]) do |memo, s|
    s['instances'].each do |instance|
      instance['session'] = s
      memo << instance
    end
    memo
  end
  instances.sort!{|x,y| [x['time'], x['session']['name']] <=> [y['time'], y['session']['name']]}

  source_template_path = File.join(base, '_attendease', 'templates', 'schedule', 'widget.html')

  Liquid::Template.parse(File.read(source_template_path)).render('dates' => schedule_data.event['dates'], 'instances' => instances, 'filters' => schedule_data.filters)
end