forked from belowtheline/site_2014
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrender.rb
executable file
·35 lines (26 loc) · 1013 Bytes
/
render.rb
1
2
3
4
5
6
7
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
#!/usr/bin/env ruby
require 'json'
require 'haml'
require 'fileutils'
directories = %w{division}
directories.each { |dir| FileUtils.mkdir_p("output/#{dir}") }
states = JSON.load(File.open('data/states.json'))
divisions = JSON.load(File.open('data/divisions.json'))
representatives = JSON.load(File.open('data/house_of_representatives.json'))
senators = JSON.load(File.open('data/senate.json'))
div_by_state = {}
divisions.each do |key, div|
div['id'] = key
div_by_state[div['state']] ||= []
div_by_state[div['state']] << div
end
index = Haml::Engine.new(File.read('templates/index.haml'))
locals = {states: states, divisions: div_by_state}
File.write('output/index.html', index.render(Object.new, locals))
division = Haml::Engine.new(File.read('templates/division.haml'))
divisions.each do |key, div|
locals = div.clone.merge(
states: states, rep: representatives[key], senators: senators[div['state']]
)
File.write("output/division/#{key}.html", division.render(Object.new, locals))
end