| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- class AssetsCLI < Thor
- def self.to_s
- 'Assets'
- end
- def initialize(*args)
- ENV['RACK_ENV'] = 'production'
- require 'app'
- super
- end
- desc 'compile [--clean] [--keep=<n>] [--verbose]', 'Compile all assets'
- option :clean, type: :boolean, desc: 'Clean old assets after compilation'
- option :keep, type: :numeric, default: 0, desc: 'Number of old assets to keep'
- option :verbose, type: :boolean
- def compile
- load 'tasks/sprites.thor'
- invoke 'sprites:generate', [], :remove_public_icons => true, :verbose => options[:verbose]
- manifest.compile App.assets_compile
- manifest.clean(options[:keep]) if options[:clean]
- end
- desc 'clean [--keep=<n>] [--verbose]', 'Clean old assets'
- option :keep, type: :numeric, default: 0, desc: 'Number of old assets to keep'
- option :verbose, type: :boolean
- def clean
- manifest.clean(options[:keep])
- end
- private
- def sprockets
- @sprockets ||= App.sprockets.tap do |sprockets|
- sprockets.logger = logger
- sprockets.cache = nil
- end
- end
- def manifest
- @manifest ||= Sprockets::Manifest.new sprockets.index, App.assets_manifest_path
- end
- def logger
- @logger ||= Logger.new($stdout).tap do |logger|
- logger.level = options[:verbose] ? Logger::DEBUG : Logger::INFO
- logger.formatter = proc { |severity, datetime, progname, msg| "#{msg}\n" }
- end
- end
- end
|