Parent

Rake::SprocketsTask

Simple Sprockets compilation Rake task macro.

  Rake::SprocketsTask.new do |t|
    t.environment = Sprockets::Environment.new
    t.output      = "./public/assets"
    t.assets      = %w( application.js application.css )
  end

Attributes

name[RW]

Name of the task. Defaults to “assets”.

The name will also be used to suffix the clean and clobber tasks, “clean_assets“ and “clobber_assets“.

environment[W]
output[RW]

Directory to write compiled assets too. As well as the manifest file.

  t.output = "./public/assets"
assets[RW]

Array of asset logical paths to compile.

  t.assets = %w( application.js jquery.js application.css )
keep[RW]

Number of old assets to keep.

logger[RW]

Logger to use during rake tasks. Defaults to using stderr.

  t.logger = Logger.new($stdout)

Public Class Methods

new(name = :assets) click to toggle source
    # File lib/rake/sprocketstask.rb, line 79
79:     def initialize(name = :assets)
80:       @name         = name
81:       @environment  = lambda { Sprockets::Environment.new(Dir.pwd) }
82:       @logger       = Logger.new($stderr)
83:       @logger.level = Logger::INFO
84:       @keep         = 2
85: 
86:       yield self if block_given?
87: 
88:       define
89:     end

Public Instance Methods

define() click to toggle source

Define tasks

     # File lib/rake/sprocketstask.rb, line 92
 92:     def define
 93:       desc name == :assets ? "Compile assets" : "Compile #{name} assets"
 94:       task name do
 95:         with_logger do
 96:           manifest.compile(assets)
 97:         end
 98:       end
 99: 
100:       desc name == :assets ? "Remove all assets" : "Remove all #{name} assets"
101:       task "clobber_#{name}" do
102:         with_logger do
103:           manifest.clobber
104:         end
105:       end
106: 
107:       task :clobber => ["clobber_#{name}"]
108: 
109:       desc name == :assets ? "Clean old assets" : "Clean old #{name} assets"
110:       task "clean_#{name}" do
111:         with_logger do
112:           manifest.clean(keep)
113:         end
114:       end
115: 
116:       task :clean => ["clean_#{name}"]
117:     end
environment() click to toggle source

`Environment` instance used for finding assets.

You’ll most likely want to reassign `environment` to your own.

  Rake::SprocketsTask.new do |t|
    t.environment = Foo::Assets
  end
    # File lib/rake/sprocketstask.rb, line 31
31:     def environment
32:       if !@environment.is_a?(Sprockets::Base) && @environment.respond_to?(:call)
33:         @environment = @environment.call
34:       else
35:         @environment
36:       end
37:     end
log_level() click to toggle source

Returns logger level Integer.

    # File lib/rake/sprocketstask.rb, line 62
62:     def log_level
63:       @logger.level
64:     end
log_level=(level) click to toggle source

Set logger level with constant or symbol.

  t.log_level = Logger::INFO
  t.log_level = :debug
    # File lib/rake/sprocketstask.rb, line 71
71:     def log_level=(level)
72:       if level.is_a?(Integer)
73:         @logger.level = level
74:       else
75:         @logger.level = Logger.const_get(level.to_s.upcase)
76:       end
77:     end

Private Instance Methods

index() click to toggle source

Returns cached indexed environment

     # File lib/rake/sprocketstask.rb, line 121
121:       def index
122:         @index ||= environment.index
123:       end
manifest() click to toggle source

Returns manifest for tasks

     # File lib/rake/sprocketstask.rb, line 126
126:       def manifest
127:         @manifest ||= Sprockets::Manifest.new(index, output)
128:       end
with_logger() click to toggle source

Sub out environment logger with our rake task logger that writes to stderr.

     # File lib/rake/sprocketstask.rb, line 132
132:       def with_logger
133:         old_logger = index.logger
134:         index.logger = @logger
135:         yield
136:       ensure
137:         index.logger = old_logger
138:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.