`BundledAsset`s are used for files that need to be processed and concatenated with other assets. Use for `.js` and `.css` files.
# File lib/sprockets/bundled_asset.rb, line 13 def initialize(environment, logical_path, pathname) super(environment, logical_path, pathname) @processed_asset = environment.find_asset(pathname, :bundle => false) @required_assets = @processed_asset.required_assets @dependency_paths = @processed_asset.dependency_paths @source = "" # Explode Asset into parts and gather the dependency bodies to_a.each { |dependency| @source << dependency.to_s } # Run bundle processors on concatenated source context = environment.context_class.new(environment, logical_path, pathname) @source = context.evaluate(pathname, :data => @source, :processors => environment.bundle_processors(content_type)) @mtime = (to_a + @dependency_paths).map(&:mtime).max @length = Rack::Utils.bytesize(source) @digest = environment.digest.update(source).hexdigest end
Get asset's own processed contents. Excludes any of its required dependencies but does run any processors or engines on the original file.
# File lib/sprockets/bundled_asset.rb, line 60 def body @processed_asset.source end
Return an `Array` of `Asset` files that are declared dependencies.
# File lib/sprockets/bundled_asset.rb, line 65 def dependencies to_a.reject { |a| a.eql?(@processed_asset) } end
Serialize custom attributes in `BundledAsset`.
# File lib/sprockets/bundled_asset.rb, line 50 def encode_with(coder) super coder['source'] = source coder['required_assets_digest'] = @processed_asset.dependency_digest end
Checks if Asset is stale by comparing the actual mtime and digest to the inmemory model.
# File lib/sprockets/bundled_asset.rb, line 76 def fresh?(environment) @processed_asset.fresh?(environment) end
Initialize `BundledAsset` from serialized `Hash`.
# File lib/sprockets/bundled_asset.rb, line 36 def init_with(environment, coder) super @processed_asset = environment.find_asset(pathname, :bundle => false) @required_assets = @processed_asset.required_assets if @processed_asset.dependency_digest != coder['required_assets_digest'] raise UnserializeError, "processed asset belongs to a stale environment" end @source = coder['source'] end
Expand asset into an `Array` of parts.
# File lib/sprockets/bundled_asset.rb, line 70 def to_a required_assets end