Sha256: f04f86bcc137058d9a5d51f40f98d392835892ef2accd32f46d9d30717175dad
Contents?: true
Size: 1.74 KB
Versions: 1
Compression:
Stored size: 1.74 KB
Contents
# frozen_string_literal: true require "dassets/source_proxy" require "rack/utils" require "rack/mime" module Dassets; end class Dassets::AssetFile attr_reader :digest_path, :dirname, :extname, :basename, :source_proxy def initialize(digest_path) @digest_path = digest_path @dirname = File.dirname(@digest_path) @extname = File.extname(@digest_path) @basename = File.basename(@digest_path, @extname) @source_proxy = Dassets::SourceProxy.new( @digest_path, content_cache: Dassets.config.content_cache, fingerprint_cache: Dassets.config.fingerprint_cache, ) end def digest! return if !self.exists? Dassets.config.file_store.save(self.url){ self.content } end def url path_basename = "#{@basename}-#{self.fingerprint}#{@extname}" path = File.join(@dirname, path_basename).sub(/^\.\//, "").sub(/^\//, "") "#{dassets_base_url}/#{path}" end alias_method :href, :url def fingerprint return nil if !self.exists? @source_proxy.fingerprint end def content return nil if !self.exists? @source_proxy.content end def mtime return nil if !self.exists? @source_proxy.mtime.httpdate end def size return nil if !self.exists? self.content.bytesize end def mime_type return nil if !self.exists? Rack::Mime.mime_type(@extname) end def response_headers @source_proxy.response_headers end def exists? @source_proxy.exists? end def ==(other_asset_file) other_asset_file.kind_of?(Dassets::AssetFile) && self.digest_path == other_asset_file.digest_path && self.fingerprint == other_asset_file.fingerprint end private def dassets_base_url Dassets.config.base_url.to_s end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dassets-0.15.0 | lib/dassets/asset_file.rb |