module Sprockets::Trail
`Trail` is an internal mixin whose public methods are exposed on the `Environment` and `Index` classes.
Public Instance Methods
Append a `path` to the `paths` list.
Paths at the beginning of the `Array` have a higher priority.
# File lib/sprockets/trail.rb, line 38 def append_path(path) expire_index! @trail.append_path(path) end
Clear all paths and start fresh.
There is no mechanism for reordering paths, so its best to completely wipe the paths list and reappend them in the order you want.
# File lib/sprockets/trail.rb, line 48 def clear_paths expire_index! @trail.paths.dup.each { |path| @trail.remove_path(path) } end
Returns an `Array` of extensions.
These extensions maybe omitted from logical path searches.
# => [".js", ".css", ".coffee", ".sass", ...]
# File lib/sprockets/trail.rb, line 59 def extensions trail.extensions.dup end
Returns an `Array` of path `String`s.
These paths will be used for asset logical path lookups.
Note that a copy of the `Array` is returned so mutating will have no affect on the environment. See `append_path`, `prepend_path`, and `clear_paths`.
# File lib/sprockets/trail.rb, line 23 def paths trail.paths.dup end
Prepend a `path` to the `paths` list.
Paths at the end of the `Array` have the least priority.
# File lib/sprockets/trail.rb, line 30 def prepend_path(path) expire_index! @trail.prepend_path(path) end
Finds the expanded real path for a given logical path by searching the environment's paths.
resolve("application.js") # => "/path/to/app/javascripts/application.js.coffee"
A `FileNotFound` exception is raised if the file does not exist.
# File lib/sprockets/trail.rb, line 70 def resolve(logical_path, options = {}) # If a block is given, preform an iterable search if block_given? args = attributes_for(logical_path).search_paths + [options] trail.find(*args) do |path| yield Pathname.new(path) end else resolve(logical_path, options) do |pathname| return pathname end raise FileNotFound, "couldn't find file '#{logical_path}'" end end
Returns `Environment` root.
All relative paths are expanded with root as its base. To be useful set this to your applications root directory. (`Rails.root`)
# File lib/sprockets/trail.rb, line 12 def root trail.root.dup end
Protected Instance Methods
# File lib/sprockets/trail.rb, line 86 def trail @trail end