Sha256: 68cb0b182c1f39d87623e4bb85543c265e34ad26347c8ab65a8f23b8f15c9544

Contents?: true

Size: 986 Bytes

Versions: 1

Compression:

Stored size: 986 Bytes

Contents

require 'fileutils'
require 'pyro/assets'

module Pyro
  include Pyro::Assets

  def self.burn(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 burn.'
    end

    if @target == 'development' || @target == 'test'
      @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
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pyro-1.0.0.rc1 lib/pyro.rb