class Jekyll::AttendeasePlugin::ScheduleDataParser
Attributes
site[RW]
Public Class Methods
new(site)
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 7 def initialize(site) @site = site end
Public Instance Methods
event()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 11 def event site.config['attendease']['event'] end
filters()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 55 def filters raw_filters end
presenters()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 15 def presenters @presenters ||= raw_presenters.each do |presenter| slug = Helpers.parameterize("#{presenter['first_name']} #{presenter['last_name']}") if slug == '' presenter['slug'] = presenter['id'] + '.html' else presenter['slug'] = slug + '.html' end end end
rooms()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 37 def rooms raw_rooms end
sessions()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 41 def sessions @sessions ||= begin raw_sessions.each do |session| slug = Helpers.parameterize(session['name']) if site.config['attendease']['session_slug_uses_code'] || slug == '' session['slug'] = session['code'] + '.html' else session['slug'] = slug + '.html' end end populate_sessions_with_related_data!(raw_sessions) end end
venues()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 26 def venues @venues ||= raw_venues.each do |venue| slug = Helpers.parameterize(venue['name']) if slug == '' venue['slug'] = venue['id'] + '.html' else venue['slug'] = slug + '.html' end end end
Protected Instance Methods
data_path()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 81 def data_path File.join(site.config['attendease_source'], '_attendease', 'data') end
get_session_instances(session)
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 145 def get_session_instances(session) session['instances'] ||= [] session['instances'].inject([]) do |memo, i| instance = i.select do |k, v| %w{ id date time end_time duration date_formatted time_formatted end_time_formatted duration_formatted room_id }.include?(k) end if room = rooms.select { |r| r['id'] == i['room_id'] }.first venue = venues.select { |v| v['id'] == room['venue_id'] }.first instance['room'] = room.merge({ 'venue_name' => venue['name'] }) instance['venue_slug'] = venue['slug'] memo << instance else memo end end end
get_session_presenters(session)
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 99 def get_session_presenters(session) session_presenters = presenters.select do |presenter| session['speaker_ids'].include?(presenter['id']) end session_presenters.inject([]) do |memo, presenter| memo << presenter.select do |k, v| %w{ id first_name last_name company title profile_url featured slug }.include?(k) end end end
populate_session_filters!(session, source)
click to toggle source
Populates filter related data into session, from source.
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 113 def populate_session_filters!(session, source) filters_for_session_hash = {} filters.each do |filter| filter['filter_items'].each_with_index do |filter_item, index| if source['filters'].include?(filter_item['id']) filters_for_session_hash[filter['name']] ||= { :colour => filter['colour'], :items => [] } filters_for_session_hash[filter['name']][:items] << { 'name' => filter_item['name'], 'colour' => filter_item['colour'], 'index' => index, } if event['primary_filter_id'] && event['primary_filter_id'] == filter['id'] session['primary_filter_name'] = filter['name'] session['primary_filter'] = filter_item['name'] end end end end session['filters'] = filters_for_session_hash.map { |key, value| { 'name' => key, 'items' => value[:items], 'colour' => value[:colour] } } session['filter_tags'] = get_session_filter_tags(session['filters']) end
raw_filters()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 77 def raw_filters @raw_filters ||= @site.data['filters'].sort{|f1, f2| f1['name'] <=> f2['name']} end
raw_presenters()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 61 def raw_presenters @raw_presenters ||= @site.data['presenters'].sort{|p1, p2| p1['last_name'] <=> p2['last_name']} end
raw_rooms()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 69 def raw_rooms @raw_rooms ||= @site.data['rooms'].sort{|r1, r2| r1['name'] <=> r2['name']} end
raw_sessions()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 73 def raw_sessions @raw_sessions ||= @site.data['sessions'].sort{|s1, s2| s1['name'] <=> s2['name']} end
raw_venues()
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_data_parser.rb, line 65 def raw_venues @raw_venues ||= @site.data['venues'].sort{|v1, v2| v1['name'] <=> v2['name']} end