module Pyro

Public Class Methods

build(target = 'production', fast = false, working_dir = '.') click to toggle source
# File lib/pyro.rb, line 7
def self.build(target = 'production', fast = false, working_dir = '.')
  @target      = target
  @timestamp   = Time.now.strftime "%Y%m%d%H%M%S"
  @working_dir = working_dir
  @links       = []

  unless File.exists? "#{@working_dir}/index.erb"
    raise 'Can\'t find an index.erb file to build.'
  end

  if @target == 'development'
    @build_dir = "#{@working_dir}/tmp"
  else
    @build_dir = "#{@working_dir}/pkg/#{@timestamp}"
  end

  FileUtils.rm_rf   @build_dir
  FileUtils.mkdir_p @build_dir

  unless fast
    FileUtils.cp_r("#{@working_dir}/resources", @build_dir)
    FileUtils.cp_r("#{@working_dir}/vendor",    @build_dir)
  end

  File.open("#{@build_dir}/index.html", 'w+') do |f|
    f.write( ERB.new(File.read "#{@working_dir}/index.erb").result(binding) )
  end
  
  compress(@build_dir) if @target == 'production'
end