module Sprockets::Rails::Helper
def self.extended(obj)
def self.extended(obj) obj.class_eval do attr_accessor(*VIEW_ACCESSORS) end end
def self.included(klass)
def self.included(klass) if klass < Sprockets::Context klass.class_eval do alias_method :assets_environment, :environment def assets_manifest; end class_attribute :config, :assets_prefix, :digest_assets end else klass.class_attribute(*VIEW_ACCESSORS) end end
def asset_digest(path, options = {})
options - Hash options
path - String path
Get digest for asset path.
def asset_digest(path, options = {}) return unless digest_assets if digest_path = asset_digest_path(path, options) digest_path[/-(.+)\./, 1] end end
def asset_digest_path(path, options = {})
options - Hash options
path - String path
Expand asset path to digested form.
def asset_digest_path(path, options = {}) if manifest = assets_manifest if digest_path = manifest.assets[path] return digest_path end end if environment = assets_environment if asset = environment[path] return asset.digest_path end end end
def assets_manifest; end
def assets_manifest; end
def compute_asset_path(path, options = {})
def compute_asset_path(path, options = {}) if digest_path = asset_digest_path(path) path = digest_path if digest_assets path += "?body=1" if options[:debug] File.join(assets_prefix || "/", path) else super end end
def javascript_include_tag(*sources)
Override javascript tag helper to provide debugging support.
def javascript_include_tag(*sources) options = sources.extract_options!.stringify_keys if request_debug_assets? sources.map { |source| if asset = lookup_asset_for_path(source, :type => :javascript) asset.to_a.map do |a| super(path_to_javascript(a.logical_path, :debug => true), options) end else super(source, options) end }.flatten.uniq.join("\n").html_safe else sources.push(options) super(*sources) end end
def lookup_asset_for_path(path, options = {})
Internal method to support multifile debugging. Will
def lookup_asset_for_path(path, options = {}) return unless env = assets_environment path = path.to_s if extname = compute_asset_extname(path, options) path = "#{path}#{extname}" end env[path] end
def request_debug_assets?
Enable split asset debugging. Eventually will be deprecated
def request_debug_assets? debug_assets || (defined?(controller) && controller && params[:debug_assets]) end
def stylesheet_link_tag(*sources)
Override stylesheet tag helper to provide debugging support.
def stylesheet_link_tag(*sources) options = sources.extract_options!.stringify_keys if request_debug_assets? sources.map { |source| if asset = lookup_asset_for_path(source, :type => :stylesheet) asset.to_a.map do |a| super(path_to_stylesheet(a.logical_path, :debug => true), options) end else super(source, options) end }.flatten.uniq.join("\n").html_safe else sources.push(options) super(*sources) end end