Sha256: 533136c30b6b3ff43bf9f62119c0375afd2d5affe831e3450743a7b4f682c91c

Contents?: true

Size: 632 Bytes

Versions: 7

Compression:

Stored size: 632 Bytes

Contents

require "digest/sha1"
require "action_dispatch/http/mime_type"

class Propshaft::Asset
  attr_reader :path, :logical_path

  def initialize(path, logical_path:)
    @path, @logical_path = path, Pathname.new(logical_path)
  end

  def content
    File.binread(path)
  end

  def content_type
    Mime::Type.lookup_by_extension(logical_path.extname.from(1))
  end

  def length
    content.size
  end

  def digest
    Digest::SHA1.hexdigest(content)
  end

  def digested_path
    logical_path.sub(/\.(\w+)$/) { |ext| "-#{digest}#{ext}" }
  end

  def ==(other_asset)
    logical_path.hash == other_asset.logical_path.hash
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
propshaft-0.1.6 lib/propshaft/asset.rb
propshaft-0.1.5 lib/propshaft/asset.rb
propshaft-0.1.4 lib/propshaft/asset.rb
propshaft-0.1.3 lib/propshaft/asset.rb
propshaft-0.1.2 lib/propshaft/asset.rb
propshaft-0.1.1 lib/propshaft/asset.rb
propshaft-0.1.0 lib/propshaft/asset.rb