Class: Gibier::StaticGenerator

Inherits:
Object
  • Object
show all
Includes:
HamlHelper
Defined in:
lib/gibier/static_generator.rb

Instance Method Summary collapse

Methods included from HamlHelper

#convert_html

Constructor Details

#initialize(data_dir, target_dir) ⇒ StaticGenerator

Returns a new instance of StaticGenerator.



5
6
7
8
9
# File 'lib/gibier/static_generator.rb', line 5

def initialize(data_dir, target_dir)
  @data_dir = data_dir
  @target_dir = target_dir
  @slide_loader = Gibier::SlideLoader.new
end

Instance Method Details

#generate_page(name, assets_path = 'assets', slide_dir = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/gibier/static_generator.rb', line 20

def generate_page(name, assets_path = 'assets', slide_dir = nil)
  @slide_loader.init_slide(name)
  src_dir = "#{@data_dir}/#{name}"

  slide_dir =  "#{@target_dir}/#{name}" unless slide_dir
  FileUtils.mkdir_p slide_dir
  slide_haml = File.expand_path('../views/slide.haml', @data_dir)
  convert_html(slide_haml, "#{slide_dir}/index.html", slide_name: name, static: true, assets_path: assets_path)

  assets_dir = "#{@target_dir}/assets/#{name}"
  FileUtils.mkdir_p assets_dir

  FileUtils.cp_r("#{src_dir}/css", assets_dir)
  FileUtils.cp_r("#{src_dir}/images", assets_dir)

  js_dir =  "#{@target_dir}/assets/#{name}/javascripts"
  FileUtils.mkdir_p js_dir
  build(name, "#{js_dir}/application.js")
end

#generate_pages(assets_path = 'assets') ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/gibier/static_generator.rb', line 11

def generate_pages(assets_path = 'assets')
  Gibier::SlideHelper.each_slides(@data_dir) do |name|
    generate_page(name, assets_path)
  end

  convert_html(File.expand_path('../views/index.haml', @data_dir), "docs/index.html", slides: @slide_loader.slides)
  FileUtils.cp_r(File.expand_path('../assets', @data_dir), "docs")
end