41 lines
847 B
Ruby
41 lines
847 B
Ruby
|
require 'sprockets'
|
||
|
require 'sprockets-vendor_gems/extend_all'
|
||
|
require 'pathname'
|
||
|
require 'sprockets/assistant/output'
|
||
|
|
||
|
module Sprockets
|
||
|
module Assistant
|
||
|
class Compiler
|
||
|
include Sprockets::Assistant::Output
|
||
|
|
||
|
DEFAULT_TARGET = "compiled"
|
||
|
|
||
|
def initialize(settings)
|
||
|
@settings = settings
|
||
|
@target = DEFAULT_TARGET
|
||
|
end
|
||
|
|
||
|
def compile
|
||
|
@env = Sprockets::Environment.new
|
||
|
@env.append_path('assets/javascripts')
|
||
|
@env.append_path('assets/stylesheets')
|
||
|
|
||
|
instance_eval(&@settings)
|
||
|
end
|
||
|
|
||
|
def file(name)
|
||
|
file_target = target.join(name)
|
||
|
say "#{name} => #{file_target}"
|
||
|
|
||
|
file_target.parent.mkpath
|
||
|
target.join(name).open('w') { |fh| fh.print @env[name].to_s }
|
||
|
end
|
||
|
|
||
|
def target
|
||
|
Pathname(@target)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|