capistrano-s3 0.3.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +4 -3
- data/CHANGELOG.md +5 -0
- data/README.md +40 -18
- data/capistrano-s3.gemspec +4 -1
- data/certs/j15e.pem +8 -8
- data/lib/capistrano/s3/defaults.rb +1 -0
- data/lib/capistrano/s3/publisher.rb +20 -4
- data/lib/capistrano/s3/version.rb +1 -1
- data/lib/capistrano/tasks/capistrano_2.rb +1 -1
- data/lib/capistrano/tasks/capistrano_3.rb +1 -1
- data/spec/publisher_spec.rb +9 -2
- data/spec/sample/fonts/cantarell-regular-webfont.eot.gz +0 -0
- data/spec/sample/fonts/cantarell-regular-webfont.svg.gz +0 -0
- data/spec/sample/fonts/cantarell-regular-webfont.ttf.gz +0 -0
- data/spec/sample/fonts/cantarell-regular-webfont.woff.gz +0 -0
- metadata +32 -23
- metadata.gz.sig +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02a173c70a3b3da2d285fed463f5e75b6252705d
|
4
|
+
data.tar.gz: 9423d2d35159919b6ccd274d142c258217fe0ad8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 540baac23fcd625598b9f3324e0a5c80360fc0b712cf482b067ca4bd2eb8b1334bf8e2fc65209cd85ceeb22c2f8dee1c9dbc174c48e4996be75a5cd151a4aed6
|
7
|
+
data.tar.gz: 09ec556aa3df667487e68d1c00b14a77a40b1a7e03c5305092d3eaf836a399431610779aaf8a3f17c6a7c056bb2432fe77433ba16c9ee4d5fc12d50b6c7d3b90
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
> Enables static websites deployment to Amazon S3 website buckets using Capistrano.
|
4
4
|
|
5
|
-
[![Build Status](https://
|
6
|
-
[![Dependency Status](https://
|
7
|
-
[![Code Climate](https://
|
8
|
-
[![Gem Version](https://
|
5
|
+
[![Build Status](https://img.shields.io/travis/hooktstudios/capistrano-s3/master.svg)](https://travis-ci.org/hooktstudios/capistrano-s3)
|
6
|
+
[![Dependency Status](https://img.shields.io/gemnasium/hooktstudios/capistrano-s3.svg)](https://gemnasium.com/hooktstudios/capistrano-s3)
|
7
|
+
[![Code Climate](https://img.shields.io/codeclimate/github/hooktstudios/capistrano-s3.svg)](https://codeclimate.com/github/hooktstudios/capistrano-s3)
|
8
|
+
[![Gem Version](https://img.shields.io/gem/v/capistrano-s3.svg)](https://rubygems.org/gems/capistrano-s3)
|
9
9
|
|
10
10
|
## Hosting your website with Amazon S3
|
11
11
|
|
@@ -35,14 +35,16 @@ Gem supports both flavors of Capistrano (2/3). Configurations between versions d
|
|
35
35
|
First initialise Capistrano for given project - `bundle exec capify .`
|
36
36
|
|
37
37
|
Replace `deploy.rb` content generated by capify
|
38
|
-
with these simple Amazon S3 configurations
|
38
|
+
with these simple Amazon S3 configurations:
|
39
39
|
|
40
|
-
|
41
|
-
|
40
|
+
```ruby
|
41
|
+
# config/deploy.rb
|
42
|
+
require 'capistrano/s3'
|
42
43
|
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
set :bucket, "www.cool-website-bucket.com"
|
45
|
+
set :access_key_id, "CHANGETHIS"
|
46
|
+
set :secret_access_key, "CHANGETHIS"
|
47
|
+
```
|
46
48
|
|
47
49
|
If you want to deploy to multiple buckets, have a look at
|
48
50
|
[Capistrano multistage](https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension)
|
@@ -57,10 +59,12 @@ Next add `require "capistrano/s3"` to Capfile.
|
|
57
59
|
Finally, replace `deploy.rb` content generated by Capistrano with
|
58
60
|
this config:
|
59
61
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
62
|
+
```ruby
|
63
|
+
# config/deploy.rb
|
64
|
+
set :bucket, "www.cool-website-bucket.com"
|
65
|
+
set :access_key_id, "CHANGETHIS"
|
66
|
+
set :secret_access_key, "CHANGETHIS"
|
67
|
+
```
|
64
68
|
|
65
69
|
### Deploying
|
66
70
|
|
@@ -77,7 +81,7 @@ Add content to your public folder and run deploy command:
|
|
77
81
|
|
78
82
|
If your bucket is not in the default US Standard region,
|
79
83
|
set [endpoint](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
|
80
|
-
with
|
84
|
+
with:
|
81
85
|
|
82
86
|
```ruby
|
83
87
|
set :s3_endpoint, 's3-eu-west-1.amazonaws.com'
|
@@ -85,7 +89,7 @@ set :s3_endpoint, 's3-eu-west-1.amazonaws.com'
|
|
85
89
|
|
86
90
|
### Write options
|
87
91
|
|
88
|
-
capistrano-s3 sets files `:content_type` and `:acl` to `:public_read`, add or override with
|
92
|
+
capistrano-s3 sets files `:content_type` and `:acl` to `:public_read`, add or override with:
|
89
93
|
|
90
94
|
```ruby
|
91
95
|
set :bucket_write_options, {
|
@@ -99,24 +103,42 @@ See aws-sdk [S3Client.put_object doc](http://docs.aws.amazon.com/AWSRubySDK/late
|
|
99
103
|
|
100
104
|
Use `:redirect_options` to natively redirect (via HTTP 301 status code)
|
101
105
|
any hosted page. For example:
|
106
|
+
|
102
107
|
```ruby
|
103
108
|
set :redirect_options, {
|
104
109
|
'index.html' => 'http://example.org',
|
105
110
|
'another.html' => '/test.html',
|
106
111
|
}
|
107
112
|
```
|
113
|
+
|
108
114
|
Valid redirect destination should either start with `http` or `https` scheme,
|
109
115
|
or begin with leading slash `/`.
|
110
116
|
|
117
|
+
### Upload only compressed versions
|
118
|
+
|
119
|
+
You can configure capistrano-s3 to only upload gzipped assets (when they are present) and remove the `.gz` suffix. This feature comes in handy because Amazon S3 does not provide a way to decide when to serve compressed or uncompressed content depending on `Accept-Encoding` header.
|
120
|
+
|
121
|
+
For example: if you have `main.js` and `main.js.gz` capistrano-s3 will upload the compressed version as `main.js` to S3.
|
122
|
+
|
123
|
+
Please note:
|
124
|
+
1. Only the file is renamed, the original `Content-Type`, and `Content-Encoding: gzip` headers will be served
|
125
|
+
2. By enabling this feature way **only** compressed assets will be served. Browser support although is [pretty good](http://webmasters.stackexchange.com/questions/22217/which-browsers-handle-content-encoding-gzip-and-which-of-them-has-any-special).
|
126
|
+
|
127
|
+
Just add to your configuration:
|
128
|
+
|
129
|
+
```ruby
|
130
|
+
set :only_gzip, true
|
131
|
+
```
|
132
|
+
|
111
133
|
## Example of usage
|
112
134
|
|
113
|
-
Our Ruby stack for static websites
|
135
|
+
Our Ruby stack for static websites:
|
114
136
|
|
115
137
|
- [sinatra](https://github.com/sinatra/sinatra) : awesome simple ruby web framework
|
116
138
|
- [sinatra-assetpack](https://github.com/rstacruz/sinatra-assetpack) : deals with assets management, build static files into `public/`
|
117
139
|
- [sinatra-export](https://github.com/hooktstudios/sinatra-export) : exports all sinatra routes into `public/` as html or other common formats (json, csv, etc)
|
118
140
|
|
119
|
-
Mixing it in a capistrano task
|
141
|
+
Mixing it in a capistrano task:
|
120
142
|
|
121
143
|
```ruby
|
122
144
|
# config/deploy.rb
|
data/capistrano-s3.gemspec
CHANGED
@@ -15,9 +15,12 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.name = 'capistrano-s3'
|
16
16
|
s.require_paths = ['lib']
|
17
17
|
s.version = Capistrano::S3::VERSION
|
18
|
-
s.cert_chain = ['certs/
|
18
|
+
s.cert_chain = ['certs/j15e.pem']
|
19
19
|
s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
|
20
20
|
|
21
|
+
# Min rubies
|
22
|
+
s.required_ruby_version = ">= 2.1"
|
23
|
+
|
21
24
|
# Gem dependencies
|
22
25
|
s.add_runtime_dependency 'aws-sdk', '~> 1.11'
|
23
26
|
s.add_runtime_dependency 'capistrano', '>= 2'
|
data/certs/j15e.pem
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
2
|
MIIDmjCCAoKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBJMRswGQYDVQQDDBJqZWFu
|
3
3
|
cGhpbGlwcGUuZG95bGUxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT
|
4
|
-
|
4
|
+
8ixkARkWA2NvbTAeFw0xNjA5MjMxNjE1NDlaFw0xNzA5MjMxNjE1NDlaMEkxGzAZ
|
5
5
|
BgNVBAMMEmplYW5waGlsaXBwZS5kb3lsZTEVMBMGCgmSJomT8ixkARkWBWdtYWls
|
6
6
|
MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
7
7
|
CgKCAQEAzpnUIh2dzSBkAghI4ZzdefobWdGH8M9yjiyZl4DfO+LSLV5ovcqVYPYr
|
@@ -12,11 +12,11 @@ OU80hUsHQrkj5PxPU2Qfs6q2jOxrfRcUSBJZxUDzjmbhP9eq0XN+b5/Cqz3OboSI
|
|
12
12
|
nWF0Kj0971wJgZiNdzXsLMy+zmHdiQIDAQABo4GMMIGJMAkGA1UdEwQCMAAwCwYD
|
13
13
|
VR0PBAQDAgSwMB0GA1UdDgQWBBRro81JisHXRBP5dZh5mzOEHsjLxTAnBgNVHREE
|
14
14
|
IDAegRxqZWFucGhpbGlwcGUuZG95bGVAZ21haWwuY29tMCcGA1UdEgQgMB6BHGpl
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
YW5waGlsaXBwZS5kb3lsZUBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQADggEBADsn
|
16
|
+
80BmZ9LcnXzKOvNFts/L230YyUuRvsSFhLpfTJqmvDmfjBWrtL6pXxnES79Ioshd
|
17
|
+
zWSLZ1XYWwPFVDYODq+eupjVg2/DBSdOcMjwdrMP84nZeOS5AumogydbC8j22ETx
|
18
|
+
Yal+NgwHw8x1+loPGm5ZLrRFgyMnDrhUnG0pFDEd4/rMpUlnG17eGeWq2Zr3Q5q+
|
19
|
+
mj7phtPsRLGRWLV5ba9ROJYoASdZtQadvQMHvDOoYY9+vprJ8sYQJkBz6hRJrg30
|
20
|
+
t/JsZnAlWYkJIees2SFV5X/t34oeMu04yY2u9y2YBqKovR97m5YF7zqgx0JODV0x
|
21
|
+
ytwUJvEjznBnJV4OoDE=
|
22
22
|
-----END CERTIFICATE-----
|
@@ -7,17 +7,18 @@ module Capistrano
|
|
7
7
|
module Publisher
|
8
8
|
LAST_PUBLISHED_FILE = '.last_published'
|
9
9
|
|
10
|
-
def self.publish!(s3_endpoint, key, secret, bucket, source, extra_options)
|
10
|
+
def self.publish!(s3_endpoint, key, secret, bucket, source, only_gzip, extra_options)
|
11
11
|
s3 = self.establish_s3_client_connection!(s3_endpoint, key, secret)
|
12
12
|
|
13
13
|
self.files(source).each do |file|
|
14
14
|
if !File.directory?(file)
|
15
15
|
next if self.published?(file)
|
16
|
+
next if only_gzip && self.has_gzipped_version?(file)
|
16
17
|
|
17
18
|
path = self.base_file_path(source, file)
|
18
19
|
path.gsub!(/^\//, "") # Remove preceding slash for S3
|
19
20
|
|
20
|
-
self.put_object(s3, bucket, path, file, extra_options)
|
21
|
+
self.put_object(s3, bucket, path, file, only_gzip, extra_options)
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
@@ -65,7 +66,7 @@ module Capistrano
|
|
65
66
|
File.mtime(file) < File.mtime(LAST_PUBLISHED_FILE)
|
66
67
|
end
|
67
68
|
|
68
|
-
def self.put_object(s3, bucket, path, file, extra_options)
|
69
|
+
def self.put_object(s3, bucket, path, file, only_gzip, extra_options)
|
69
70
|
base_name = File.basename(file)
|
70
71
|
mime_type = mime_type_for_file(base_name)
|
71
72
|
options = {
|
@@ -84,6 +85,9 @@ module Capistrano
|
|
84
85
|
if mime_type.sub_type == "gzip"
|
85
86
|
options.merge!(build_gzip_content_encoding_hash)
|
86
87
|
options.merge!(build_gzip_content_type_hash(file, mime_type))
|
88
|
+
|
89
|
+
# upload as original file name
|
90
|
+
options.merge!(key: self.orig_name(path)) if only_gzip
|
87
91
|
end
|
88
92
|
end
|
89
93
|
|
@@ -104,8 +108,12 @@ module Capistrano
|
|
104
108
|
{ :content_encoding => "gzip" }
|
105
109
|
end
|
106
110
|
|
111
|
+
def self.has_gzipped_version?(file)
|
112
|
+
File.exist?(self.gzip_name(file))
|
113
|
+
end
|
114
|
+
|
107
115
|
def self.build_gzip_content_type_hash(file, mime_type)
|
108
|
-
orig_name =
|
116
|
+
orig_name = self.orig_name(file)
|
109
117
|
orig_mime = mime_type_for_file(orig_name)
|
110
118
|
|
111
119
|
return {} unless orig_mime && File.exist?(orig_name)
|
@@ -117,6 +125,14 @@ module Capistrano
|
|
117
125
|
type = MIME::Types.type_for(file)
|
118
126
|
(type && !type.empty?) ? type[0] : nil
|
119
127
|
end
|
128
|
+
|
129
|
+
def self.gzip_name(file)
|
130
|
+
"#{file}.gz"
|
131
|
+
end
|
132
|
+
|
133
|
+
def self.orig_name(file)
|
134
|
+
file.sub(/\.gz$/, "")
|
135
|
+
end
|
120
136
|
end
|
121
137
|
end
|
122
138
|
end
|
@@ -18,7 +18,7 @@ module Capistrano
|
|
18
18
|
task :upload_files do
|
19
19
|
extra_options = { :write => bucket_write_options, :redirect => redirect_options }
|
20
20
|
S3::Publisher.publish!(s3_endpoint, access_key_id, secret_access_key,
|
21
|
-
bucket, deployment_path, extra_options)
|
21
|
+
bucket, deployment_path, only_gzip, extra_options)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -15,7 +15,7 @@ namespace :deploy do
|
|
15
15
|
task :upload_files do
|
16
16
|
extra_options = { :write => fetch(:bucket_write_options), :redirect => fetch(:redirect_options) }
|
17
17
|
Capistrano::S3::Publisher.publish!(fetch(:s3_endpoint), fetch(:access_key_id), fetch(:secret_access_key),
|
18
|
-
fetch(:bucket), fetch(:deployment_path), extra_options)
|
18
|
+
fetch(:bucket), fetch(:deployment_path), fetch(:only_gzip), extra_options)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
data/spec/publisher_spec.rb
CHANGED
@@ -9,10 +9,17 @@ describe Capistrano::S3::Publisher do
|
|
9
9
|
|
10
10
|
context "on publish!" do
|
11
11
|
it "publish all files" do
|
12
|
+
AWS::S3::Client::V20060301.any_instance.expects(:put_object).times(8)
|
13
|
+
|
14
|
+
path = File.join(@root, 'sample')
|
15
|
+
Capistrano::S3::Publisher.publish!('s3.amazonaws.com', 'abc', '123', 'mybucket.amazonaws.com', path, false, {})
|
16
|
+
end
|
17
|
+
|
18
|
+
it "publish only gzip files when option is enabled" do
|
12
19
|
AWS::S3::Client::V20060301.any_instance.expects(:put_object).times(4)
|
13
20
|
|
14
21
|
path = File.join(@root, 'sample')
|
15
|
-
Capistrano::S3::Publisher.publish!('s3.amazonaws.com', 'abc', '123', 'mybucket.amazonaws.com', path, {})
|
22
|
+
Capistrano::S3::Publisher.publish!('s3.amazonaws.com', 'abc', '123', 'mybucket.amazonaws.com', path, true, {})
|
16
23
|
end
|
17
24
|
end
|
18
|
-
end
|
25
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean-Philippe Doyle
|
@@ -15,27 +15,28 @@ bindir: bin
|
|
15
15
|
cert_chain:
|
16
16
|
- |
|
17
17
|
-----BEGIN CERTIFICATE-----
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
18
|
+
MIIDmjCCAoKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBJMRswGQYDVQQDDBJqZWFu
|
19
|
+
cGhpbGlwcGUuZG95bGUxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT
|
20
|
+
8ixkARkWA2NvbTAeFw0xNjA5MjMxNjE1NDlaFw0xNzA5MjMxNjE1NDlaMEkxGzAZ
|
21
|
+
BgNVBAMMEmplYW5waGlsaXBwZS5kb3lsZTEVMBMGCgmSJomT8ixkARkWBWdtYWls
|
22
|
+
MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
23
|
+
CgKCAQEAzpnUIh2dzSBkAghI4ZzdefobWdGH8M9yjiyZl4DfO+LSLV5ovcqVYPYr
|
24
|
+
fzHm4TJO4w0S7jnfdwq45mGO3ogEMbmQLz4B/bUZXVHX0K9//KRroseRCUH24BE0
|
25
|
+
q46UCeaFMs5wGcniT7XhuDcqPQaqCIxDE1aBxcKlZg8i62yM3BO/yX5DwLPqhyEu
|
26
|
+
XVViJ+PvHjUGa69iw1fqUs9PZaf9WdKHyPHhgbhwy7xqx7EavG+tmHQUxtIf7xhl
|
27
|
+
OU80hUsHQrkj5PxPU2Qfs6q2jOxrfRcUSBJZxUDzjmbhP9eq0XN+b5/Cqz3OboSI
|
28
|
+
nWF0Kj0971wJgZiNdzXsLMy+zmHdiQIDAQABo4GMMIGJMAkGA1UdEwQCMAAwCwYD
|
29
|
+
VR0PBAQDAgSwMB0GA1UdDgQWBBRro81JisHXRBP5dZh5mzOEHsjLxTAnBgNVHREE
|
30
|
+
IDAegRxqZWFucGhpbGlwcGUuZG95bGVAZ21haWwuY29tMCcGA1UdEgQgMB6BHGpl
|
31
|
+
YW5waGlsaXBwZS5kb3lsZUBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQADggEBADsn
|
32
|
+
80BmZ9LcnXzKOvNFts/L230YyUuRvsSFhLpfTJqmvDmfjBWrtL6pXxnES79Ioshd
|
33
|
+
zWSLZ1XYWwPFVDYODq+eupjVg2/DBSdOcMjwdrMP84nZeOS5AumogydbC8j22ETx
|
34
|
+
Yal+NgwHw8x1+loPGm5ZLrRFgyMnDrhUnG0pFDEd4/rMpUlnG17eGeWq2Zr3Q5q+
|
35
|
+
mj7phtPsRLGRWLV5ba9ROJYoASdZtQadvQMHvDOoYY9+vprJ8sYQJkBz6hRJrg30
|
36
|
+
t/JsZnAlWYkJIees2SFV5X/t34oeMu04yY2u9y2YBqKovR97m5YF7zqgx0JODV0x
|
37
|
+
ytwUJvEjznBnJV4OoDE=
|
37
38
|
-----END CERTIFICATE-----
|
38
|
-
date: 2016-
|
39
|
+
date: 2016-09-23 00:00:00.000000000 Z
|
39
40
|
dependencies:
|
40
41
|
- !ruby/object:Gem::Dependency
|
41
42
|
name: aws-sdk
|
@@ -191,9 +192,13 @@ files:
|
|
191
192
|
- lib/capistrano/tasks/capistrano_3.rb
|
192
193
|
- spec/publisher_spec.rb
|
193
194
|
- spec/sample/fonts/cantarell-regular-webfont.eot
|
195
|
+
- spec/sample/fonts/cantarell-regular-webfont.eot.gz
|
194
196
|
- spec/sample/fonts/cantarell-regular-webfont.svg
|
197
|
+
- spec/sample/fonts/cantarell-regular-webfont.svg.gz
|
195
198
|
- spec/sample/fonts/cantarell-regular-webfont.ttf
|
199
|
+
- spec/sample/fonts/cantarell-regular-webfont.ttf.gz
|
196
200
|
- spec/sample/fonts/cantarell-regular-webfont.woff
|
201
|
+
- spec/sample/fonts/cantarell-regular-webfont.woff.gz
|
197
202
|
- spec/spec_helper.rb
|
198
203
|
homepage: http://github.com/hooktstudios/capistrano-s3
|
199
204
|
licenses:
|
@@ -207,7 +212,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
207
212
|
requirements:
|
208
213
|
- - ">="
|
209
214
|
- !ruby/object:Gem::Version
|
210
|
-
version: '
|
215
|
+
version: '2.1'
|
211
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
217
|
requirements:
|
213
218
|
- - ">="
|
@@ -215,14 +220,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
220
|
version: '0'
|
216
221
|
requirements: []
|
217
222
|
rubyforge_project:
|
218
|
-
rubygems_version: 2.
|
223
|
+
rubygems_version: 2.5.1
|
219
224
|
signing_key:
|
220
225
|
specification_version: 4
|
221
226
|
summary: Build and deploy a static website to Amazon S3
|
222
227
|
test_files:
|
223
228
|
- spec/publisher_spec.rb
|
224
229
|
- spec/sample/fonts/cantarell-regular-webfont.eot
|
230
|
+
- spec/sample/fonts/cantarell-regular-webfont.eot.gz
|
225
231
|
- spec/sample/fonts/cantarell-regular-webfont.svg
|
232
|
+
- spec/sample/fonts/cantarell-regular-webfont.svg.gz
|
226
233
|
- spec/sample/fonts/cantarell-regular-webfont.ttf
|
234
|
+
- spec/sample/fonts/cantarell-regular-webfont.ttf.gz
|
227
235
|
- spec/sample/fonts/cantarell-regular-webfont.woff
|
236
|
+
- spec/sample/fonts/cantarell-regular-webfont.woff.gz
|
228
237
|
- spec/spec_helper.rb
|
metadata.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
V�
|
2
|
-
|
1
|
+
�;օ8�ݓ�>�OÀ�\�g"�`����y�%gрKRo�o�l'ཏ��?h��ח��O �ߩR�R0@J�,�ܜ>������3%��F�#�b ��ƾ��+�h#��^jc+jGX21��0�г��3H�V��ĺw=�pl�g��S��EO�4�LPo�7�Vi5%��.��#�&\�V�r�]c�S%�9�B$ɥ����Is�Ic�.2���
|
2
|
+
\8�+���ԛy��
|