wovnrb 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/wovnrb.rb +6 -5
- data/lib/wovnrb/version.rb +1 -1
- data/test/lib/wovnrb_test.rb +29 -19
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3f2e2b02c2985d2ebf1052ebb45b5eda33a70af0335ce11c899f67f7fb1bfce1
|
4
|
+
data.tar.gz: 2c6c064429a111f33accae6f8e7202dcd7b777fecb69ce8c310a07d18aff6dcd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a07caf9ed2b1f727a60770467dc7c51659e0f5591665d5e22dc89c5f3d3fb8f01e96703114cd434efb1a1bac265dc17deafb184ea9b4f515ec412e1683ccc40
|
7
|
+
data.tar.gz: d38c3e5bb5b5b2ea017569b61d2fc5f4f9c2a8af6af1435d30d3d90f36a49589906f769922ae9465609ec81137b77ba2e53c8ac9c8c04a40c22d1f5881d621ba
|
data/lib/wovnrb.rb
CHANGED
@@ -67,10 +67,6 @@ module Wovnrb
|
|
67
67
|
api_data = ApiData.new(headers.redis_url, @store)
|
68
68
|
values = api_data.get_data
|
69
69
|
|
70
|
-
unless have_data?(values)
|
71
|
-
return output(headers, status, res_headers, body)
|
72
|
-
end
|
73
|
-
|
74
70
|
url = {
|
75
71
|
:protocol => headers.protocol,
|
76
72
|
:host => headers.host,
|
@@ -110,7 +106,12 @@ module Wovnrb
|
|
110
106
|
next
|
111
107
|
end
|
112
108
|
|
113
|
-
|
109
|
+
if have_data?(values)
|
110
|
+
output = lang.switch_dom_lang(d, @store, values, url, headers)
|
111
|
+
else
|
112
|
+
ScriptReplacer.new(@store).replace(d, lang)
|
113
|
+
output = d.to_html
|
114
|
+
end
|
114
115
|
put_back_noscripts!(output, noscripts)
|
115
116
|
new_body.push(output)
|
116
117
|
end
|
data/lib/wovnrb/version.rb
CHANGED
data/test/lib/wovnrb_test.rb
CHANGED
@@ -120,25 +120,6 @@ class WovnrbTest < Minitest::Test
|
|
120
120
|
assert_requested(stub, :times => 0)
|
121
121
|
end
|
122
122
|
|
123
|
-
def test_request_to_not_published_page
|
124
|
-
settings = Wovnrb.get_settings
|
125
|
-
default_token = 'token0'
|
126
|
-
request_token = 'token1'
|
127
|
-
settings['project_token'] = default_token
|
128
|
-
url = 'wovn.io/dashboard'
|
129
|
-
stub = stub_request(:get, "#{settings['api_url']}?token=#{request_token}&url=#{url}").
|
130
|
-
to_return(:body => '{"code":423,"message":"Page is not published"}', status: 423)
|
131
|
-
|
132
|
-
app = get_app(:params => {'wovn_token' => request_token})
|
133
|
-
i = Wovnrb::Interceptor.new(app, settings)
|
134
|
-
env = Wovnrb.get_env
|
135
|
-
i.stub(:switch_lang, ->{raise 'must not called'}) do
|
136
|
-
i.call(env)
|
137
|
-
end
|
138
|
-
|
139
|
-
assert_requested(stub, :times => 1)
|
140
|
-
end
|
141
|
-
|
142
123
|
def test_switch_lang
|
143
124
|
i = Wovnrb::Interceptor.new(get_app)
|
144
125
|
h = Wovnrb::Headers.new(Wovnrb.get_env('url' => 'http://page.com'), Wovnrb.get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
|
@@ -165,6 +146,30 @@ class WovnrbTest < Minitest::Test
|
|
165
146
|
assert_equal([expected_body], swapped_body)
|
166
147
|
end
|
167
148
|
|
149
|
+
def test_switch_lang_missing_values
|
150
|
+
i = Wovnrb::Interceptor.new(get_app)
|
151
|
+
h = Wovnrb::Headers.new(Wovnrb.get_env('url' => 'http://page.com'), Wovnrb.get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
|
152
|
+
body = "<html><body><h1>Mr. Belvedere Fan Club</h1>
|
153
|
+
<div><p>Hello</p></div>
|
154
|
+
</body></html>"
|
155
|
+
values = generate_missing_values
|
156
|
+
url = h.url
|
157
|
+
swapped_body = i.switch_lang([body], values, url, 'ja', h)
|
158
|
+
|
159
|
+
expected_body = "<html>
|
160
|
+
<head>
|
161
|
+
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
|
162
|
+
<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&langCodeAliases={}&version=1.0.5\"> </script>
|
163
|
+
</head>
|
164
|
+
<body>
|
165
|
+
<h1>Mr. Belvedere Fan Club</h1>
|
166
|
+
<div><p>Hello</p></div>
|
167
|
+
</body>
|
168
|
+
</html>
|
169
|
+
"
|
170
|
+
assert_equal([expected_body], swapped_body)
|
171
|
+
end
|
172
|
+
|
168
173
|
def test_switch_lang_ignores_amp
|
169
174
|
interceptor = Wovnrb::Interceptor.new(get_app)
|
170
175
|
headers = Wovnrb::Headers.new(Wovnrb.get_env('url' => 'http://page.com'), Wovnrb.get_settings('url_pattern' => 'subdomain', 'url_pattern_reg' => '^(?<lang>[^.]+).'))
|
@@ -378,6 +383,11 @@ HTML
|
|
378
383
|
return values
|
379
384
|
end
|
380
385
|
|
386
|
+
def generate_missing_values
|
387
|
+
# 'values' will be an empty object whenever API request has status != 200
|
388
|
+
return {}
|
389
|
+
end
|
390
|
+
|
381
391
|
class RackMock
|
382
392
|
attr_accessor :params
|
383
393
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wovnrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Sandford
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-07-
|
12
|
+
date: 2018-07-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogumbo
|
@@ -412,7 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
412
412
|
version: '0'
|
413
413
|
requirements: []
|
414
414
|
rubyforge_project:
|
415
|
-
rubygems_version: 2.
|
415
|
+
rubygems_version: 2.7.7
|
416
416
|
signing_key:
|
417
417
|
specification_version: 4
|
418
418
|
summary: Gem for WOVN.io
|