wovnrb 3.5.0 → 3.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -0
- data/{makefile → Makefile} +0 -0
- data/README.en.md +30 -13
- data/build.sh +7 -0
- data/docker/nginx/Dockerfile +18 -0
- data/docker/nginx/README.md +13 -0
- data/docker/nginx/build.sh +8 -0
- data/docker/nginx/scripts/configure_sshd.sh +25 -0
- data/docker/nginx/scripts/startup.sh +10 -0
- data/docker/nginx/wovnrb.conf +19 -0
- data/docker/rails/Dockerfile +11 -2
- data/docker/rails/Dockerfile.ECS +17 -0
- data/docker/rails/TestSite/Gemfile +1 -3
- data/docker/rails/TestSite/app/controllers/custom_response_controller.rb +1 -1
- data/docker/rails/TestSite/config/environments/development.rb +2 -0
- data/docker/rails/TestSite/config/environments/production.rb +2 -0
- data/docker/rails/TestSite/config/environments/test.rb +2 -0
- data/docker/rails/TestSite/package.json +3 -3
- data/docker/rails/TestSite/public/index.html +1 -1
- data/docker/rails/TestSite/start.sh +2 -11
- data/docker/rails/TestSite/start_rails.sh +9 -0
- data/docker/rails/TestSite/yarn.lock +1150 -1466
- data/docker/scripts/jenkins/build.sh +45 -0
- data/docker/scripts/jenkins/tag_and_push_image.sh +30 -0
- data/docker/scripts/jenkins/taskdef.json +104 -0
- data/docker/scripts/jenkins/taskdef.json.bak +99 -0
- data/lib/wovnrb/api_translator.rb +6 -1
- data/lib/wovnrb/headers.rb +40 -66
- data/lib/wovnrb/services/html_converter.rb +17 -1
- data/lib/wovnrb/services/url.rb +136 -0
- data/lib/wovnrb/store.rb +9 -3
- data/lib/wovnrb/url_language_switcher.rb +148 -0
- data/lib/wovnrb/version.rb +1 -1
- data/lib/wovnrb.rb +5 -2
- data/test/lib/api_translator_test.rb +49 -2
- data/test/lib/headers_test.rb +659 -6223
- data/test/lib/lang_test.rb +0 -265
- data/test/lib/services/html_converter_test.rb +219 -40
- data/test/lib/services/url_test.rb +308 -0
- data/test/lib/store_test.rb +1 -1
- data/test/lib/url_language_switcher_test.rb +946 -0
- data/test/lib/wovnrb_test.rb +15 -3
- data/test/test_helper.rb +15 -4
- data/wovnrb.gemspec +0 -1
- metadata +25 -20
data/test/lib/wovnrb_test.rb
CHANGED
@@ -148,6 +148,8 @@ HTML
|
|
148
148
|
'rack.input' => '',
|
149
149
|
'rack.request.query_string' => '',
|
150
150
|
'rack.request.query_hash' => {},
|
151
|
+
'rack.request.form_input' => '',
|
152
|
+
'rack.request.form_hash' => {},
|
151
153
|
'HTTP_HOST' => 'test.com',
|
152
154
|
'REQUEST_URI' => '/en/not_ignored',
|
153
155
|
'PATH_INFO' => '/en/not_ignored'
|
@@ -168,6 +170,8 @@ HTML
|
|
168
170
|
'rack.input' => '',
|
169
171
|
'rack.request.query_string' => '',
|
170
172
|
'rack.request.query_hash' => {},
|
173
|
+
'rack.request.form_input' => '',
|
174
|
+
'rack.request.form_hash' => {},
|
171
175
|
'HTTP_HOST' => 'test.com',
|
172
176
|
'REQUEST_URI' => '/ignored',
|
173
177
|
'PATH_INFO' => '/ignored'
|
@@ -188,6 +192,8 @@ HTML
|
|
188
192
|
'rack.input' => '',
|
189
193
|
'rack.request.query_string' => '',
|
190
194
|
'rack.request.query_hash' => {},
|
195
|
+
'rack.request.form_input' => '',
|
196
|
+
'rack.request.form_hash' => {},
|
191
197
|
'HTTP_HOST' => 'test.com',
|
192
198
|
'REQUEST_URI' => '/en/ignored',
|
193
199
|
'PATH_INFO' => '/en/ignored'
|
@@ -208,6 +214,8 @@ HTML
|
|
208
214
|
'rack.input' => '',
|
209
215
|
'rack.request.query_string' => '',
|
210
216
|
'rack.request.query_hash' => {},
|
217
|
+
'rack.request.form_input' => '',
|
218
|
+
'rack.request.form_hash' => {},
|
211
219
|
'HTTP_HOST' => 'test.com',
|
212
220
|
'REQUEST_URI' => '/ignored',
|
213
221
|
'PATH_INFO' => '/ignored'
|
@@ -228,6 +236,8 @@ HTML
|
|
228
236
|
'rack.input' => '',
|
229
237
|
'rack.request.query_string' => '',
|
230
238
|
'rack.request.query_hash' => {},
|
239
|
+
'rack.request.form_input' => '',
|
240
|
+
'rack.request.form_hash' => {},
|
231
241
|
'HTTP_HOST' => 'test.com',
|
232
242
|
'REQUEST_URI' => '/en/ignored',
|
233
243
|
'PATH_INFO' => '/en/ignored'
|
@@ -256,7 +266,8 @@ HTML
|
|
256
266
|
store, headers = store_headers_factory(subdomain, original_lang)
|
257
267
|
if api_expected
|
258
268
|
dom = Wovnrb::Helpers::NokogumboHelper.parse_html(body)
|
259
|
-
|
269
|
+
url_lang_switcher = Wovnrb::UrlLanguageSwitcher.new(store)
|
270
|
+
converter = Wovnrb::HtmlConverter.new(dom, store, headers, url_lang_switcher)
|
260
271
|
apified_body, = converter.build_api_compatible_html
|
261
272
|
mock_translation_api_response(apified_body, expected_body)
|
262
273
|
end
|
@@ -272,7 +283,7 @@ HTML
|
|
272
283
|
'custom_lang_aliases' => {},
|
273
284
|
'default_lang' => original_lang,
|
274
285
|
'url_pattern' => 'subdomain',
|
275
|
-
'url_pattern_reg' => '^(?<lang>[^.]+)
|
286
|
+
'url_pattern_reg' => '^(?<lang>[^.]+)\.'
|
276
287
|
}
|
277
288
|
|
278
289
|
store = Wovnrb::Store.instance
|
@@ -280,7 +291,8 @@ HTML
|
|
280
291
|
|
281
292
|
headers = Wovnrb::Headers.new(
|
282
293
|
Wovnrb.get_env('url' => "http://#{subdomain}page.com"),
|
283
|
-
Wovnrb.get_settings(settings)
|
294
|
+
Wovnrb.get_settings(settings),
|
295
|
+
Wovnrb::UrlLanguageSwitcher.new(store)
|
284
296
|
)
|
285
297
|
|
286
298
|
[store, headers]
|
data/test/test_helper.rb
CHANGED
@@ -2,8 +2,9 @@ require 'simplecov'
|
|
2
2
|
require 'pry'
|
3
3
|
|
4
4
|
# save to CircleCI's artifacts directory if we're on CircleCI
|
5
|
-
|
6
|
-
|
5
|
+
circle_artifacts = ENV.fetch('CIRCLE_ARTIFACTS', nil)
|
6
|
+
if circle_artifacts
|
7
|
+
dir = File.join(circle_artifacts, 'coverage')
|
7
8
|
SimpleCov.coverage_dir(dir)
|
8
9
|
end
|
9
10
|
|
@@ -30,9 +31,11 @@ require 'wovnrb/store'
|
|
30
31
|
require 'wovnrb/helpers/nokogumbo_helper'
|
31
32
|
require 'wovnrb/services/html_converter'
|
32
33
|
require 'wovnrb/services/html_replace_marker'
|
34
|
+
require 'wovnrb/url_language_switcher'
|
35
|
+
require 'wovnrb/services/url'
|
33
36
|
|
34
37
|
module Wovnrb
|
35
|
-
class WovnMiniTest <
|
38
|
+
class WovnMiniTest < ActiveSupport::TestCase
|
36
39
|
def before_setup
|
37
40
|
super
|
38
41
|
Wovnrb::Store.instance.reset
|
@@ -73,6 +76,13 @@ module Wovnrb
|
|
73
76
|
Wovnrb::Settings.new.merge(settings.merge(options))
|
74
77
|
end
|
75
78
|
|
79
|
+
def get_store(options = {})
|
80
|
+
settings = get_settings(options)
|
81
|
+
store = Store.instance
|
82
|
+
store.update_settings(settings)
|
83
|
+
store
|
84
|
+
end
|
85
|
+
|
76
86
|
def get_env(options = {})
|
77
87
|
env = {}
|
78
88
|
env['rack.url_scheme'] = 'http'
|
@@ -81,6 +91,7 @@ module Wovnrb
|
|
81
91
|
env['SERVER_NAME'] = 'wovn.io'
|
82
92
|
env['HTTP_COOKIE'] = 'olfsk=olfsk021093478426337242; hblid=KB8AAMzxzu2DSxnB4X7BJ26rBGVeF0yJ; optimizelyEndUserId=oeu1426233718869r0.5398541854228824; __zlcmid=UFeZqrVo6Mv3Yl; wovn_selected_lang=en; optimizelySegments=%7B%7D; optimizelyBuckets=%7B%7D; _equalizer_session=eDFwM3M2QUZJZFhoby9JZlArckcvSUJwNFRINXhUeUxtNnltQXZhV0tqdGhZQjJMZ01URnZTK05ydFVWYmM3U0dtMVN0M0Z0UnNDVG8vdUNDTUtPc21jY0FHREgrZ05CUnBTb0hyUlkvYlBWQVhQR3RZdnhjMWsrRW5rOVp1Z3V3bkgyd3NpSlRZQWU1dlZvNmM1THp6aUZVeE83Y1pWWENRNTBUVFIrV05WeTdDMlFlem1tUzdxaEtndFZBd2dtUjU2ak5EUmJPa3RWWmMyT1pSVWdMTm8zOVZhUWhHdGQ3L1c5bm91RmNSdFRrcC90Tml4N2t3ZWlBaDRya2lLT1I0S0J2TURhUWl6Uk5rOTQ4Y1MwM3VKYnlLMUYraEt5clhRdFd1eGdEWXdZd3pFbWQvdE9vQndhdDVQbXNLcHBURm9CbnZKenU2YnNXRFdqRVl0MVV3bmRyYjhvMDExcGtUVU9tK1lqUGswM3p6M05tbVRnTjE3TUl5cEdpTTZ4a2gray8xK0FvTC9wUDVka1JSeE5GM1prZmRjWDdyVzRhWW5uS2Mxc1BxOEVVTTZFS3N5bTlVN2p5eE5YSjNZWGI2UHd3Vzc0bDM5QjIwL0l5Mm85NmQyWFAwdVQ3ZzJYYk1QOHY2NVJpY2c9LS1KNU96eHVycVJxSDJMbEc4Rm9KVXpBPT0%3D--17e47555d692fb9cde20ef78a09a5eabbf805bb3; mp_a0452663eb7abb7dfa9c94007ebb0090_mixpanel=%7B%22distinct_id%22%3A%20%2253ed9ffa4a65662e37000000%22%2C%22%24initial_referrer%22%3A%20%22http%3A%2F%2Fp.dev-wovn.io%3A8080%2Fhttp%3A%2F%2Fdev-wovn.io%3A3000%22%2C%22%24initial_referring_domain%22%3A%20%22p.dev-wovn.io%3A8080%22%2C%22__mps%22%3A%20%7B%7D%2C%22__mpso%22%3A%20%7B%7D%2C%22__mpa%22%3A%20%7B%7D%2C%22__mpu%22%3A%20%7B%7D%2C%22__mpap%22%3A%20%5B%5D%7D'
|
83
93
|
env['HTTP_ACCEPT_LANGUAGE'] = 'ja,en-US;q=0.8,en;q=0.6'
|
94
|
+
env['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
|
84
95
|
env['ORIGINAL_FULLPATH'] = '/dashboard?param=val&hey=you'
|
85
96
|
# env['HTTP_REFERER'] =
|
86
97
|
env['REQUEST_PATH'] = '/dashboard'
|
@@ -113,7 +124,7 @@ module Wovnrb
|
|
113
124
|
to_dom("<html><body>#{inner_html}</body></html>")
|
114
125
|
end
|
115
126
|
|
116
|
-
module_function :get_env, :get_settings, :to_dom, :get_dom
|
127
|
+
module_function :get_env, :get_settings, :to_dom, :get_dom, :get_store
|
117
128
|
|
118
129
|
def build_api_data(custom_page_values: {}, custom_project_data: {})
|
119
130
|
page_values = default_page_values.merge(custom_page_values)
|
data/wovnrb.gemspec
CHANGED
@@ -18,7 +18,6 @@ Gem::Specification.new do |spec|
|
|
18
18
|
files.delete('BEFORE_PUSHING')
|
19
19
|
spec.files = files
|
20
20
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
21
|
spec.require_paths = ['lib']
|
23
22
|
|
24
23
|
spec.add_dependency 'activesupport'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wovnrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wovn Technologies, Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -407,13 +407,22 @@ files:
|
|
407
407
|
- ".rubocop_todo.yml"
|
408
408
|
- Gemfile
|
409
409
|
- LICENSE.txt
|
410
|
+
- Makefile
|
410
411
|
- PULL_REQUEST_TEMPLATE
|
411
412
|
- README.en.md
|
412
413
|
- README.ja.md
|
413
414
|
- README.md
|
414
415
|
- Rakefile
|
416
|
+
- build.sh
|
415
417
|
- docker/docker-compose.yml
|
418
|
+
- docker/nginx/Dockerfile
|
419
|
+
- docker/nginx/README.md
|
420
|
+
- docker/nginx/build.sh
|
421
|
+
- docker/nginx/scripts/configure_sshd.sh
|
422
|
+
- docker/nginx/scripts/startup.sh
|
423
|
+
- docker/nginx/wovnrb.conf
|
416
424
|
- docker/rails/Dockerfile
|
425
|
+
- docker/rails/Dockerfile.ECS
|
417
426
|
- docker/rails/TestSite/.browserslistrc
|
418
427
|
- docker/rails/TestSite/.gitignore
|
419
428
|
- docker/rails/TestSite/Gemfile
|
@@ -500,6 +509,7 @@ files:
|
|
500
509
|
- docker/rails/TestSite/public/testpage.html
|
501
510
|
- docker/rails/TestSite/public/wovn_index.html
|
502
511
|
- docker/rails/TestSite/start.sh
|
512
|
+
- docker/rails/TestSite/start_rails.sh
|
503
513
|
- docker/rails/TestSite/storage/.keep
|
504
514
|
- docker/rails/TestSite/test/application_system_test_case.rb
|
505
515
|
- docker/rails/TestSite/test/channels/application_cable/connection_test.rb
|
@@ -515,6 +525,10 @@ files:
|
|
515
525
|
- docker/rails/TestSite/test/system/.keep
|
516
526
|
- docker/rails/TestSite/test/test_helper.rb
|
517
527
|
- docker/rails/TestSite/yarn.lock
|
528
|
+
- docker/scripts/jenkins/build.sh
|
529
|
+
- docker/scripts/jenkins/tag_and_push_image.sh
|
530
|
+
- docker/scripts/jenkins/taskdef.json
|
531
|
+
- docker/scripts/jenkins/taskdef.json.bak
|
518
532
|
- lib/wovnrb.rb
|
519
533
|
- lib/wovnrb/api_translator.rb
|
520
534
|
- lib/wovnrb/headers.rb
|
@@ -524,11 +538,12 @@ files:
|
|
524
538
|
- lib/wovnrb/services/glob.rb
|
525
539
|
- lib/wovnrb/services/html_converter.rb
|
526
540
|
- lib/wovnrb/services/html_replace_marker.rb
|
541
|
+
- lib/wovnrb/services/url.rb
|
527
542
|
- lib/wovnrb/services/wovn_logger.rb
|
528
543
|
- lib/wovnrb/settings.rb
|
529
544
|
- lib/wovnrb/store.rb
|
545
|
+
- lib/wovnrb/url_language_switcher.rb
|
530
546
|
- lib/wovnrb/version.rb
|
531
|
-
- makefile
|
532
547
|
- test/fixtures/html/test.html
|
533
548
|
- test/fixtures/html/test_translated.html
|
534
549
|
- test/lib/api_translator_test.rb
|
@@ -537,8 +552,10 @@ files:
|
|
537
552
|
- test/lib/services/glob_test.rb
|
538
553
|
- test/lib/services/html_converter_test.rb
|
539
554
|
- test/lib/services/html_replace_marker_test.rb
|
555
|
+
- test/lib/services/url_test.rb
|
540
556
|
- test/lib/services/wovn_logger_test.rb
|
541
557
|
- test/lib/store_test.rb
|
558
|
+
- test/lib/url_language_switcher_test.rb
|
542
559
|
- test/lib/wovnrb_test.rb
|
543
560
|
- test/test_helper.rb
|
544
561
|
- wovnrb.gemspec
|
@@ -547,7 +564,7 @@ licenses:
|
|
547
564
|
- MIT
|
548
565
|
metadata:
|
549
566
|
rubygems_mfa_required: 'true'
|
550
|
-
post_install_message:
|
567
|
+
post_install_message:
|
551
568
|
rdoc_options: []
|
552
569
|
require_paths:
|
553
570
|
- lib
|
@@ -562,20 +579,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
562
579
|
- !ruby/object:Gem::Version
|
563
580
|
version: '0'
|
564
581
|
requirements: []
|
565
|
-
rubygems_version: 3.
|
566
|
-
signing_key:
|
582
|
+
rubygems_version: 3.1.4
|
583
|
+
signing_key:
|
567
584
|
specification_version: 4
|
568
585
|
summary: Gem for WOVN.io
|
569
|
-
test_files:
|
570
|
-
- test/fixtures/html/test.html
|
571
|
-
- test/fixtures/html/test_translated.html
|
572
|
-
- test/lib/api_translator_test.rb
|
573
|
-
- test/lib/headers_test.rb
|
574
|
-
- test/lib/lang_test.rb
|
575
|
-
- test/lib/services/glob_test.rb
|
576
|
-
- test/lib/services/html_converter_test.rb
|
577
|
-
- test/lib/services/html_replace_marker_test.rb
|
578
|
-
- test/lib/services/wovn_logger_test.rb
|
579
|
-
- test/lib/store_test.rb
|
580
|
-
- test/lib/wovnrb_test.rb
|
581
|
-
- test/test_helper.rb
|
586
|
+
test_files: []
|