thesis_cloudfront 0.2.0 → 0.2.9
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d5f7a41ee42054f868406127c6a62a40f4c6e4a72266277e34b84c657ceaf98
|
4
|
+
data.tar.gz: 0cd45b65149c83c50dce32738cfe8dd3d1bed840710afd96f31547e6632dbf9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd707c28768aa48d6d144d51f7eaaef5b600322daffd577101d9386845894fd4931102c8c4073eb729b5e00129c00d9819b5ddb38f0620a94980084dc3be3795
|
7
|
+
data.tar.gz: 7e1126148b948c17c0fd110f189cc9c2c95be45c5eb89ba1b75aa7bea6160f02afa699a6924c2e942bd5a9897e3e5070f8d3cd44d7ce460b1fc3d2b5a53fd0dc
|
data/README.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# ThesisCloudfront
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
assumes you are using heroku for CNAME capturing purposes (through the cli), if not it'll skip that step.
|
4
|
+
If you aren't using Heroku I highly recommend you check out the rack_cors.rb initializer that's generated and edit it for your purposes.
|
6
5
|
|
7
6
|
## Installation
|
8
7
|
|
@@ -22,7 +21,7 @@ Or install it yourself as:
|
|
22
21
|
|
23
22
|
## Usage
|
24
23
|
|
25
|
-
|
24
|
+
run `rails g thesis_cloudfront:install`
|
26
25
|
|
27
26
|
## Development
|
28
27
|
|
@@ -1,14 +1,23 @@
|
|
1
1
|
require 'rails/generators'
|
2
|
+
require 'csv'
|
2
3
|
|
3
4
|
module ThesisCloudfront
|
4
5
|
module Generators
|
5
6
|
class InstallGenerator < Rails::Generators::Base
|
6
7
|
def install
|
7
|
-
append_to_file "Gemfile" do
|
8
|
-
"\ngem 'rack_cors'"
|
9
|
-
end
|
10
|
-
|
11
8
|
heroku_app_name = ask("whats the name of this heroku app?")
|
9
|
+
file = `heroku domains -a #{heroku_app_name} --csv`
|
10
|
+
file&.gsub!(/===.+|.+\.herokuapp.com/, '').strip
|
11
|
+
domains = []
|
12
|
+
|
13
|
+
if file
|
14
|
+
CSV.parse(file, headers: true).each do |x|
|
15
|
+
if x['Domain Name']
|
16
|
+
domains << ' /https:\/\/' + "#{x['Domain Name']}/"
|
17
|
+
domains << ' /http:\/\/' + "#{x['Domain Name']}/"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
12
21
|
|
13
22
|
create_file "config/initializers/rack_cors.rb" do
|
14
23
|
["Rails.application.config.middleware.insert_before 0, Rack::Cors do",
|
@@ -16,16 +25,20 @@ module ThesisCloudfront
|
|
16
25
|
" origins [",
|
17
26
|
" /https:\\/\\/#{heroku_app_name}.herokuapp.com/,",
|
18
27
|
" /http:\\/\\/#{heroku_app_name}.herokuapp.com/,",
|
19
|
-
" /https:\\/\\/#{heroku_app_name}-pr
|
20
|
-
" /http:\\/\\/#{heroku_app_name}-pr
|
28
|
+
" /https:\\/\\/#{heroku_app_name}-pr-.+.herokuapp.com/,",
|
29
|
+
" /http:\\/\\/#{heroku_app_name}-pr-.+.herokuapp.com/,", domains.join(",\n"),
|
21
30
|
" ]",
|
22
31
|
" resource '/assets/*', headers: :any, methods: [:get, :head, :options]",
|
23
32
|
" end",
|
24
33
|
"end"].join("\n")
|
25
34
|
end
|
26
35
|
|
27
|
-
create_file "config/initializers/
|
28
|
-
"ActionController::Base.asset_host = ENV['CLOUDFRONT_URL']"
|
36
|
+
create_file "config/initializers/cloudfront.rb" do
|
37
|
+
["ActionController::Base.asset_host = ENV['CLOUDFRONT_URL']",
|
38
|
+
"Rails.application.config.public_file_server.headers = {",
|
39
|
+
" 'Cache-Control' => 'public, max-age=2592000',",
|
40
|
+
' "Expires" => "#{30.days.from_now.to_formatted_s(:rfc822)}"',
|
41
|
+
"}"].join("\n")
|
29
42
|
end
|
30
43
|
end
|
31
44
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'csv'
|
3
|
+
|
4
|
+
module Cloudfront
|
5
|
+
module Generators
|
6
|
+
class InstallGenerator < Rails::Generators::Base
|
7
|
+
def install
|
8
|
+
# append_to_file "Gemfile" do
|
9
|
+
# "\ngem 'rack-cors'"
|
10
|
+
# end
|
11
|
+
|
12
|
+
heroku_app_name = ask("whats the name of this heroku app?")
|
13
|
+
file = `heroku domains -a #{heroku_app_name} --csv`
|
14
|
+
file&.gsub!(/===.+|.+\.herokuapp.com/, '').strip
|
15
|
+
domains = []
|
16
|
+
|
17
|
+
if file
|
18
|
+
CSV.parse(file, headers: true).each do |x|
|
19
|
+
if x['Domain Name']
|
20
|
+
domains << ' /https:\/\/' + "#{x['Domain Name']}/"
|
21
|
+
domains << ' /http:\/\/' + "#{x['Domain Name']}/"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
create_file "config/initializers/rack_cors.rb" do
|
27
|
+
["Rails.application.config.middleware.insert_before 0, Rack::Cors do",
|
28
|
+
" allow do",
|
29
|
+
" origins [",
|
30
|
+
" /https:\\/\\/#{heroku_app_name}.herokuapp.com/,",
|
31
|
+
" /http:\\/\\/#{heroku_app_name}.herokuapp.com/,",
|
32
|
+
" /https:\\/\\/#{heroku_app_name}-pr-\w+.herokuapp.com/,",
|
33
|
+
" /http:\\/\\/#{heroku_app_name}-pr-\w+.herokuapp.com/,", domains.join(",\n"),
|
34
|
+
" ]",
|
35
|
+
" resource '/assets/*', headers: :any, methods: [:get, :head, :options]",
|
36
|
+
" end",
|
37
|
+
"end"].join("\n")
|
38
|
+
end
|
39
|
+
|
40
|
+
create_file "config/initializers/cloudfront.rb" do
|
41
|
+
["ActionController::Base.asset_host = ENV['CLOUDFRONT_URL']",
|
42
|
+
"config.public_file_server.headers = {",
|
43
|
+
" 'Cache-Control' => 'public, max-age=2592000',",
|
44
|
+
" \"Expires\" => \"\#{30.days.from_now.to_formatted_s(:rfc822)}\"",
|
45
|
+
" }"].join("\n")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thesis_cloudfront
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nico Vigil
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09
|
11
|
+
date: 2019-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack-cors
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- bin/setup
|
85
85
|
- lib/generators/thesis_cloudfront/install_generator.rb
|
86
86
|
- lib/thesis_cloudfront.rb
|
87
|
+
- lib/thesis_cloudfront/install_generator.rb
|
87
88
|
- lib/thesis_cloudfront/version.rb
|
88
89
|
- thesis_cloudfront.gemspec
|
89
90
|
homepage: https://github.com/nicovigil1/thesis_cloudfront
|