class S3AssetDeploy::RemoteAssetCollector

Attributes

bucket_name[R]

Public Class Methods

new(bucket_name, s3_client_options: {}, remove_fingerprint: nil) click to toggle source
# File lib/s3_asset_deploy/remote_asset_collector.rb, line 10
def initialize(bucket_name, s3_client_options: {}, remove_fingerprint: nil)
  @bucket_name = bucket_name
  @remove_fingerprint = remove_fingerprint
  @s3_client_options = {
    region: "us-east-1",
    logger: @logger
  }.merge(s3_client_options)
end

Public Instance Methods

asset_paths() click to toggle source
# File lib/s3_asset_deploy/remote_asset_collector.rb, line 40
def asset_paths
  assets.map(&:path)
end
assets() click to toggle source
# File lib/s3_asset_deploy/remote_asset_collector.rb, line 23
def assets
  @assets ||= s3.list_objects_v2(bucket: bucket_name).each_with_object([]) do |response, array|
    remote_assets = response
      .contents
      .reject { |obj| obj.key == S3AssetDeploy::RemovalManifest::PATH }
      .map do |obj|
        S3AssetDeploy::RemoteAsset.new(obj, remove_fingerprint: @remove_fingerprint)
      end

    array.concat(remote_assets)
  end
end
clear_cache() click to toggle source
# File lib/s3_asset_deploy/remote_asset_collector.rb, line 36
def clear_cache
  @assets = nil
end
grouped_assets() click to toggle source
# File lib/s3_asset_deploy/remote_asset_collector.rb, line 44
def grouped_assets
  assets.group_by(&:original_path)
end
inspect() click to toggle source
# File lib/s3_asset_deploy/remote_asset_collector.rb, line 52
def inspect
  to_s
end
s3() click to toggle source
# File lib/s3_asset_deploy/remote_asset_collector.rb, line 19
def s3
  @s3 ||= Aws::S3::Client.new(@s3_client_options)
end
to_s() click to toggle source
# File lib/s3_asset_deploy/remote_asset_collector.rb, line 48
def to_s
  "#<#{self.class.name}:#{"0x0000%x" % (object_id << 1)} @bucket_name='#{bucket_name}'>"
end