module Sprockets::Dependencies

‘Dependencies` is an internal mixin whose public methods are exposed on the `Environment` and `CachedEnvironment` classes.

Public Instance Methods

add_dependency(uri) click to toggle source

Public: Add environmental dependency inherited by all assets.

uri - String dependency URI

Returns nothing.

# File lib/sprockets/dependencies.rb, line 48
def add_dependency(uri)
  self.config = hash_reassoc(config, :dependencies) do |set|
    set + Set.new([uri])
  end
end
Also aliased as: depend_on
depend_on(uri)
Alias for: add_dependency
dependencies() click to toggle source

Public: Default set of dependency URIs for assets.

Returns Set of String URIs.

# File lib/sprockets/dependencies.rb, line 25
def dependencies
  config[:dependencies]
end
dependency_resolvers() click to toggle source

Public: Mapping dependency schemes to resolver functions.

key - String scheme value - Proc.call(Environment, String)

Returns Hash.

# File lib/sprockets/dependencies.rb, line 18
def dependency_resolvers
  config[:dependency_resolvers]
end
register_dependency_resolver(scheme, &block) click to toggle source

Public: Register new dependency URI resolver.

scheme - String scheme block -

environment - Environment
uri - String dependency URI

Returns nothing.

# File lib/sprockets/dependencies.rb, line 37
def register_dependency_resolver(scheme, &block)
  self.config = hash_reassoc(config, :dependency_resolvers) do |hash|
    hash.merge(scheme => block)
  end
end
resolve_dependency(str) click to toggle source

Internal: Resolve dependency URIs.

Returns resolved Object.

# File lib/sprockets/dependencies.rb, line 58
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