class Pakyow::Assets::PackedAssets

Attributes

assets[R]
public_path[R]

Public Class Methods

new(assets, public_path, config, name) click to toggle source
# File lib/pakyow/assets/pack.rb, line 102
def initialize(assets, public_path, config, name)
  @assets, @public_path, @config, @name = assets, public_path, config, name
end

Public Instance Methods

bytesize() click to toggle source
# File lib/pakyow/assets/pack.rb, line 142
def bytesize
  bytes = @assets.map(&:bytesize).inject(&:+)

  if @config.source_maps && source_map?
    bytes += source_mapping_url.bytesize
  end

  bytes
end
each() { |source_mapping_url| ... } click to toggle source
# File lib/pakyow/assets/pack.rb, line 120
def each(&block)
  @assets.each do |asset|
    asset.each(&block)
  end

  if @config.source_maps && source_map?
    yield source_mapping_url
  end
end
initialize_copy(_) click to toggle source
Calls superclass method
# File lib/pakyow/assets/pack.rb, line 106
def initialize_copy(_)
  super

  @assets = @assets.map(&:dup)
end
mime_suffix() click to toggle source
# File lib/pakyow/assets/pack.rb, line 116
def mime_suffix
  @assets.first&.mime_suffix
end
mime_type() click to toggle source
# File lib/pakyow/assets/pack.rb, line 112
def mime_type
  @assets.first&.mime_type
end
read() click to toggle source
# File lib/pakyow/assets/pack.rb, line 130
def read
  String.new.tap do |packed_asset|
    @assets.each do |asset|
      packed_asset << asset.read
    end

    if @config.source_maps && source_map?
      packed_asset << source_mapping_url
    end
  end
end
source_map() click to toggle source
# File lib/pakyow/assets/pack.rb, line 152
def source_map
  @assets.select(&:source_map?).inject(
    SourceMap.new(
      file: File.basename(@public_path)
    )
  ) { |merged, asset|
    merged.merge(asset.source_map)
  }
end
source_map?() click to toggle source
# File lib/pakyow/assets/pack.rb, line 162
def source_map?
  @assets.any?(&:source_map?)
end
source_mapping_url() click to toggle source
# File lib/pakyow/assets/pack.rb, line 166
def source_mapping_url
  SourceMap.mapping_url(path: @public_path, type: @assets.first.mime_suffix)
end