wovnrb 1.0.5 → 1.0.6
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 +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
|