class Sprockets::Standalone::RakeTask

Attributes

assets[RW]

List of sprocket file targets that should be compiled.

environment[RW]

`Environment` instance used for finding assets.

manifest_name[RW]

Full path to the manifest json file

output[RW]

Set output directory. Defaults to `dist` in current working directory.

sources[RW]

List of source directories. This is a convenience method as it will add all available sub-directories like `stylesheets`, `javascripts` to sprockets include path.

Example: If you have a typical sprockets directory layout like `src/assets/stylesheets`, `src/assets/javascripts` all you need to add to `source` is `src/assets`.

Public Class Methods

new(*args) { |self, environment| ... } click to toggle source
# File lib/sprockets/standalone.rb, line 42
def initialize(*args)
  @namespace   = args.shift || :assets
  @assets      = %w(application.js application.css *.png *.jpg *.gif)
  @sources     = []
  @output      = File.expand_path('dist', Dir.pwd)
  @manifest_name    = 'manifest.json'

  @environment = Sprockets::Environment.new(Dir.pwd) do |env|
    env.logger = Logger.new $stdout
    env.logger.level = Logger::INFO
  end

  yield self, environment if block_given?

  Array(sources).each { |source| environment.append_path source }

  namespace @namespace do
    desc 'Compile assets'
    task :compile do
      manifest.compile *Array(assets)
    end

    desc 'Remove all assets'
    task :clobber do
      manifest.clobber
    end

    desc 'Clean old assets'
    task :clean do
      manifest.clean
    end
  end
end

Public Instance Methods

index() click to toggle source
# File lib/sprockets/standalone.rb, line 34
def index
  @index ||= environment.index if environment
end
manifest() click to toggle source
# File lib/sprockets/standalone.rb, line 38
def manifest
  @manifest ||= Sprockets::Manifest.new index, File.join(output, manifest_name)
end