Class: Sprockets::CachedEnvironment
- Defined in:
- lib/sprockets/cached_environment.rb
Overview
CachedEnvironment is a special cached version of Environment.
The exception is that all of its file system methods are cached for the instances lifetime. This makes CachedEnvironment much faster. This behavior is ideal in production environments where the file system is immutable.
CachedEnvironment should not be initialized directly. Instead use ‘Environment#cached`.
Constant Summary
Constants included from Bower
Constants included from PathUtils
Constants included from ProcessorUtils
ProcessorUtils::VALID_METADATA_COMPOUND_TYPES, ProcessorUtils::VALID_METADATA_COMPOUND_TYPES_HASH, ProcessorUtils::VALID_METADATA_TYPES, ProcessorUtils::VALID_METADATA_VALUE_TYPES, ProcessorUtils::VALID_METADATA_VALUE_TYPES_HASH
Constants included from DigestUtils
DigestUtils::DIGEST_SIZES, DigestUtils::HASH_ALGORITHMS
Constants included from Server
Server::ALLOWED_REQUEST_METHODS, Server::VARY, Server::X_CASCADE
Constants included from SourceMapUtils
SourceMapUtils::BASE64_DIGITS, SourceMapUtils::BASE64_VALUES, SourceMapUtils::VLQ_BASE, SourceMapUtils::VLQ_BASE_MASK, SourceMapUtils::VLQ_BASE_SHIFT, SourceMapUtils::VLQ_CONTINUATION_BIT
Instance Attribute Summary
Attributes inherited from Base
Attributes included from Configuration
#config, #context_class, #logger
Instance Method Summary collapse
-
#cached ⇒ Object
(also: #index)
No-op return self as cached environment.
-
#entries(path) ⇒ Object
Internal: Cache Environment#entries.
-
#initialize(environment) ⇒ CachedEnvironment
constructor
A new instance of CachedEnvironment.
-
#load(uri) ⇒ Object
Internal: Cache Environment#load.
-
#processor_cache_key(str) ⇒ Object
Internal: Cache Environment#processor_cache_key.
-
#resolve_dependency(str) ⇒ Object
Internal: Cache Environment#resolve_dependency.
-
#stat(path) ⇒ Object
Internal: Cache Environment#stat.
Methods inherited from Base
#[], #compress_from_root, #expand_from_root, #file_digest, #find_all_linked_assets, #find_asset, #find_asset!, #inspect
Methods included from Npm
#read_package_directives, #resolve_alternates
Methods included from Bower
#read_bower_main, #resolve_alternates
Methods included from Resolve
Methods included from HTTPUtils
#find_best_mime_type_match, #find_best_q_match, #find_mime_type_matches, #find_q_matches, #match_mime_type?, #match_mime_type_keys, #parse_q_values
Methods included from PathDependencyUtils
#entries_with_dependencies, #stat_directory_with_dependencies, #stat_sorted_tree_with_dependencies
Methods included from URIUtils
#build_asset_uri, #build_file_digest_uri, #encode_uri_query_params, #join_file_uri, #join_uri, #parse_asset_uri, #parse_file_digest_uri, #parse_uri_query_params, #split_file_uri, #split_uri, #valid_asset_uri?
Methods included from PathUtils
#absolute_path?, #atomic_write, #directory?, #file?, #find_matching_path_for_extensions, #find_upwards, #join, #match_path_extname, #path_extnames, #path_parents, #paths_split, #relative_path?, #relative_path_from, #set_pipeline, #split_subpath, #stat_directory, #stat_sorted_tree, #stat_tree
Methods included from Mime
#mime_exts, #mime_type_charset_detecter, #mime_types, #read_file, #register_mime_type
Methods included from Utils
#concat_javascript_sources, #dfs, #dfs_paths, #duplicable?, #hash_reassoc, #hash_reassoc1, #module_include, #string_end_with_semicolon?
Methods included from Processing
#bundle_processors, #pipelines, #postprocessors, #preprocessors, #register_bundle_metadata_reducer, #register_bundle_processor, #register_pipeline, #register_postprocessor, #register_preprocessor, #unregister_bundle_processor, #unregister_postprocessor, #unregister_preprocessor
Methods included from ProcessorUtils
#call_processor, #call_processors, #compose_processors, #processors_cache_keys, #validate_processor_result!
Methods included from Transformers
#compose_transformers, #expand_transform_accepts, #register_transformer, #register_transformer_suffix, #resolve_transform_type, #transformers
Methods included from DigestUtils
#already_digested?, #detect_digest_class, #digest, #digest_class, #hexdigest, #hexdigest_integrity_uri, #integrity_uri, #pack_base64digest, #pack_hexdigest, #pack_urlsafe_base64digest, #unpack_hexdigest
Methods included from Server
Methods included from Configuration
#digest_class, #digest_class=, #initialize_configuration, #version, #version=
Methods included from Paths
#append_path, #clear_paths, #each_file, #paths, #prepend_path, #root
Methods included from Exporting
#export_concurrent, #export_concurrent=, #exporters, #register_exporter, #unregister_exporter
Methods included from Compressing
#compressors, #css_compressor, #css_compressor=, #gzip=, #gzip?, #js_compressor, #js_compressor=, #register_compressor, #skip_gzip?
Methods included from Dependencies
#add_dependency, #dependencies, #dependency_resolvers, #register_dependency_resolver
Methods included from PathDigestUtils
#file_digest, #files_digest, #stat_digest
Methods included from SourceMapUtils
#bsearch_mappings, #combine_source_maps, #compare_source_offsets, #concat_source_maps, #decode_source_map, #decode_vlq_mappings, #encode_source_map, #encode_vlq_mappings, #format_source_map, #make_index_map, #vlq_decode, #vlq_decode_mappings, #vlq_encode, #vlq_encode_mappings
Constructor Details
#initialize(environment) ⇒ CachedEnvironment
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/sprockets/cached_environment.rb', line 15 def initialize(environment) initialize_configuration(environment) @cache = environment.cache @stats = Concurrent::Map.new @entries = Concurrent::Map.new @uris = Concurrent::Map.new @processor_cache_keys = Concurrent::Map.new @resolved_dependencies = Concurrent::Map.new end |
Instance Method Details
#cached ⇒ Object Also known as: index
No-op return self as cached environment.
27 28 29 |
# File 'lib/sprockets/cached_environment.rb', line 27 def cached self end |
#entries(path) ⇒ Object
Internal: Cache Environment#entries
33 34 35 |
# File 'lib/sprockets/cached_environment.rb', line 33 def entries(path) @entries.fetch_or_store(path) { super(path) } end |
#load(uri) ⇒ Object
Internal: Cache Environment#load
43 44 45 |
# File 'lib/sprockets/cached_environment.rb', line 43 def load(uri) @uris.fetch_or_store(uri) { super(uri) } end |
#processor_cache_key(str) ⇒ Object
Internal: Cache Environment#processor_cache_key
48 49 50 |
# File 'lib/sprockets/cached_environment.rb', line 48 def processor_cache_key(str) @processor_cache_keys.fetch_or_store(str) { super(str) } end |
#resolve_dependency(str) ⇒ Object
Internal: Cache Environment#resolve_dependency
53 54 55 |
# File 'lib/sprockets/cached_environment.rb', line 53 def resolve_dependency(str) @resolved_dependencies.fetch_or_store(str) { super(str) } end |
#stat(path) ⇒ Object
Internal: Cache Environment#stat
38 39 40 |
# File 'lib/sprockets/cached_environment.rb', line 38 def stat(path) @stats.fetch_or_store(path) { super(path) } end |