2011-08-02 10:53:26 +00:00
|
|
|
require 'rake/dsl_definition'
|
2011-07-31 20:37:09 +00:00
|
|
|
module Guard
|
2011-08-01 09:47:58 +00:00
|
|
|
|
2011-07-31 20:37:09 +00:00
|
|
|
class RailsAssets::RailsRunner
|
|
|
|
|
2011-08-02 09:38:59 +00:00
|
|
|
def initialize(options)
|
|
|
|
|
2011-07-31 20:37:09 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
# Methods to run the asset pipeline
|
|
|
|
# Taken from - https://github.com/rails/rails/blob/master/actionpack/lib/sprockets/assets.rake
|
|
|
|
module AssetPipeline
|
|
|
|
extend self
|
|
|
|
extend Rake::DSL
|
|
|
|
|
|
|
|
def clean
|
|
|
|
assets = Rails.application.config.assets
|
|
|
|
public_asset_path = Rails.public_path + assets.prefix
|
|
|
|
rm_rf public_asset_path, :secure => true
|
|
|
|
end
|
|
|
|
|
|
|
|
def precompile
|
|
|
|
Sprockets::Helpers::RailsHelper
|
|
|
|
|
|
|
|
assets = Rails.application.config.assets.precompile
|
|
|
|
# Always perform caching so that asset_path appends the timestamps to file references.
|
|
|
|
Rails.application.config.action_controller.perform_caching = true
|
|
|
|
Rails.application.assets.precompile(*assets)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2011-08-01 09:47:58 +00:00
|
|
|
def boot_rails
|
2011-08-02 09:38:59 +00:00
|
|
|
@rails_booted ||= begin
|
|
|
|
require "#{Dir.pwd}/config/environment.rb"
|
|
|
|
true
|
|
|
|
end
|
2011-08-01 09:47:58 +00:00
|
|
|
end
|
|
|
|
|
2011-07-31 20:37:09 +00:00
|
|
|
def run_compiler
|
|
|
|
begin
|
|
|
|
@failed = false
|
|
|
|
AssetPipeline.clean
|
|
|
|
AssetPipeline.precompile
|
|
|
|
rescue => e
|
|
|
|
puts "An error occurred compiling assets: #{e}"
|
|
|
|
@failed = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# Runs the asset pipeline compiler.
|
|
|
|
#
|
|
|
|
# @return [ Boolean ] Whether the compilation was successful or not
|
|
|
|
def compile_assets
|
2011-08-02 09:38:59 +00:00
|
|
|
boot_rails
|
2011-07-31 20:37:09 +00:00
|
|
|
run_compiler
|
|
|
|
|
|
|
|
!failed?
|
|
|
|
end
|
|
|
|
|
|
|
|
def failed?
|
|
|
|
@failed
|
|
|
|
end
|
|
|
|
end
|
2011-08-02 09:38:59 +00:00
|
|
|
end
|