class Sprockets::Rails::Task

def assets

def assets
  if app
    app.config.assets.precompile
  else
    super
  end
end

def cache_path

def cache_path
  if app
    "#{app.config.root}/tmp/cache/assets"
  else
    @cache_path
  end
end

def define

def define
  namespace :assets do
    # Override this task change the loaded dependencies
    desc "Load asset compile environment"
    task :environment do
      # Load full Rails environment by default
      Rake::Task['environment'].invoke
    end
    desc "Compile all the assets named in config.assets.precompile"
    task :precompile => :environment do
      with_logger do
        manifest.compile(assets)
      end
    end
    desc "Remove old compiled assets"
    task :clean, [:keep] => :environment do |t, args|
      keep = Integer(args.keep || 2)
      with_logger do
        manifest.clean(keep)
      end
    end
    desc "Remove compiled assets"
    task :clobber => :environment do
      with_logger do
        manifest.clobber
        rm_rf cache_path if cache_path
      end
    end
  end
end

def environment

def environment
  if app
    app.assets
  else
    super
  end
end

def initialize(app = nil)

def initialize(app = nil)
  self.app = app
  super()
end

def manifest

def manifest
  if app
    Sprockets::Manifest.new(index, output, app.config.assets.manifest)
  else
    super
  end
end

def output

def output
  if app
    File.join(app.root, 'public', app.config.assets.prefix)
  else
    super
  end
end