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 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