rack-manifest 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rack/manifest.rb +8 -13
- data/lib/rack/manifest/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 946a58a6c131b4701335d4bc97db43f6bbe69533
|
4
|
+
data.tar.gz: b385b24648f97c6ce2868b63aede9471d4986711
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8cfbf57dcf5d548b948c4b2a5d2c1158d46bc3c46f1d7881796df76b3f09f7d0260af256756960edb05558f58c238bb66affbcafd5c032ed618bca8711ad2309
|
7
|
+
data.tar.gz: c26e802ce4250ac0562caa2d6e114bfe48030b1d41bc7e70f59e519ba538cbf9220aa27a8e9e6d333d0ad7bae7a73ee8a4fa2572e9c35638623686f5397e93bf
|
data/lib/rack/manifest.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'erb'
|
3
|
-
require
|
4
|
-
require 'rack/request'
|
3
|
+
require "digest/md5"
|
5
4
|
require 'rack/manifest/version'
|
6
5
|
require 'rack/manifest/rails' if defined?(Rails::Railtie)
|
7
6
|
require 'rack/manifest/sprockets' if defined?(Sprockets) && defined?(Rails)
|
@@ -23,20 +22,17 @@ class Rack::Manifest
|
|
23
22
|
|
24
23
|
def call(env)
|
25
24
|
if env['PATH_INFO'] == '/manifest.json'
|
26
|
-
headers = {}
|
27
|
-
if env.has_key?('HTTP_IF_MODIFIED_SINCE')
|
28
|
-
fetched_date = env['HTTP_IF_MODIFIED_SINCE']
|
29
|
-
return [304, headers, []] if get_modified_time(FILE_PATH) == fetched_date
|
30
|
-
end
|
31
25
|
manifest = load_yaml(FILE_PATH)
|
32
26
|
json = JSON.generate(manifest)
|
27
|
+
etag = digest(json)
|
28
|
+
return [304, {}, []] if env['HTTP_IF_NONE_MATCH'] == etag
|
33
29
|
[
|
34
30
|
200,
|
35
|
-
|
31
|
+
{
|
36
32
|
'Content-Type' => 'application/json',
|
37
|
-
'
|
33
|
+
'Etag' => etag,
|
38
34
|
'Content-Length' => json.length.to_s
|
39
|
-
}
|
35
|
+
},
|
40
36
|
[json]
|
41
37
|
]
|
42
38
|
else
|
@@ -45,9 +41,8 @@ class Rack::Manifest
|
|
45
41
|
end
|
46
42
|
|
47
43
|
private
|
48
|
-
def
|
49
|
-
|
50
|
-
time.strftime('%a, %d %b %Y %H:%M:%S GMT')
|
44
|
+
def digest(str)
|
45
|
+
Digest::MD5.hexdigest(str)
|
51
46
|
end
|
52
47
|
end
|
53
48
|
|