Skip to content

Instantly share code, notes, and snippets.

@foxweb
Created August 17, 2012 13:39
Show Gist options
  • Select an option

  • Save foxweb/3378757 to your computer and use it in GitHub Desktop.

Select an option

Save foxweb/3378757 to your computer and use it in GitHub Desktop.
require 'sprockets'
require 'uglifier'
require 'logger'
namespace :website do
desc "remove files in output directory"
task :clean do
puts "Removing output..."
Dir["html/*"].each { |f| rm_rf(f) }
end
desc "export website in output directory"
task :export => :clean do
puts "Export website..."
system "serve export"
Dir["html/javascripts/*"].each { |f| rm_rf(f) }
ROOT = Pathname(File.expand_path('../../', __FILE__))
BUNDLES = %w(application.js)
BUILD_DIR = ROOT.join("html")
SOURCE_DIR = ROOT.join("public")
sprockets = Sprockets::Environment.new(ROOT) do |env|
env.logger = Logger.new(STDOUT)
env.js_compressor = Uglifier.new
end
sprockets.append_path(SOURCE_DIR.join('javascripts').to_s)
BUNDLES.each do |bundle|
assets = sprockets.find_asset(bundle)
prefix, basename = assets.pathname.to_s.split('/')[-2..-1]
FileUtils.mkpath BUILD_DIR.join(prefix)
assets.write_to(BUILD_DIR.join(prefix, basename))
end
end
desc "serve website using serve (how meta)"
task :serve do
puts "Serving website..."
system "serve website"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment