Class: Sprockets::Environment
Instance Attribute Summary
Attributes inherited from Base
#cache, #context_class, #logger
Instance Method Summary collapse
-
#find_asset(path, options = {}) ⇒ Object
Cache
find_assetcalls. -
#index ⇒ Object
Returns a cached version of the environment.
-
#initialize(root = ".") {|_self| ... } ⇒ Environment
constructor
Environmentshould initialized with your application’s root directory.
Methods inherited from Base
#[], #attributes_for, #content_type_of, #each_file, #each_logical_path, #entries, #file_digest, #inspect, #stat
Methods included from Caching
Methods included from Processing
#bundle_processors, #css_compressor, #css_compressor=, #format_extensions, #js_compressor, #js_compressor=, #postprocessors, #preprocessors, #processors, #register_bundle_processor, #register_engine, #register_mime_type, #register_postprocessor, #register_preprocessor, #register_processor, #unregister_bundle_processor, #unregister_postprocessor, #unregister_preprocessor, #unregister_processor
Methods included from Engines
#engine_extensions, #engines, #register_engine
Methods included from Mime
#extension_for_mime_type, #mime_types, #register_mime_type
Methods included from Server
Methods included from Trail
#append_path, #clear_paths, #extensions, #paths, #prepend_path, #resolve, #root
Methods included from Digest
#digest, #digest_class, #digest_class=, #version, #version=
Constructor Details
#initialize(root = ".") {|_self| ... } ⇒ Environment
Environment should initialized with your application’s root directory. This should be the same as your Rails or Rack root.
env = Environment.new(Rails.root)
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/sprockets/environment.rb', line 20 def initialize(root = ".") @trail = Hike::Trail.new(root) self.logger = Logger.new($stderr) self.logger.level = Logger::FATAL # Create a safe `Context` subclass to mutate @context_class = Class.new(Context) # Set MD5 as the default digest require 'digest/md5' @digest_class = ::Digest::MD5 @version = '' @mime_types = {} @engines = Sprockets.engines @preprocessors = Hash.new { |h, k| h[k] = [] } @postprocessors = Hash.new { |h, k| h[k] = [] } @bundle_processors = Hash.new { |h, k| h[k] = [] } @engines.each do |ext, klass| add_engine_to_trail(ext, klass) end register_mime_type 'text/css', '.css' register_mime_type 'application/javascript', '.js' register_preprocessor 'text/css', DirectiveProcessor register_preprocessor 'application/javascript', DirectiveProcessor register_postprocessor 'application/javascript', SafetyColons register_bundle_processor 'text/css', CharsetNormalizer expire_index! yield self if block_given? end |
Instance Method Details
#find_asset(path, options = {}) ⇒ Object
Cache find_asset calls
68 69 70 71 72 73 74 75 76 |
# File 'lib/sprockets/environment.rb', line 68 def find_asset(path, = {}) # Ensure inmemory cached assets are still fresh on every lookup if (asset = @assets[path.to_s]) && asset.fresh? asset elsif asset = super @assets[path.to_s] = @assets[asset.pathname.to_s] = asset asset end end |
#index ⇒ Object
Returns a cached version of the environment.
All its file system calls are cached which makes index much faster. This behavior is ideal in production since the file system only changes between deploys.
63 64 65 |
# File 'lib/sprockets/environment.rb', line 63 def index Index.new(self) end |