Class: Middleman::S3Sync::Options

Inherits:
Object
  • Object
show all
Defined in:
lib/middleman/s3_sync/options.rb

Constant Summary collapse

OPTIONS =
[
  :prefix,
  :http_prefix,
  :acl,
  :bucket,
  :endpoint,
  :region,
  :aws_access_key_id,
  :aws_secret_access_key,
  :aws_session_token,
  :after_build,
  :delete,
  :encryption,
  :build_dir,
  :force,
  :prefer_gzip,
  :reduced_redundancy_storage,
  :path_style,
  :version_bucket,
  :dry_run,
  :verbose,
  :content_types,
  :ignore_paths,
  :index_document,
  :error_document,
  :cloudfront_distribution_id,
  :cloudfront_invalidate,
  :cloudfront_invalidate_all,
  :cloudfront_invalidation_batch_size,
  :cloudfront_invalidation_max_retries,
  :cloudfront_invalidation_batch_delay,
  :cloudfront_wait
]

Instance Method Summary collapse

Instance Method Details

#aclObject



39
40
41
42
43
44
45
# File 'lib/middleman/s3_sync/options.rb', line 39

def acl
  # If @acl is explicitly set to empty string or false, return nil (for buckets with ACLs disabled)
  # If @acl is nil and was never set, return default 'public-read'
  # Otherwise return the set value
  return nil if @acl == '' || @acl == false
  @acl_explicitly_set ? @acl : (@acl || 'public-read')
end

#acl=(value) ⇒ Object



47
48
49
50
# File 'lib/middleman/s3_sync/options.rb', line 47

def acl=(value)
  @acl_explicitly_set = true
  @acl = value
end

#acl_enabled?Boolean

Returns:

  • (Boolean)


52
53
54
55
56
57
# File 'lib/middleman/s3_sync/options.rb', line 52

def acl_enabled?
  # ACLs are disabled if explicitly set to nil, empty string, or false
  return false if @acl_explicitly_set && (@acl.nil? || @acl == '' || @acl == false)
  # Otherwise ACLs are enabled (using default or explicit value)
  true
end

#after_buildObject



83
84
85
# File 'lib/middleman/s3_sync/options.rb', line 83

def after_build
  @after_build.nil? ? false : @after_build
end

#aws_access_key_idObject



63
64
65
# File 'lib/middleman/s3_sync/options.rb', line 63

def aws_access_key_id
  @aws_access_key_id || ENV['AWS_ACCESS_KEY_ID']
end

#aws_access_key_id=(aws_access_key_id) ⇒ Object



59
60
61
# File 'lib/middleman/s3_sync/options.rb', line 59

def aws_access_key_id=(aws_access_key_id)
  @aws_access_key_id = aws_access_key_id if aws_access_key_id
end

#aws_secret_access_keyObject



71
72
73
# File 'lib/middleman/s3_sync/options.rb', line 71

def aws_secret_access_key
  @aws_secret_access_key || ENV['AWS_SECRET_ACCESS_KEY']
end

#aws_secret_access_key=(aws_secret_access_key) ⇒ Object



67
68
69
# File 'lib/middleman/s3_sync/options.rb', line 67

def aws_secret_access_key=(aws_secret_access_key)
  @aws_secret_access_key = aws_secret_access_key if aws_secret_access_key
end

#deleteObject



79
80
81
# File 'lib/middleman/s3_sync/options.rb', line 79

def delete
  @delete.nil? ? true : @delete
end

#encryptionObject



75
76
77
# File 'lib/middleman/s3_sync/options.rb', line 75

def encryption
  @encryption.nil? ? false : @encryption
end

#ignore_pathsObject



95
96
97
# File 'lib/middleman/s3_sync/options.rb', line 95

def ignore_paths
  @ignore_paths.nil? ? [] : @ignore_paths
end

#path_styleObject



91
92
93
# File 'lib/middleman/s3_sync/options.rb', line 91

def path_style
  (@path_style.nil? ? true : @path_style)
end

#prefer_gzipObject



87
88
89
# File 'lib/middleman/s3_sync/options.rb', line 87

def prefer_gzip
  (@prefer_gzip.nil? ? true : @prefer_gzip)
end

#prefixObject



108
109
110
# File 'lib/middleman/s3_sync/options.rb', line 108

def prefix
  @prefix.nil? || @prefix.empty? ? "" : "#{@prefix}/"
end

#prefix=(prefix) ⇒ Object



99
100
101
102
103
104
105
106
# File 'lib/middleman/s3_sync/options.rb', line 99

def prefix=(prefix)
  http_prefix = @http_prefix ? @http_prefix.sub(%r{^/}, "") : ""
  if http_prefix.split("/").first == prefix
    @prefix = ""
  else
    @prefix = prefix
  end
end

#version_bucketObject



112
113
114
# File 'lib/middleman/s3_sync/options.rb', line 112

def version_bucket
  @version_bucket.nil? ? false : @version_bucket
end