Skip to content

Commit 54fba40

Browse files
committed
script to generate schedule YAML from the schedule spreadsheet used to schedule
talks, breaks, lunches, etc.
1 parent 3cfa90a commit 54fba40

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed

_scripts/examples/schedule.csv

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
Day,Start,Description
2+
1,8:30,Registration
3+
1,9:30,Announcements
4+
1,9:45,Opening Keynote
5+
1,10:30,Break
6+
1,10:45,Group 1 Talks
7+
1,12:00,Lunch
8+
1,13:00,Announcements
9+
1,13:15,Group 2 Talks
10+
1,14:45,Break
11+
1,15:00,Lightning Talks
12+
1,16:00,Group 3 Talks
13+
1,17:00,Announcements
14+
1,17:15,End
15+
2,8:45,Registration
16+
2,9:00,Announcements
17+
2,9:15,Group 4 Talks
18+
2,10:50,Break
19+
2,11:10,Lightning Talks
20+
2,12:00,Lunch
21+
2,13:15,Announcements
22+
2,13:30,Group 5 Talks
23+
2,14:30,Breakouts
24+
2,15:45,Break
25+
2,16:00,Posters
26+
2,16:30,Group 6 Talks
27+
2,17:20,Announcements
28+
2,17:30,End
29+
3,8:30,Registration
30+
3,9:00,Announcements
31+
3,9:15,Closing Keynote
32+
3,10:00,Lightning Talks
33+
3,10:45,Break
34+
3,11:05,Breakouts
35+
3,11:50,Group 7 Talks
36+
3,12:35,Announcements
37+
3,12:45,End

_scripts/schedule.rb

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env ruby
2+
3+
require "csv"
4+
require "time"
5+
6+
prev_day = nil
7+
prev_start = nil
8+
prev_desc = nil
9+
10+
fmt = "%H:%M"
11+
12+
CSV.foreach(ARGV[0], headers: true).each do |row|
13+
day = row["Day"]
14+
start = row["Start"]
15+
desc = row["Description"].strip
16+
17+
if prev_day != nil
18+
# we have data to output
19+
d1 = Time.parse(prev_start)
20+
d2 = Time.parse(start)
21+
clockface = "#{d1.strftime("%l.%M").strip}.png"
22+
23+
puts "- timeImg: #{clockface}"
24+
puts " time: #{d1.strftime(fmt)}-#{d2.strftime(fmt)}"
25+
puts " day#{day}: true"
26+
puts " title: #{prev_desc}"
27+
28+
if prev_desc == "Opening Keynote"
29+
puts " groupId: key-open"
30+
elsif prev_desc == "Closing Keynote"
31+
puts " groupId: key-close"
32+
elsif prev_desc =~ /Group (\d) Talks/
33+
puts " groupId: #{$1}"
34+
end
35+
end
36+
37+
if desc == "End"
38+
# end of day, reset
39+
prev_day = nil
40+
prev_start = nil
41+
prev_desc = nil
42+
else
43+
prev_day = day
44+
prev_start = start
45+
prev_desc = desc
46+
end
47+
end

0 commit comments

Comments
 (0)