Class: Gameplan::SiteGenerator
- Inherits:
-
Object
- Object
- Gameplan::SiteGenerator
- Defined in:
- lib/gameplan/site_generator.rb
Instance Method Summary collapse
- #generate ⇒ Object
- #generate_page(out, name, locals = {}) ⇒ Object
-
#initialize(plan) ⇒ SiteGenerator
constructor
A new instance of SiteGenerator.
Constructor Details
#initialize(plan) ⇒ SiteGenerator
Returns a new instance of SiteGenerator.
7 8 9 10 11 12 |
# File 'lib/gameplan/site_generator.rb', line 7 def initialize(plan) @plan = plan @root = File.("../frontend", __FILE__) @target = File.join(Dir.pwd, 'site') @template = File.read(File.join(@root, "views/layout/application.erb")) end |
Instance Method Details
#generate ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/gameplan/site_generator.rb', line 14 def generate FileUtils.rm_rf(@target) FileUtils.mkdir_p(@target) # copy static assets FileUtils.cp_r(File.join(@root, 'public/js'), @target) FileUtils.cp_r(File.join(@root, 'public/img'), @target) FileUtils.cp_r(File.join(@root, 'public/css'), @target) generate_page('index', 'home') @plan.apps.values.each do |app| @app = app generate_page("app-#{app.name}", 'app') app.states.values.each do |state| @state = state generate_page("app-#{app.name}-state-#{state.name}", 'state') end end end |
#generate_page(out, name, locals = {}) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/gameplan/site_generator.rb', line 33 def generate_page(out, name, locals = {}) template = File.join(@root, "views/layout/application.erb") out_file = File.join(@target, "#{out}.html") File.open(out_file, 'w') do |f| in_file = File.join(@root, "views/#{name}.erb") @page = ERB.new(File.read(in_file)).result(binding) erb = ERB.new(File.read(template)) f << erb.result(binding) end end |