class Volt::SprocketsHelpersSetup
Public Class Methods
new(volt_app)
click to toggle source
# File lib/volt/server/rack/sprockets_helpers_setup.rb, line 5 def initialize(volt_app) @volt_app = volt_app @env = volt_app.sprockets setup_path_helpers add_linking_in_asset_path end
Private Class Methods
expand(path)
click to toggle source
# File lib/volt/server/rack/sprockets_helpers_setup.rb, line 90 def self.expand(path) parts = path.split('/') output = [] parts.each do |part| if part == '..' output.pop else output << part end end output.join('/') end
Public Instance Methods
add_linking_in_asset_path()
click to toggle source
# File lib/volt/server/rack/sprockets_helpers_setup.rb, line 35 def add_linking_in_asset_path app_path = @volt_app.app_path @env.context_class.class_eval do # We "freedom-patch" sprockets-helpers asset_path method to # automatically link assets. define_method(:asset_path) do |source, options = {}| relative_path = source =~ /^[.][.]\// if relative_path component_root = logical_path.gsub(/\/[^\/]+$/, '') path = File.join(component_root, source) source = Volt::SprocketsHelpersSetup.expand(path) end if relative_path link_path = source else link_path = source.gsub(/^#{app_path}\//, '') end # Return for absolute urls (one's off site) uri = URI.parse(source) return source if uri.absolute? # Link all assets out of the box # Added by volt link_asset(link_path) options[:prefix] = Sprockets::Helpers.prefix unless options[:prefix] if Sprockets::Helpers.debug || options[:debug] options[:manifest] = false options[:digest] = false options[:asset_host] = false end source_ext = File.extname(source) if options[:ext] && source_ext != ".#{options[:ext]}" uri.path << ".#{options[:ext]}" end path = find_asset_path(uri, source, options) if options[:expand] && path.respond_to?(:to_a) path.to_a else path.to_s end end end end
setup_path_helpers()
click to toggle source
# File lib/volt/server/rack/sprockets_helpers_setup.rb, line 13 def setup_path_helpers digest = Volt.env.production? # Configure Sprockets::Helpers (if necessary) Sprockets::Helpers.configure do |config| config.environment = @env config.prefix = @volt_app.app_url config.public_path = 'public' config.debug = false#!Volt.env.production? # Force to debug mode in development mode # Debug mode automatically sets # expand = true, digest = false, manifest = false config.digest = digest end Sprockets::Helpers.digest = digest end