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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 97940e31fd66753342c30d8b2225f32bda933e84
4
- data.tar.gz: 14e91e5ae42216bd25447c7a214965b2d82ebaac
2
+ SHA256:
3
+ metadata.gz: 3f2e2b02c2985d2ebf1052ebb45b5eda33a70af0335ce11c899f67f7fb1bfce1
4
+ data.tar.gz: 2c6c064429a111f33accae6f8e7202dcd7b777fecb69ce8c310a07d18aff6dcd
5
5
  SHA512:
6
- metadata.gz: 5dc3abc233e2df40f58b7e1817a632b39f2fc4396eed73dc1e38a0c29be801277347eb0fb35eee8606831fa28ed0a877fcdf035faabd998db7ca65986abc9186
7
- data.tar.gz: c11e9ee8520639c7743b0f23def23c33380567589598266df46117b4fcb25fdd533fdddc1f24992acb32463356618407dc6a4e3b0ad5180cae7af309820088d4
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
- output = lang.switch_dom_lang(d, @store, values, url, headers)
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
@@ -1,3 +1,3 @@
1
1
  module Wovnrb
2
- VERSION = "1.0.5"
2
+ VERSION = "1.0.6"
3
3
  end
@@ -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=&amp;backend=true&amp;currentLang=ja&amp;defaultLang=en&amp;urlPattern=path&amp;langCodeAliases={}&amp;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.5
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-17 00:00:00.000000000 Z
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.2.0
415
+ rubygems_version: 2.7.7
416
416
  signing_key:
417
417
  specification_version: 4
418
418
  summary: Gem for WOVN.io