middleman-s3_sync 3.0.16 → 3.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/Changelog.md +9 -0
- data/README.md +17 -15
- data/lib/middleman-s3_sync/commands.rb +0 -9
- data/lib/middleman/s3_sync.rb +2 -2
- data/lib/middleman/s3_sync/options.rb +28 -0
- data/lib/middleman/s3_sync/resource.rb +11 -3
- data/lib/middleman/s3_sync/version.rb +1 -1
- data/middleman-s3_sync.gemspec +1 -0
- data/spec/options_spec.rb +14 -0
- metadata +7 -40
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NDFlMjY1ZDIzOWVjYTk3OTczNDlhYTM0NGQyNTVjZWNmNzE2Y2Q3Mw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MDA0YmI3MGY4YWQ1NmVlOGFmOTVlZjVhZDcxYzk5YThlY2E0MzhlMQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NWNjMjIwOTdiNmVkYjFkOTYxOWU2OWE0ODRkZDBiOGNhZDIwYWNkNWI5ZmU5
|
10
|
+
MWEzYjc2NjI2NDVlZmRiNjRhNzE2ZDZiYjdkMjg5MDdmYTQ0MTNlY2RhOTg2
|
11
|
+
YzM0NTIyNWY1MDc4NjQ5MzMzNWZhZTIxN2Q1MDc4ODEzM2Q1MzI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NTJhNDhhZjc0ZGM2YWQ0Y2E3YjU0OWY0MDQxY2RlYjQxZDViOWZlMzA5Y2Yx
|
14
|
+
ZjQwNWI4MjY2ODk5YWYyYTdiOTk0YmNhMzM1Yjk1YWU4OWZiZTJkNmUwYWUy
|
15
|
+
MjhjZmIxMjRmMzc3MDE5MmNmNDI4ODQ0ZjY0NDI3NzY2OGFlNWE=
|
data/Changelog.md
CHANGED
@@ -2,6 +2,15 @@
|
|
2
2
|
|
3
3
|
The gem that tries really hard not to push files to S3.
|
4
4
|
|
5
|
+
## v3.0.17
|
6
|
+
|
7
|
+
* Limits the number of concurrent threads used while processing the
|
8
|
+
resources and files. (#21)
|
9
|
+
* Adds the option to use reduced redundancy storage for the bucket. (#8)
|
10
|
+
* Adds the license to the gem specs. (#20)
|
11
|
+
* Makes sure tha the .s3_sync file is read when the sync occures within
|
12
|
+
a build. (#22, #23)
|
13
|
+
|
5
14
|
## v3.0.16
|
6
15
|
|
7
16
|
* Adds the ignore directory and redirects logic to the --force option as
|
data/README.md
CHANGED
@@ -34,14 +34,15 @@ You need to add the following code to your ```config.rb``` file:
|
|
34
34
|
|
35
35
|
```ruby
|
36
36
|
activate :s3_sync do |s3_sync|
|
37
|
-
s3_sync.bucket
|
38
|
-
s3_sync.region
|
39
|
-
s3_sync.aws_access_key_id
|
40
|
-
s3_sync.aws_secret_access_key
|
41
|
-
s3_sync.delete
|
42
|
-
s3_sync.after_build
|
43
|
-
s3_sync.prefer_gzip
|
44
|
-
|
37
|
+
s3_sync.bucket = 'my.bucket.com' # The name of the S3 bucket you are targetting. This is globally unique.
|
38
|
+
s3_sync.region = 'us-west-1' # The AWS region for your bucket.
|
39
|
+
s3_sync.aws_access_key_id = 'AWS KEY ID'
|
40
|
+
s3_sync.aws_secret_access_key = 'AWS SECRET KEY'
|
41
|
+
s3_sync.delete = false # We delete stray files by default.
|
42
|
+
s3_sync.after_build = false # We chain after the build step by default. This may not be your desired behavior...
|
43
|
+
s3_sync.prefer_gzip = true
|
44
|
+
s3_sync.reduced_redundancy_storage = false
|
45
|
+
end
|
45
46
|
```
|
46
47
|
|
47
48
|
You can then start synchronizing files with S3 through ```middleman s3_sync```.
|
@@ -50,13 +51,14 @@ You can then start synchronizing files with S3 through ```middleman s3_sync```.
|
|
50
51
|
|
51
52
|
The following defaults apply to the configuration items:
|
52
53
|
|
53
|
-
| Setting
|
54
|
-
| -----------------
|
55
|
-
| aws_access_key_id
|
56
|
-
| aws_secret_access_key
|
57
|
-
| delete
|
58
|
-
| after_build
|
59
|
-
| prefer_gzip
|
54
|
+
| Setting | Default |
|
55
|
+
| ----------------- | ---------------------------- |
|
56
|
+
| aws_access_key_id | ```ENV['AWS_ACCESS_KEY_ID``` |
|
57
|
+
| aws_secret_access_key | ```ENV['AWS_SECRET_ACCESS_KEY']``` |
|
58
|
+
| delete | ```true``` |
|
59
|
+
| after_build | ```false``` |
|
60
|
+
| prefer_gzip | ```true``` |
|
61
|
+
| reduced_redundancy_storage | ```false``` |
|
60
62
|
|
61
63
|
You do not need to specify the settings that match the defaults. This
|
62
64
|
simplify the configuration of the extension:
|
@@ -34,15 +34,6 @@ module Middleman
|
|
34
34
|
shared_inst.s3_sync_options.bucket = options[:bucket] if options[:bucket]
|
35
35
|
shared_inst.s3_sync_options.verbose = options[:verbose] if options[:verbose]
|
36
36
|
|
37
|
-
config_file = File.join(shared_inst.root_path, ".s3_sync")
|
38
|
-
|
39
|
-
if File.exist?(config_file)
|
40
|
-
config = YAML::load( File.open( config_file ) )
|
41
|
-
|
42
|
-
shared_inst.s3_sync_options.aws_secret_access_key = config["aws_secret_access_key"] if config["aws_secret_access_key"]
|
43
|
-
shared_inst.s3_sync_options.aws_access_key_id = config["aws_access_key_id"] if config["aws_access_key_id"]
|
44
|
-
end
|
45
|
-
|
46
37
|
::Middleman::S3Sync.sync
|
47
38
|
end
|
48
39
|
end
|
data/lib/middleman/s3_sync.rb
CHANGED
@@ -45,7 +45,7 @@ module Middleman
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def resources
|
48
|
-
@resources ||= paths.pmap do |p|
|
48
|
+
@resources ||= paths.pmap(32) do |p|
|
49
49
|
progress_bar.increment
|
50
50
|
S3Sync::Resource.new(p)
|
51
51
|
end
|
@@ -71,7 +71,7 @@ module Middleman
|
|
71
71
|
local_paths.reject! { |p| p =~ /\.gz$/ && File.exist?(p.gsub(/\.gz$/, '')) }
|
72
72
|
end
|
73
73
|
|
74
|
-
local_paths.pmap { |p| p.gsub(/#{build_dir}\//, '') }
|
74
|
+
local_paths.pmap(32) { |p| p.gsub(/#{build_dir}\//, '') }
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
@@ -13,8 +13,14 @@ module Middleman
|
|
13
13
|
:build_dir,
|
14
14
|
:force,
|
15
15
|
:prefer_gzip,
|
16
|
+
:reduced_redundancy_storage,
|
16
17
|
:verbose
|
17
18
|
|
19
|
+
def initialize
|
20
|
+
# read config from .s3_sync on initialization
|
21
|
+
self.read_config
|
22
|
+
end
|
23
|
+
|
18
24
|
def add_caching_policy(content_type, options)
|
19
25
|
caching_policies[content_type.to_s] = BrowserCachePolicy.new(options)
|
20
26
|
end
|
@@ -51,6 +57,28 @@ module Middleman
|
|
51
57
|
(@prefer_gzip.nil? ? true : @prefer_gzip)
|
52
58
|
end
|
53
59
|
|
60
|
+
# Read config options from an IO stream and set them on `self`. Defaults
|
61
|
+
# to reading from the `.s3_sync` file in the MM project root if it exists.
|
62
|
+
#
|
63
|
+
# @param io [IO] an IO stream to read from
|
64
|
+
# @return [void]
|
65
|
+
def read_config(io = nil)
|
66
|
+
unless io
|
67
|
+
root_path = ::Middleman::Application.root
|
68
|
+
config_file_path = File.join(root_path, ".s3_sync")
|
69
|
+
|
70
|
+
# skip if config file does not exist
|
71
|
+
return unless File.exists?(config_file_path)
|
72
|
+
|
73
|
+
io = File.open(config_file_path, "r")
|
74
|
+
end
|
75
|
+
|
76
|
+
config = YAML.load(io)
|
77
|
+
|
78
|
+
self.aws_access_key_id = config["aws_access_key_id"] if config["aws_access_key_id"]
|
79
|
+
self.aws_secret_access_key = config["aws_secret_access_key"] if config["aws_secret_access_key"]
|
80
|
+
end
|
81
|
+
|
54
82
|
protected
|
55
83
|
class BrowserCachePolicy
|
56
84
|
attr_accessor :policies
|
@@ -9,7 +9,7 @@ module Middleman
|
|
9
9
|
|
10
10
|
def initialize(path)
|
11
11
|
@path = path
|
12
|
-
@s3_resource = bucket.files.
|
12
|
+
@s3_resource = bucket.files.head(path)
|
13
13
|
end
|
14
14
|
|
15
15
|
def remote_path
|
@@ -36,6 +36,10 @@ module Middleman
|
|
36
36
|
attributes[:content_encoding] = "gzip"
|
37
37
|
end
|
38
38
|
|
39
|
+
if options.reduced_redundancy_storage
|
40
|
+
attributes[:storage_class] = 'REDUCED_REDUNDANCY'
|
41
|
+
end
|
42
|
+
|
39
43
|
attributes
|
40
44
|
end
|
41
45
|
alias :attributes :to_h
|
@@ -63,6 +67,10 @@ module Middleman
|
|
63
67
|
s3_resource.content_encoding = "gzip"
|
64
68
|
end
|
65
69
|
|
70
|
+
if options.reduced_redundancy_storage
|
71
|
+
s3_resource.storage_class = 'REDUCED_REDUNDANCY'
|
72
|
+
end
|
73
|
+
|
66
74
|
s3_resource.save
|
67
75
|
end
|
68
76
|
|
@@ -135,7 +143,7 @@ module Middleman
|
|
135
143
|
end
|
136
144
|
elsif local?
|
137
145
|
:new
|
138
|
-
elsif redirect?
|
146
|
+
elsif remote? && redirect?
|
139
147
|
:ignored
|
140
148
|
else
|
141
149
|
:deleted
|
@@ -151,7 +159,7 @@ module Middleman
|
|
151
159
|
end
|
152
160
|
|
153
161
|
def redirect?
|
154
|
-
s3_resource.metadata.has_key?
|
162
|
+
s3_resource.metadata.has_key?('x-amz-website-redirect-location')
|
155
163
|
end
|
156
164
|
|
157
165
|
def directory?
|
data/middleman-s3_sync.gemspec
CHANGED
@@ -11,6 +11,7 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.description = %q{Only syncs files that have been updated to S3.}
|
12
12
|
gem.summary = %q{Tries really, really hard not to push files to S3.}
|
13
13
|
gem.homepage = "http://github.com/fredjean/middleman-s3_sync"
|
14
|
+
gem.license = 'MIT'
|
14
15
|
|
15
16
|
gem.files = `git ls-files`.split($/)
|
16
17
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/spec/options_spec.rb
CHANGED
@@ -101,4 +101,18 @@ describe Middleman::S3Sync::Options do
|
|
101
101
|
policy.expires.should == CGI.rfc1123_date(expiration)
|
102
102
|
end
|
103
103
|
end
|
104
|
+
|
105
|
+
context "#read_config" do
|
106
|
+
let(:aws_access_key_id) { "foo" }
|
107
|
+
let(:aws_secret_access_key) { "bar" }
|
108
|
+
let(:config) { { "aws_access_key_id" => aws_access_key_id, "aws_secret_access_key" => aws_secret_access_key } }
|
109
|
+
let(:file) { StringIO.new(YAML.dump(config)) }
|
110
|
+
|
111
|
+
before do
|
112
|
+
options.read_config(file)
|
113
|
+
end
|
114
|
+
|
115
|
+
its(:aws_access_key_id) { should eq(aws_access_key_id) }
|
116
|
+
its(:aws_secret_access_key) { should eq(aws_secret_access_key) }
|
117
|
+
end
|
104
118
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-s3_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
5
|
-
prerelease:
|
4
|
+
version: 3.0.17
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Frederic Jean
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-09-
|
12
|
+
date: 2013-09-18 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: middleman-core
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ! '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ! '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: fog
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ! '>='
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: map
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ! '>='
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ! '>='
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: pmap
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ! '>='
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ! '>='
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: ruby-progressbar
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ! '>='
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :runtime
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ! '>='
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -95,7 +84,6 @@ dependencies:
|
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: colorize
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ! '>='
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :runtime
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ! '>='
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,7 +98,6 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: rake
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
102
|
- - ! '>='
|
117
103
|
- !ruby/object:Gem::Version
|
@@ -119,7 +105,6 @@ dependencies:
|
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
109
|
- - ! '>='
|
125
110
|
- !ruby/object:Gem::Version
|
@@ -127,7 +112,6 @@ dependencies:
|
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: pry
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
116
|
- - ! '>='
|
133
117
|
- !ruby/object:Gem::Version
|
@@ -135,7 +119,6 @@ dependencies:
|
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
123
|
- - ! '>='
|
141
124
|
- !ruby/object:Gem::Version
|
@@ -143,7 +126,6 @@ dependencies:
|
|
143
126
|
- !ruby/object:Gem::Dependency
|
144
127
|
name: pry-nav
|
145
128
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
129
|
requirements:
|
148
130
|
- - ! '>='
|
149
131
|
- !ruby/object:Gem::Version
|
@@ -151,7 +133,6 @@ dependencies:
|
|
151
133
|
type: :development
|
152
134
|
prerelease: false
|
153
135
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
136
|
requirements:
|
156
137
|
- - ! '>='
|
157
138
|
- !ruby/object:Gem::Version
|
@@ -159,7 +140,6 @@ dependencies:
|
|
159
140
|
- !ruby/object:Gem::Dependency
|
160
141
|
name: rspec
|
161
142
|
requirement: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
143
|
requirements:
|
164
144
|
- - ! '>='
|
165
145
|
- !ruby/object:Gem::Version
|
@@ -167,7 +147,6 @@ dependencies:
|
|
167
147
|
type: :development
|
168
148
|
prerelease: false
|
169
149
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
150
|
requirements:
|
172
151
|
- - ! '>='
|
173
152
|
- !ruby/object:Gem::Version
|
@@ -175,7 +154,6 @@ dependencies:
|
|
175
154
|
- !ruby/object:Gem::Dependency
|
176
155
|
name: timerizer
|
177
156
|
requirement: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
157
|
requirements:
|
180
158
|
- - ! '>='
|
181
159
|
- !ruby/object:Gem::Version
|
@@ -183,7 +161,6 @@ dependencies:
|
|
183
161
|
type: :development
|
184
162
|
prerelease: false
|
185
163
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
164
|
requirements:
|
188
165
|
- - ! '>='
|
189
166
|
- !ruby/object:Gem::Version
|
@@ -191,7 +168,6 @@ dependencies:
|
|
191
168
|
- !ruby/object:Gem::Dependency
|
192
169
|
name: travis
|
193
170
|
requirement: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
171
|
requirements:
|
196
172
|
- - ! '>='
|
197
173
|
- !ruby/object:Gem::Version
|
@@ -199,7 +175,6 @@ dependencies:
|
|
199
175
|
type: :development
|
200
176
|
prerelease: false
|
201
177
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
178
|
requirements:
|
204
179
|
- - ! '>='
|
205
180
|
- !ruby/object:Gem::Version
|
@@ -207,7 +182,6 @@ dependencies:
|
|
207
182
|
- !ruby/object:Gem::Dependency
|
208
183
|
name: travis-lint
|
209
184
|
requirement: !ruby/object:Gem::Requirement
|
210
|
-
none: false
|
211
185
|
requirements:
|
212
186
|
- - ! '>='
|
213
187
|
- !ruby/object:Gem::Version
|
@@ -215,7 +189,6 @@ dependencies:
|
|
215
189
|
type: :development
|
216
190
|
prerelease: false
|
217
191
|
version_requirements: !ruby/object:Gem::Requirement
|
218
|
-
none: false
|
219
192
|
requirements:
|
220
193
|
- - ! '>='
|
221
194
|
- !ruby/object:Gem::Version
|
@@ -250,34 +223,28 @@ files:
|
|
250
223
|
- spec/resource_spec.rb
|
251
224
|
- spec/spec_helper.rb
|
252
225
|
homepage: http://github.com/fredjean/middleman-s3_sync
|
253
|
-
licenses:
|
226
|
+
licenses:
|
227
|
+
- MIT
|
228
|
+
metadata: {}
|
254
229
|
post_install_message:
|
255
230
|
rdoc_options: []
|
256
231
|
require_paths:
|
257
232
|
- lib
|
258
233
|
required_ruby_version: !ruby/object:Gem::Requirement
|
259
|
-
none: false
|
260
234
|
requirements:
|
261
235
|
- - ! '>='
|
262
236
|
- !ruby/object:Gem::Version
|
263
237
|
version: '0'
|
264
|
-
segments:
|
265
|
-
- 0
|
266
|
-
hash: -2218609791572285789
|
267
238
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
268
|
-
none: false
|
269
239
|
requirements:
|
270
240
|
- - ! '>='
|
271
241
|
- !ruby/object:Gem::Version
|
272
242
|
version: '0'
|
273
|
-
segments:
|
274
|
-
- 0
|
275
|
-
hash: -2218609791572285789
|
276
243
|
requirements: []
|
277
244
|
rubyforge_project:
|
278
|
-
rubygems_version: 1.
|
245
|
+
rubygems_version: 2.1.1
|
279
246
|
signing_key:
|
280
|
-
specification_version:
|
247
|
+
specification_version: 4
|
281
248
|
summary: Tries really, really hard not to push files to S3.
|
282
249
|
test_files:
|
283
250
|
- spec/options_spec.rb
|