class Sprockets::Asset
Attributes
Public: Returns String MIME type of asset. Returns nil if type is unknown.
Public: Returns String path of asset.
Internal: Unique asset object ID.
Returns a String.
Public: Metadata accumulated from pipeline process.
The API status of the keys is dependent on the pipeline processors itself. So some values maybe considered public and others internal. See the pipeline processor documentation itself.
Returns Hash.
Public: Internal URI to lookup asset by.
NOT a publicly accessible URL.
Returns URI.
Public Class Methods
Private: Initialize Asset
wrapper from attributes Hash.
Asset
wrappers should not be initialized directly, only Environment#find_asset
should vend them.
attributes - Hash of ivars
Returns Asset
.
# File lib/sprockets/asset.rb, line 17 def initialize(attributes = {}) @attributes = attributes @content_type = attributes[:content_type] @filename = attributes[:filename] @id = attributes[:id] @load_path = attributes[:load_path] @logical_path = attributes[:logical_path] @metadata = attributes[:metadata] @name = attributes[:name] @source = attributes[:source] @uri = attributes[:uri] end
Public Instance Methods
Public: Returns String base64 digest of source.
# File lib/sprockets/asset.rb, line 152 def base64digest DigestUtils.pack_base64digest(digest) end
Public: Get charset of source.
Returns a String charset name or nil if binary.
# File lib/sprockets/asset.rb, line 115 def charset metadata[:charset] end
Public: Returns String byte digest of source.
# File lib/sprockets/asset.rb, line 126 def digest metadata[:digest] end
Public: Return logical path with digest spliced in.
"foo/bar-37b51d194a7513e45b56f6524f2d51f2.js"
Returns String.
# File lib/sprockets/asset.rb, line 66 def digest_path if DigestUtils.already_digested?(@name) logical_path else logical_path.sub(/\.(\w+)$/) { |ext| "-#{etag}#{ext}" } end end
Public: Add enumerator to allow ‘Asset` instances to be used as Rack compatible body objects.
block
part - String body chunk
Returns nothing.
# File lib/sprockets/asset.rb, line 168 def each yield to_s end
Private: Return the version of the environment where the asset was generated.
# File lib/sprockets/asset.rb, line 131 def environment_version metadata[:environment_version] end
Public: Compare assets.
Assets are equal if they share the same path and digest.
Returns true or false.
# File lib/sprockets/asset.rb, line 207 def eql?(other) self.class == other.class && self.id == other.id end
Pubic: ETag String of Asset
.
# File lib/sprockets/asset.rb, line 141 def etag version = environment_version if version && version != "" DigestUtils.hexdigest(version + digest) else DigestUtils.pack_hexdigest(digest) end end
Public: Return load path + logical path with digest spliced in.
Returns String.
# File lib/sprockets/asset.rb, line 77 def full_digest_path File.join(@load_path, digest_path) end
Public: Implements Object#hash so Assets can be used as a Hash key or in a Set.
Returns Integer hash of the id.
# File lib/sprockets/asset.rb, line 198 def hash id.hash end
Public: Returns String hexdigest of source.
# File lib/sprockets/asset.rb, line 136 def hexdigest DigestUtils.pack_hexdigest(digest) end
Public: Pretty inspect
Returns String.
# File lib/sprockets/asset.rb, line 190 def inspect "#<#{self.class}:#{object_id.to_s(16)} #{uri.inspect}>" end
Public: A “named information” URL for subresource integrity.
# File lib/sprockets/asset.rb, line 157 def integrity DigestUtils.integrity_uri(digest) end
Public: Returns Integer length of source.
# File lib/sprockets/asset.rb, line 120 def length metadata[:length] end
Public: Get all externally linked asset filenames from asset.
All linked assets should be compiled anytime this asset is.
Returns Set of String asset URIs.
# File lib/sprockets/asset.rb, line 89 def links metadata[:links] || Set.new end
Public: Return ‘String` of concatenated source.
Returns String.
# File lib/sprockets/asset.rb, line 96 def source if @source @source else # File is read everytime to avoid memory bloat of large binary files File.binread(filename) end end
Internal: Return all internal instance variables as a hash.
Returns a Hash.
# File lib/sprockets/asset.rb, line 33 def to_hash @attributes end
Public: Alias for source
.
Returns String.
# File lib/sprockets/asset.rb, line 108 def to_s source end
Deprecated: Save asset to disk.
filename - String target
Returns nothing.
# File lib/sprockets/asset.rb, line 177 def write_to(filename) FileUtils.mkdir_p File.dirname(filename) PathUtils.atomic_write(filename) do |f| f.write source end nil end