Module: StaticMatic::BuildMixin

Included in:
Base
Defined in:
lib/staticmatic/mixins/build.rb

Instance Method Summary collapse

Instance Method Details

#buildObject



3
4
5
6
# File 'lib/staticmatic/mixins/build.rb', line 3

def build
  build_css
  build_html
end

#build_cssObject

Build CSS from the source files



18
19
20
21
22
23
# File 'lib/staticmatic/mixins/build.rb', line 18

def build_css
  Dir["#{@src_dir}/stylesheets/**/*.sass"].each do |path|
    file_dir, template = source_template_from_path(path.sub(/^#{@src_dir}\/stylesheets/, ''))
    save_stylesheet(File.join(file_dir, template), generate_css(template, file_dir))
  end
end

#build_htmlObject

Build HTML from the source files



9
10
11
12
13
14
15
# File 'lib/staticmatic/mixins/build.rb', line 9

def build_html
  Dir["#{@src_dir}/pages/**/*.haml"].each do |path|
    next if File.basename(path) =~ /^\_/  # skip partials
    file_dir, template = source_template_from_path(path.sub(/^#{@src_dir}\/pages/, ''))
    save_page(File.join(file_dir, template), generate_html_with_layout(template, file_dir))
  end
end

#copy_file(from, to) ⇒ Object



25
26
27
# File 'lib/staticmatic/mixins/build.rb', line 25

def copy_file(from, to)
  FileUtils.cp(from, to)
end

#generate_site_file(filename, extension, content) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'lib/staticmatic/mixins/build.rb', line 37

def generate_site_file(filename, extension, content)
  path = File.join(@site_dir,"#{filename}.#{extension}")
  FileUtils.mkdir_p(File.dirname(path))
  File.open(path, 'w+') do |f|
    f << content
  end
  
  puts "created #{path}"
end

#save_page(filename, content) ⇒ Object



29
30
31
# File 'lib/staticmatic/mixins/build.rb', line 29

def save_page(filename, content)
  generate_site_file(filename, 'html', content)
end

#save_stylesheet(filename, content) ⇒ Object



33
34
35
# File 'lib/staticmatic/mixins/build.rb', line 33

def save_stylesheet(filename, content)
  generate_site_file(File.join('stylesheets', filename), 'css', content)
end