class S3AssetDeploy::RemovalManifest
Constants
- PATH
Attributes
bucket_name[R]
Public Class Methods
new(bucket_name, s3_client_options: {})
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 8 def initialize(bucket_name, s3_client_options: {}) @bucket_name = bucket_name @loaded = false @changed = false @manifest = {} @s3_client_options = { region: "us-east-1", logger: @logger }.merge(s3_client_options) end
Public Instance Methods
[](key)
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 67 def [](key) @manifest[key] end
[]=(key, value)
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 71 def []=(key, value) return unless loaded? @changed = true @manifest[key] = value end
changed?()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 36 def changed? @changed end
delete(key)
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 61 def delete(key) return unless loaded? @changed = true @manifest.delete(key) end
inspect()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 85 def inspect "#<#{self.class.name}:#{"0x0000%x" % (object_id << 1)} @bucket_name='#{bucket_name}'>" end
keys()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 57 def keys @manifest.keys end
load()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 23 def load return true if loaded? @manifest = fetch_manifest @loaded = true rescue Aws::S3::Errors::NoSuchKey @manifest = {} @loaded = true end
loaded?()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 32 def loaded? @loaded end
s3()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 19 def s3 @s3 ||= Aws::S3::Client.new(@s3_client_options) end
save()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 40 def save return false unless loaded? return true unless changed? s3.put_object({ bucket: bucket_name, key: PATH, body: @manifest.to_json, acl: "private", content_type: "application/json" }) @changed = false true end
to_h()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 77 def to_h @manifest end
to_s()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 81 def to_s @manifest.to_s end
Private Instance Methods
fetch_manifest()
click to toggle source
# File lib/s3_asset_deploy/removal_manifest.rb, line 91 def fetch_manifest resp = s3.get_object({ bucket: bucket_name, key: PATH }) JSON.parse(resp.body.read) end