configure-s3-website 1.7.5 → 2.0.0.pre.RC1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 772c1776d6327d9b5f05962dc98c2db3993efbd8
4
- data.tar.gz: 941789187e3608cdb2e7ab0a878ab8d06ea6818d
3
+ metadata.gz: 4eb8cd23cd38b0f3330c3917994b6d2ebfff0b0d
4
+ data.tar.gz: d94e2faca53f693abc671f839b8ac4b8525119fc
5
5
  SHA512:
6
- metadata.gz: b5031cd1225cde3d2c30988ca8588f0b10ca9b67a115d1cb3c7ff2bda2405533f22638a15eac1f428dc05d1f6f8799f8f2445d412fb37fe04a1f981b96171850
7
- data.tar.gz: 576061e3ca1fcb50e24af52dc9d924c8fee08082d0a9035e456cd10fb35cbbfbd21d4261760e6330c8d16a4e490b27e9c15c46dd1cf95370cc5aaa17f3c58255
6
+ metadata.gz: 2432f7a98b9c751a920037c54e015a48a096fffc36aaff2713b1b63e1a1f8232a58a0ed918e35327619d23bbe77a668eb92b60f9187838b5d1e782078ae5f3a7
7
+ data.tar.gz: b66e343138433203ec72d781d286c10d374ab560860c39419c556ba75b9ccdb84527ddcfcd8e92d565dea326d6b6da66d4b0754959a2b1c08e179d65b64a04fd
@@ -2,6 +2,40 @@
2
2
 
3
3
  This project uses [Semantic Versioning](http://semver.org).
4
4
 
5
+ ## Next
6
+
7
+ ### Breaking changes
8
+
9
+ Since the CloudFront integration now uses the official Ruby AWS SDK, the
10
+ accepted format of the `cloudfront_distribution_config` is slightly different.
11
+
12
+ Below are some examples of changes that you have to perform, depending on the
13
+ contents of your `cloudfront_distribution_config` setting.
14
+
15
+ * Rename `min_TTL` -> `min_ttl`
16
+ * Change
17
+
18
+ ```yaml
19
+ aliases:
20
+ quantity: 1
21
+ items:
22
+ CNAME: my.site.net
23
+ ```
24
+
25
+ to
26
+
27
+ ```yaml
28
+ aliases:
29
+ quantity: 1
30
+ items:
31
+ - my.site.net
32
+ ```
33
+
34
+ * There might be other incompatible settings in your old configuration, but
35
+ should them exist, the AWS SDK client will print you a helpful error and then
36
+ safely exit. If this happens, just fix the problems that client reports and
37
+ try again.
38
+
5
39
  ## 1.7.5
6
40
 
7
41
  * Fix CreateBucket broken in 1.7.4
@@ -1,5 +1,5 @@
1
- require "rexml/document"
2
- require "rexml/xpath"
1
+ require "aws-sdk"
2
+ require 'deep_merge'
3
3
 
4
4
  module ConfigureS3Website
5
5
  class CloudFrontClient
@@ -7,40 +7,28 @@ module ConfigureS3Website
7
7
  config_source = options[:config_source]
8
8
  puts "Detected an existing CloudFront distribution (id #{config_source.cloudfront_distribution_id}) ..."
9
9
 
10
- # Get caller reference and ETag (will be required by the PUT config resource)
11
- response = HttpHelper.call_cloudfront_api(
12
- path = "/2012-07-01/distribution/#{config_source.cloudfront_distribution_id}/config",
13
- method = Net::HTTP::Get,
14
- body = '',
15
- config_source
16
- )
17
- etag = response['ETag']
18
- caller_reference = REXML::XPath.first(
19
- REXML::Document.new(response.body),
20
- '/DistributionConfig/CallerReference'
21
- ).get_text.to_s
10
+ live_config = cloudfront(config_source).get_distribution({
11
+ id: options[:config_source].cloudfront_distribution_id
12
+ })
22
13
 
23
- # Call the PUT config resource with the caller reference and ETag
24
14
  custom_distribution_config = config_source.cloudfront_distribution_config || {}
25
- custom_distribution_config_with_caller_ref = custom_distribution_config.merge({
26
- 'caller_reference' => caller_reference,
27
- 'comment' => 'Updated by the configure-s3-website gem'
28
- })
29
- HttpHelper.call_cloudfront_api(
30
- path = "/2012-07-01/distribution/#{options[:config_source].cloudfront_distribution_id}/config",
31
- method = Net::HTTP::Put,
32
- body = distribution_config_xml(
33
- config_source,
34
- custom_distribution_config_with_caller_ref
35
- ),
36
- config_source,
37
- headers = { 'If-Match' => etag }
15
+ if custom_distribution_config.empty?
16
+ return
17
+ end
18
+ live_distribution_config = live_config.distribution.distribution_config.to_hash
19
+ custom_distribution_config_with_caller_ref = live_distribution_config.deep_merge!(
20
+ deep_symbolize(custom_distribution_config.merge({
21
+ caller_reference: live_config.distribution.distribution_config.caller_reference,
22
+ comment: 'Updated by the configure-s3-website gem'
23
+ }))
38
24
  )
25
+ cloudfront(config_source).update_distribution({
26
+ distribution_config: custom_distribution_config_with_caller_ref,
27
+ id: options[:config_source].cloudfront_distribution_id,
28
+ if_match: live_config.etag
29
+ })
39
30
 
40
- # Report
41
- unless custom_distribution_config.empty?
42
- print_report_on_custom_distribution_config custom_distribution_config
43
- end
31
+ print_report_on_custom_distribution_config custom_distribution_config_with_caller_ref
44
32
  end
45
33
 
46
34
  def self.create_distribution_if_user_agrees(options, standard_input)
@@ -59,19 +47,22 @@ module ConfigureS3Website
59
47
 
60
48
  private
61
49
 
50
+ def self.cloudfront(config_source)
51
+ Aws::CloudFront::Client.new(
52
+ region: 'us-east-1',
53
+ access_key_id: config_source.s3_access_key_id,
54
+ secret_access_key: config_source.s3_secret_access_key
55
+ )
56
+ end
57
+
62
58
  def self.create_distribution(options)
63
59
  config_source = options[:config_source]
64
60
  custom_distribution_config = config_source.cloudfront_distribution_config || {}
65
- response_xml = REXML::Document.new(
66
- HttpHelper.call_cloudfront_api(
67
- '/2012-07-01/distribution',
68
- Net::HTTP::Post,
69
- distribution_config_xml(config_source, custom_distribution_config),
70
- config_source
71
- ).body
72
- )
73
- dist_id = REXML::XPath.first(response_xml, '/Distribution/Id').get_text
74
- print_report_on_new_dist response_xml, dist_id, options, config_source
61
+ distribution = cloudfront(config_source).create_distribution(
62
+ deep_symbolize new_distribution_config(config_source, custom_distribution_config)
63
+ ).distribution
64
+ dist_id = distribution.id
65
+ print_report_on_new_dist distribution, dist_id, options, config_source
75
66
  config_source.cloudfront_distribution_id = dist_id.to_s
76
67
  puts " Added setting 'cloudfront_distribution_id: #{dist_id}' into #{config_source.description}"
77
68
  unless custom_distribution_config.empty?
@@ -88,96 +79,67 @@ module ConfigureS3Website
88
79
  gsub(/^/, padding(left_padding))
89
80
  end
90
81
 
91
- def self.print_report_on_new_dist(response_xml, dist_id, options, config_source)
82
+ def self.print_report_on_new_dist(distribution, dist_id, options, config_source)
92
83
  config_source = options[:config_source]
93
- dist_domain_name = REXML::XPath.first(response_xml, '/Distribution/DomainName').get_text
94
- s3_website_domain_name = REXML::XPath.first(
95
- response_xml,
96
- '/Distribution/DistributionConfig/Origins/Items/Origin/DomainName'
97
- ).get_text
98
- puts " The distribution #{dist_id} at #{dist_domain_name} now delivers the origin #{s3_website_domain_name}"
84
+ puts " The distribution #{dist_id} at #{distribution.domain_name} now delivers the origin #{distribution.distribution_config.origins.items[0].domain_name}"
99
85
  puts ' Please allow up to 15 minutes for the distribution to initialise'
100
86
  puts ' For more information on the distribution, see https://console.aws.amazon.com/cloudfront'
101
87
  if options[:verbose]
102
88
  puts ' Below is the response from the CloudFront API:'
103
- print_verbose_response_from_cloudfront(response_xml)
89
+ puts distribution
104
90
  end
105
91
  end
106
92
 
107
- def self.print_verbose_response_from_cloudfront(response_xml, left_padding = 4)
108
- lines = []
109
- response_xml.write(lines, 2)
110
- puts lines.join().
111
- gsub(/^/, "" + padding(left_padding)).
112
- gsub(/\s$/, "")
113
- end
114
-
115
- def self.distribution_config_xml(config_source, custom_cf_settings)
116
- domain_name = "#{config_source.s3_bucket_name}.#{EndpointHelper.s3_website_hostname(config_source.s3_endpoint)}"
117
- %|
118
- <DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2012-07-01/">
119
- <Origins>
120
- <Quantity>1</Quantity>
121
- <Items>
122
- <Origin>
123
- <Id>#{origin_id config_source}</Id>
124
- <DomainName>#{domain_name}</DomainName>
125
- <CustomOriginConfig>
126
- <HTTPPort>80</HTTPPort>
127
- <HTTPSPort>443</HTTPSPort>
128
- <OriginProtocolPolicy>http-only</OriginProtocolPolicy>
129
- </CustomOriginConfig>
130
- </Origin>
131
- </Items>
132
- </Origins>
133
- #{
134
- require 'deep_merge'
135
- settings = default_cloudfront_settings config_source
136
- settings.deep_merge! custom_cf_settings
137
- XmlHelper.hash_to_api_xml(settings)
138
- }
139
- </DistributionConfig>
140
- |
141
- end
142
-
143
- # Changing these default settings probably necessitates a
144
- # backward incompatible release.
145
- #
146
- # If you change these settings, remember to update also the README.md.
147
- def self.default_cloudfront_settings(config_source)
93
+ def self.new_distribution_config(config_source, custom_cf_settings)
148
94
  {
149
- 'caller_reference' => 'configure-s3-website gem ' + Time.now.to_s,
150
- 'default_root_object' => 'index.html',
151
- 'logging' => {
152
- 'enabled' => 'false',
153
- 'include_cookies' => 'false',
154
- 'bucket' => '',
155
- 'prefix' => ''
156
- },
157
- 'enabled' => 'true',
158
- 'comment' => 'Created by the configure-s3-website gem',
159
- 'aliases' => {
160
- 'quantity' => '0'
161
- },
162
- 'default_cache_behavior' => {
163
- 'target_origin_id' => (origin_id config_source),
164
- 'trusted_signers' => {
95
+ 'distribution_config' => {
96
+ 'caller_reference' => 'configure-s3-website gem ' + Time.now.to_s,
97
+ 'default_root_object' => 'index.html',
98
+ 'origins' => {
99
+ 'quantity' => 1,
100
+ 'items' => [
101
+ {
102
+ 'id' => (origin_id config_source),
103
+ 'domain_name' => "#{config_source.s3_bucket_name}.#{EndpointHelper.s3_website_hostname(config_source.s3_endpoint)}",
104
+ 'custom_origin_config' => {
105
+ 'http_port' => 80,
106
+ 'https_port' => 443,
107
+ 'origin_protocol_policy' => 'http-only'
108
+ }
109
+ }
110
+ ]
111
+ },
112
+ 'logging' => {
165
113
  'enabled' => 'false',
114
+ 'include_cookies' => 'false',
115
+ 'bucket' => '',
116
+ 'prefix' => ''
117
+ },
118
+ 'enabled' => 'true',
119
+ 'comment' => 'Created by the configure-s3-website gem',
120
+ 'aliases' => {
166
121
  'quantity' => '0'
167
122
  },
168
- 'forwarded_values' => {
169
- 'query_string' => 'true',
170
- 'cookies' => {
171
- 'forward' => 'all'
172
- }
123
+ 'default_cache_behavior' => {
124
+ 'target_origin_id' => (origin_id config_source),
125
+ 'trusted_signers' => {
126
+ 'enabled' => 'false',
127
+ 'quantity' => '0'
128
+ },
129
+ 'forwarded_values' => {
130
+ 'query_string' => 'true',
131
+ 'cookies' => {
132
+ 'forward' => 'all'
133
+ }
134
+ },
135
+ 'viewer_protocol_policy' => 'allow-all',
136
+ 'min_ttl' => '86400'
173
137
  },
174
- 'viewer_protocol_policy' => 'allow-all',
175
- 'min_TTL' => '86400'
176
- },
177
- 'cache_behaviors' => {
178
- 'quantity' => '0'
179
- },
180
- 'price_class' => 'PriceClass_All'
138
+ 'cache_behaviors' => {
139
+ 'quantity' => '0'
140
+ },
141
+ 'price_class' => 'PriceClass_All'
142
+ }.deep_merge!(custom_cf_settings)
181
143
  }
182
144
  end
183
145
 
@@ -190,5 +152,15 @@ module ConfigureS3Website
190
152
  amount.times { padding << " " }
191
153
  padding
192
154
  end
155
+
156
+ def self.deep_symbolize(value)
157
+ if value.is_a? Hash
158
+ Hash[value.map { |k,v| [k.to_sym, deep_symbolize(v)] }]
159
+ elsif value.is_a? Array
160
+ value.map { |v| deep_symbolize(v) }
161
+ else
162
+ value
163
+ end
164
+ end
193
165
  end
194
166
  end
@@ -1,3 +1,3 @@
1
1
  module ConfigureS3Website
2
- VERSION = '1.7.5'
2
+ VERSION = '2.0.0-RC1'
3
3
  end
@@ -1,88 +1,138 @@
1
1
  require 'rspec'
2
2
  require 'configure-s3-website'
3
- require "rexml/document"
4
- require "rexml/xpath"
5
3
 
6
4
  describe ConfigureS3Website::CloudFrontClient do
7
- context '#distribution_config_xml' do
8
- describe 'letting the user to override the default values' do
9
- let(:config_source) {
10
- mock = double('config_source')
11
- allow(mock).to receive(:s3_bucket_name).and_return('test-bucket')
12
- allow(mock).to receive(:s3_endpoint).and_return(nil)
13
- mock
14
- }
5
+ RSpec::Matchers.define :lambda_matcher do |lmbda, expected_value|
6
+ match { |create_distribution_args|
7
+ lmbda.call(create_distribution_args) == expected_value
8
+ }
9
+ end
15
10
 
16
- let(:custom_settings) {
17
- { 'default_cache_behavior' => { 'min_TTL' => '987' } }
18
- }
11
+ def config_source_mock(cloudfront_distribution_config, region)
12
+ mock = double('config_source')
13
+ allow(mock).to receive(:s3_bucket_name).and_return('test-bucket')
14
+ allow(mock).to receive(:s3_endpoint).and_return(region)
15
+ allow(mock).to receive(:s3_access_key_id).and_return('foo')
16
+ allow(mock).to receive(:s3_secret_access_key).and_return('bar')
17
+ allow(mock).to receive(:cloudfront_distribution_id).and_return('AEEEE')
18
+ allow(mock).to receive(:cloudfront_distribution_id=).with(anything).and_return(nil)
19
+ allow(mock).to receive(:description)
20
+ allow(mock).to receive(:cloudfront_distribution_config).and_return(cloudfront_distribution_config)
21
+ mock
22
+ end
19
23
 
20
- let(:distribution_config_xml) {
21
- REXML::Document.new(
22
- ConfigureS3Website::CloudFrontClient.send(
23
- :distribution_config_xml,
24
- config_source,
25
- custom_settings
26
- )
27
- )
24
+ let(:aws_cloudfront_client) {
25
+ cloudfront_client = double('cloudfront_client')
26
+ create_distribution_response = double('create_dist_response')
27
+ allow(create_distribution_response).to receive_message_chain(:distribution, :id) { 'bar' }
28
+ allow(create_distribution_response).to receive_message_chain(:distribution, :domain_name) { 'foo' }
29
+ allow(create_distribution_response).to receive_message_chain(:distribution, :distribution_config, :origins, :items) {
30
+ [double( :domain_name => 'foo' )]
31
+ }
32
+ allow(cloudfront_client).to receive(:create_distribution).and_return(create_distribution_response)
33
+ get_distribution_response = double('get_distribution_response')
34
+ allow(get_distribution_response).to receive(:etag).and_return('tag')
35
+ allow(get_distribution_response).to receive_message_chain(:distribution, :distribution_config).and_return({
36
+ :default_cache_behavior => {
37
+ :viewer_protocol_policy => 'allow_all',
38
+ :min_ttl => 5000
39
+ }
40
+ })
41
+ allow(get_distribution_response).to receive_message_chain(:distribution, :distribution_config, :caller_reference) { 'ref' }
42
+ allow(cloudfront_client).to receive(:get_distribution).with(:id => 'AEEEE').and_return(get_distribution_response)
43
+ cloudfront_client
44
+ }
45
+ before {
46
+ allow(ConfigureS3Website::CloudFrontClient).to receive(:cloudfront).and_return(aws_cloudfront_client)
47
+ }
48
+ describe 'letting the user to override the default values' do
49
+ cloudfront_distribution_config = {
50
+ 'default_cache_behavior' => {
51
+ 'min_ttl' => 900
28
52
  }
53
+ }
29
54
 
30
- it 'allows the user to override default CloudFront settings' do
31
- expect(REXML::XPath.first(
32
- distribution_config_xml,
33
- '/DistributionConfig/DefaultCacheBehavior/MinTTL'
34
- ).get_text.to_s).to eq('987')
55
+ context "update distribution" do
56
+ it "let's the user to override the default ttl" do
57
+ expect(aws_cloudfront_client).to receive(:update_distribution).with(
58
+ lambda_matcher(lambda { |update_distribution_args|
59
+ update_distribution_args[:distribution_config][:default_cache_behavior][:min_ttl]
60
+ }, 900)
61
+ )
62
+ ConfigureS3Website::CloudFrontClient.send(
63
+ :apply_distribution_config,
64
+ {:config_source => config_source_mock(cloudfront_distribution_config, region = 'something') }
65
+ )
35
66
  end
36
67
 
37
68
  it 'retains the default values that are not overriden' do
38
- expect(REXML::XPath.first(
39
- distribution_config_xml,
40
- '/DistributionConfig/DefaultCacheBehavior/ViewerProtocolPolicy'
41
- ).get_text.to_s).to eq('allow-all')
69
+ expect(aws_cloudfront_client).to receive(:update_distribution).with(
70
+ lambda_matcher(lambda { |update_distribution_args|
71
+ update_distribution_args[:distribution_config][:default_cache_behavior][:viewer_protocol_policy]
72
+ }, 'allow_all')
73
+ )
74
+ ConfigureS3Website::CloudFrontClient.send(
75
+ :apply_distribution_config,
76
+ {:config_source => config_source_mock(cloudfront_distribution_config, region = 'something') }
77
+ )
42
78
  end
43
79
  end
44
80
 
45
- [
46
- { :region => 'us-east-1', :website_endpoint => 's3-website-us-east-1.amazonaws.com' },
47
- { :region => 'us-west-1', :website_endpoint => 's3-website-us-west-1.amazonaws.com' },
48
- { :region => 'us-west-2', :website_endpoint => 's3-website-us-west-2.amazonaws.com' },
49
- { :region => 'ap-south-1', :website_endpoint => 's3-website.ap-south-1.amazonaws.com' },
50
- { :region => 'ap-northeast-2', :website_endpoint => 's3-website.ap-northeast-2.amazonaws.com' },
51
- { :region => 'ap-southeast-1', :website_endpoint => 's3-website-ap-southeast-1.amazonaws.com' },
52
- { :region => 'ap-southeast-2', :website_endpoint => 's3-website-ap-southeast-2.amazonaws.com' },
53
- { :region => 'ap-northeast-1', :website_endpoint => 's3-website-ap-northeast-1.amazonaws.com' },
54
- { :region => 'eu-central-1', :website_endpoint => 's3-website.eu-central-1.amazonaws.com' },
55
- { :region => 'eu-west-1', :website_endpoint => 's3-website-eu-west-1.amazonaws.com' },
56
- { :region => 'sa-east-1', :website_endpoint => 's3-website-sa-east-1.amazonaws.com' },
57
- ].each { |conf|
58
- region = conf[:region]
59
- website_endpoint = conf[:website_endpoint]
60
- describe "inferring //Origins/Items/Origin/DomainName (#{region})" do
61
- let(:config_source) {
62
- mock = double('config_source')
63
- allow(mock).to receive(:s3_bucket_name).and_return('test-bucket')
64
- allow(mock).to receive(:s3_endpoint).and_return(region)
65
- mock
66
- }
67
-
68
- let(:distribution_config_xml) {
69
- REXML::Document.new(
70
- ConfigureS3Website::CloudFrontClient.send(
71
- :distribution_config_xml,
72
- config_source,
73
- custom_distribution_config = {}
74
- )
75
- )
76
- }
77
-
78
- it "honors the endpoint of the S3 website (#{region})" do
79
- expect(REXML::XPath.first(
80
- distribution_config_xml,
81
- '/DistributionConfig/Origins/Items/Origin/DomainName'
82
- ).get_text.to_s).to eq("test-bucket.#{website_endpoint}")
83
- end
81
+ context "create distribution" do
82
+ it "let's the user to override the default ttl" do
83
+ expect(aws_cloudfront_client).to receive(:create_distribution).with(
84
+ lambda_matcher(lambda { |create_distribution_args|
85
+ create_distribution_args[:distribution_config][:default_cache_behavior][:min_ttl]
86
+ }, 900)
87
+ )
88
+ ConfigureS3Website::CloudFrontClient.send(
89
+ :create_distribution,
90
+ {:config_source => config_source_mock(cloudfront_distribution_config, region = 'something') }
91
+ )
84
92
  end
85
- }
86
93
 
94
+ it 'retains the default values that are not overriden' do
95
+ expect(aws_cloudfront_client).to receive(:create_distribution).with(
96
+ lambda_matcher(lambda { |create_distribution_args|
97
+ create_distribution_args[:distribution_config][:default_cache_behavior][:viewer_protocol_policy]
98
+ }, 'allow-all')
99
+ )
100
+ ConfigureS3Website::CloudFrontClient.send(
101
+ :create_distribution,
102
+ {:config_source => config_source_mock(cloudfront_distribution_config, region = 'something') }
103
+ )
104
+ end
105
+ end
87
106
  end
107
+
108
+ [
109
+ { :region => 'us-east-1', :website_endpoint => 's3-website-us-east-1.amazonaws.com' },
110
+ { :region => 'us-west-1', :website_endpoint => 's3-website-us-west-1.amazonaws.com' },
111
+ { :region => 'us-west-2', :website_endpoint => 's3-website-us-west-2.amazonaws.com' },
112
+ { :region => 'ap-south-1', :website_endpoint => 's3-website.ap-south-1.amazonaws.com' },
113
+ { :region => 'ap-northeast-2', :website_endpoint => 's3-website.ap-northeast-2.amazonaws.com' },
114
+ { :region => 'ap-southeast-1', :website_endpoint => 's3-website-ap-southeast-1.amazonaws.com' },
115
+ { :region => 'ap-southeast-2', :website_endpoint => 's3-website-ap-southeast-2.amazonaws.com' },
116
+ { :region => 'ap-northeast-1', :website_endpoint => 's3-website-ap-northeast-1.amazonaws.com' },
117
+ { :region => 'eu-central-1', :website_endpoint => 's3-website.eu-central-1.amazonaws.com' },
118
+ { :region => 'eu-west-1', :website_endpoint => 's3-website-eu-west-1.amazonaws.com' },
119
+ { :region => 'sa-east-1', :website_endpoint => 's3-website-sa-east-1.amazonaws.com' },
120
+ ].each { |conf|
121
+ region = conf[:region]
122
+ website_endpoint = conf[:website_endpoint]
123
+
124
+ describe "create distribution in #{region}" do
125
+ it "honors the endpoint of the S3 website (#{region})" do
126
+ expect(aws_cloudfront_client).to receive(:create_distribution).with(
127
+ lambda_matcher(lambda { |create_distribution_args|
128
+ create_distribution_args[:distribution_config][:origins][:items][0][:domain_name]
129
+ }, "test-bucket.#{website_endpoint}")
130
+ )
131
+ ConfigureS3Website::CloudFrontClient.send(
132
+ :create_distribution,
133
+ {:config_source => config_source_mock({}, region = region) }
134
+ )
135
+ end
136
+ end
137
+ }
88
138
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configure-s3-website
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.5
4
+ version: 2.0.0.pre.RC1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lauri Lehmijoki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-07 00:00:00.000000000 Z
11
+ date: 2016-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deep_merge
@@ -131,12 +131,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
131
  version: '0'
132
132
  required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - ">="
134
+ - - ">"
135
135
  - !ruby/object:Gem::Version
136
- version: '0'
136
+ version: 1.3.1
137
137
  requirements: []
138
138
  rubyforge_project:
139
- rubygems_version: 2.2.2
139
+ rubygems_version: 2.5.1
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: Configure your AWS S3 bucket to function as a web site