require 'uri'
require 'action_view/helpers/asset_paths'
module ActionView
module Helpers
module SprocketsHelper
def debug_assets?
params[:debug_assets] == '1' ||
params[:debug_assets] == 'true'
end
def asset_path(source, default_ext = nil, body = false)
source = source.logical_path if source.respond_to?(:logical_path)
path = asset_paths.compute_public_path(source, 'assets', default_ext, true)
body ? "#{path}?body=1" : path
end
def sprockets_javascript_include_tag(source, options = {})
debug = options.key?(:debug) ? options.delete(:debug) : debug_assets?
body = options.key?(:body) ? options.delete(:body) : false
if debug && asset = asset_paths.asset_for(source, 'js')
asset.to_a.map { |dep|
sprockets_javascript_include_tag(dep, :debug => false, :body => true)
}.join("\n").html_safe
else
options = {
'type' => "text/javascript",
'src' => asset_path(source, 'js', body)
}.merge(options.stringify_keys)
content_tag 'script', "", options
end
end
def sprockets_stylesheet_link_tag(source, options = {})
debug = options.key?(:debug) ? options.delete(:debug) : debug_assets?
body = options.key?(:body) ? options.delete(:body) : false
if debug && asset = asset_paths.asset_for(source, 'css')
asset.to_a.map { |dep|
sprockets_stylesheet_link_tag(dep, :debug => false, :body => true)
}.join("\n").html_safe
else
options = {
'rel' => "stylesheet",
'type' => "text/css",
'media' => "screen",
'href' => asset_path(source, 'css', body)
}.merge(options.stringify_keys)
tag 'link', options
end
end
end
end
end