static-rails 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +10 -10
- data/README.md +4 -0
- data/lib/generators/templates/static.rb +3 -0
- data/lib/static-rails/configuration.rb +2 -2
- data/lib/static-rails/site.rb +1 -0
- data/lib/static-rails/static_middleware.rb +9 -1
- data/lib/static-rails/version.rb +1 -1
- metadata +2 -3
- data/lib/static-rails/csrf_middleware.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3159e387c25a9742f063230f554490e70d41e4be4a318eed738e26480c048cb6
|
4
|
+
data.tar.gz: da86a266cb8bd5559e5ec71d90a84c0ca0539449d8f7259d1ed0654abe3a0c64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4be0b00df5deaacc0c414bf743b78b5feff4f589e44b93378d5de40458e9f56733c83315f9e58cfa9d08c0627d26193994bbec01f86b18924e980e7dc8271f3b
|
7
|
+
data.tar.gz: 1c42430d7193cf13eb21579f5647ecd53f07e010092c2056bef17848aed64a588c8c5919241760fb867e67734d2878559f127c6347b082fe5ef4c77387cc6454
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
static-rails (0.0.
|
4
|
+
static-rails (0.0.5)
|
5
5
|
rack-proxy (~> 0.6)
|
6
6
|
railties (>= 5.0.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
actionpack (6.0.3)
|
12
|
-
actionview (= 6.0.3)
|
13
|
-
activesupport (= 6.0.3)
|
11
|
+
actionpack (6.0.3.1)
|
12
|
+
actionview (= 6.0.3.1)
|
13
|
+
activesupport (= 6.0.3.1)
|
14
14
|
rack (~> 2.0, >= 2.0.8)
|
15
15
|
rack-test (>= 0.6.3)
|
16
16
|
rails-dom-testing (~> 2.0)
|
17
17
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
18
|
-
actionview (6.0.3)
|
19
|
-
activesupport (= 6.0.3)
|
18
|
+
actionview (6.0.3.1)
|
19
|
+
activesupport (= 6.0.3.1)
|
20
20
|
builder (~> 3.1)
|
21
21
|
erubi (~> 1.4)
|
22
22
|
rails-dom-testing (~> 2.0)
|
23
23
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
24
|
-
activesupport (6.0.3)
|
24
|
+
activesupport (6.0.3.1)
|
25
25
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
26
26
|
i18n (>= 0.7, < 2)
|
27
27
|
minitest (~> 5.1)
|
@@ -56,9 +56,9 @@ GEM
|
|
56
56
|
nokogiri (>= 1.6)
|
57
57
|
rails-html-sanitizer (1.3.0)
|
58
58
|
loofah (~> 2.3)
|
59
|
-
railties (6.0.3)
|
60
|
-
actionpack (= 6.0.3)
|
61
|
-
activesupport (= 6.0.3)
|
59
|
+
railties (6.0.3.1)
|
60
|
+
actionpack (= 6.0.3.1)
|
61
|
+
activesupport (= 6.0.3.1)
|
62
62
|
method_source
|
63
63
|
rake (>= 0.8.7)
|
64
64
|
thor (>= 0.20.3, < 2.0)
|
data/README.md
CHANGED
@@ -153,6 +153,10 @@ To tell the gem about your static sites, assign an array of hashes as `sites`
|
|
153
153
|
path to which production assets are compiled, relative to the site's
|
154
154
|
`source_dir`
|
155
155
|
|
156
|
+
* **compile_404_file_path** (Optional) When `serve_compiled_assets` is true,
|
157
|
+
this file (relative to the `compile_dir`) will be served whenever the
|
158
|
+
request's path does not match a file on disk
|
159
|
+
|
156
160
|
## Configuring your static site generators
|
157
161
|
|
158
162
|
Assuming you won't be mounting your static site to your app's root `/` path,
|
@@ -66,6 +66,9 @@ StaticRails.config do |config|
|
|
66
66
|
#
|
67
67
|
# # The destination of production-compiled assets, relative to Rails root
|
68
68
|
# compile_dir: "static/blog/dist"
|
69
|
+
#
|
70
|
+
# # A 404 page to be sent when serving compiled assets and no file matches
|
71
|
+
# compile_404_file_path: "404.html"
|
69
72
|
# },
|
70
73
|
]
|
71
74
|
end
|
@@ -13,10 +13,10 @@ module StaticRails
|
|
13
13
|
# When Rails invokes our Railtie, we'll save off a reference to the Rails app
|
14
14
|
attr_accessor :app
|
15
15
|
|
16
|
-
# When true,
|
16
|
+
# When true, our middleware will proxy requests to static site servers
|
17
17
|
attr_accessor :proxy_requests
|
18
18
|
|
19
|
-
# When true,
|
19
|
+
# When true, our middleware will serve sites' compiled asset files
|
20
20
|
attr_accessor :serve_compiled_assets
|
21
21
|
|
22
22
|
# Number of seconds to wait on sites to confirm servers are ready
|
data/lib/static-rails/site.rb
CHANGED
@@ -17,7 +17,7 @@ module StaticRails
|
|
17
17
|
if (req.get? || req.head?) && (site = @matches_request_to_static_site.call(req))
|
18
18
|
file_handler = file_handler_for(site)
|
19
19
|
path = req.path_info.gsub(/^#{site.url_root_path}/, "").chomp("/")
|
20
|
-
if (match = file_handler
|
20
|
+
if (match = matching_file_for(file_handler, site, path))
|
21
21
|
req.path_info = match
|
22
22
|
return file_handler.serve(req)
|
23
23
|
end
|
@@ -35,5 +35,13 @@ module StaticRails
|
|
35
35
|
StaticRails.config.app.root.join(site.compile_dir).to_s
|
36
36
|
)
|
37
37
|
end
|
38
|
+
|
39
|
+
def matching_file_for(file_handler, site, path)
|
40
|
+
if (match = file_handler.match?(path))
|
41
|
+
match
|
42
|
+
elsif site.compile_404_file_path.present?
|
43
|
+
file_handler.match?(site.compile_404_file_path)
|
44
|
+
end
|
45
|
+
end
|
38
46
|
end
|
39
47
|
end
|
data/lib/static-rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: static-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Searls
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -62,7 +62,6 @@ files:
|
|
62
62
|
- lib/static-rails.rb
|
63
63
|
- lib/static-rails/compile.rb
|
64
64
|
- lib/static-rails/configuration.rb
|
65
|
-
- lib/static-rails/csrf_middleware.rb
|
66
65
|
- lib/static-rails/determines_whether_to_handle_request.rb
|
67
66
|
- lib/static-rails/error.rb
|
68
67
|
- lib/static-rails/gets_csrf_token.rb
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative "gets_csrf_token"
|
2
|
-
|
3
|
-
module StaticRails
|
4
|
-
class CsrfMiddleware
|
5
|
-
def initialize(app)
|
6
|
-
@app = app
|
7
|
-
@gets_csrf_token = GetsCsrfToken.new
|
8
|
-
end
|
9
|
-
|
10
|
-
def call(env)
|
11
|
-
if env["__static_rails_evil_request_for_csrf_token"]
|
12
|
-
req = Rack::Request.new(env)
|
13
|
-
[200, {}, [@gets_csrf_token.call(req)]].tap do
|
14
|
-
end
|
15
|
-
else
|
16
|
-
@app.call(env)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|