Class: S3Secure::Lifecycle::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/s3_secure/lifecycle/builder.rb

Constant Summary collapse

RULE_ID =

Note: put_bucket_lifecycle_configuration and put_bucket_lifecycle understand different payloads. put_bucket_lifecycle is old and shouldnt be used

Base::RULE_ID
DEFAULT_RULE =
{
  expiration: {expired_object_delete_marker: true},
  id: RULE_ID,
  status: "Enabled",
  prefix: "",
  noncurrent_version_expiration: {noncurrent_days: 365},
  abort_incomplete_multipart_upload: {days_after_initiation: 30}
}

Instance Method Summary collapse

Constructor Details

#initialize(rules) ⇒ Builder

Returns a new instance of Builder.



15
16
17
# File 'lib/s3_secure/lifecycle/builder.rb', line 15

def initialize(rules)
  @rules = rules || []
end

Instance Method Details

#build(type) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/s3_secure/lifecycle/builder.rb', line 39

def build(type)
  if type == :remove
    remove_lifecycle
  else
    add_lifecycle
  end
end

#has?(id) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/s3_secure/lifecycle/builder.rb', line 19

def has?(id)
  !!@rules.detect { |rule| rule[:id] == id }
end

#rules_with_addition(prefix = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/s3_secure/lifecycle/builder.rb', line 23

def rules_with_addition(prefix=nil)
  rules = @rules.dup
  unless has?(RULE_ID)
    rule = DEFAULT_RULE
    rule[:prefix] = prefix if prefix
    rules << rule
  end
  rules
end

#rules_with_removalObject



33
34
35
36
37
# File 'lib/s3_secure/lifecycle/builder.rb', line 33

def rules_with_removal
  rules = @rules.dup
  rules.delete_if { |rule| rule[:id] == RULE_ID }
  rules
end