class S3AssetDeploy::RailsLocalAssetCollector

Public Instance Methods

assets() click to toggle source
# File lib/s3_asset_deploy/rails_local_asset_collector.rb, line 7
def assets
  assets_from_manifest + pack_assets
end
assets_from_manifest() click to toggle source
# File lib/s3_asset_deploy/rails_local_asset_collector.rb, line 11
def assets_from_manifest
  manifest = ::Sprockets::Manifest.new(
    ::ActionView::Base.assets_manifest.environment,
    ::ActionView::Base.assets_manifest.dir
  )
  manifest.assets.values.map do |f|
    S3AssetDeploy::RailsLocalAsset.new(
      File.join(assets_prefix, f),
      remove_fingerprint: @remove_fingerprint
    )
  end
end
pack_assets() click to toggle source
# File lib/s3_asset_deploy/rails_local_asset_collector.rb, line 24
def pack_assets
  return [] unless defined?(::Webpacker)

  Dir.chdir(public_path) do
    packs_dir = ::Webpacker.config.public_output_path.relative_path_from(public_path)

    Dir[File.join(packs_dir, "/**/**")]
      .select { |path| File.file?(path) }
      .reject { |path| path.ends_with?(".gz") || path.ends_with?("manifest.json") }
      .map { |path| S3AssetDeploy::RailsLocalAsset.new(path, remove_fingerprint: @remove_fingerprint) }
  end
end

Private Instance Methods

assets_prefix() click to toggle source
# File lib/s3_asset_deploy/rails_local_asset_collector.rb, line 43
def assets_prefix
  ::Rails.application.config.assets.prefix.sub(/^\//, "")
end
public_path() click to toggle source
# File lib/s3_asset_deploy/rails_local_asset_collector.rb, line 39
def public_path
  ::Rails.public_path
end