module Sprockets::Dependencies
def add_dependency(uri)
uri - String dependency URI
Public: Add environmental dependency inheirted by all assets.
def add_dependency(uri) self.config = hash_reassoc(config, :dependencies) do |set| set + Set.new([uri]) end end
def dependencies
Public: Default set of dependency URIs for assets.
def dependencies config[:dependencies] end
def dependency_resolvers
value - Proc.call(Environment, String)
key - String scheme
Public: Mapping dependency schemes to resolver functions.
def dependency_resolvers config[:dependency_resolvers] end
def register_dependency_resolver(scheme, &block)
uri - String dependency URI
environment - Environment
block -
scheme - String scheme
Public: Register new dependency URI resolver.
def register_dependency_resolver(scheme, &block) self.config = hash_reassoc(config, :dependency_resolvers) do |hash| hash.merge(scheme => block) end end
def resolve_dependency(str)
Internal: Resolve dependency URIs.
def resolve_dependency(str) # Optimize for the most common scheme to # save 22k allocations on an average Spree app. scheme = if str.start_with?('file-digest:'.freeze) 'file-digest'.freeze else str[/([^:]+)/, 1] end if resolver = config[:dependency_resolvers][scheme] resolver.call(self, str) else nil end end