wovnrb 3.3.1 → 3.6.0

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -0
  3. data/README.en.md +30 -13
  4. data/Rakefile +0 -1
  5. data/build.sh +7 -0
  6. data/docker/nginx/Dockerfile +18 -0
  7. data/docker/nginx/README.md +13 -0
  8. data/docker/nginx/build.sh +8 -0
  9. data/docker/nginx/scripts/configure_sshd.sh +25 -0
  10. data/docker/nginx/scripts/startup.sh +10 -0
  11. data/docker/nginx/wovnrb.conf +19 -0
  12. data/docker/rails/Dockerfile +9 -0
  13. data/docker/rails/Dockerfile.ECS +17 -0
  14. data/docker/rails/TestSite/Gemfile +0 -2
  15. data/docker/rails/TestSite/app/controllers/custom_response_controller.rb +1 -1
  16. data/docker/rails/TestSite/config/environments/development.rb +2 -0
  17. data/docker/rails/TestSite/config/environments/production.rb +2 -0
  18. data/docker/rails/TestSite/config/environments/test.rb +2 -0
  19. data/docker/rails/TestSite/public/index.html +1 -1
  20. data/docker/rails/TestSite/start.sh +2 -12
  21. data/docker/rails/TestSite/start_rails.sh +9 -0
  22. data/docker/rails/TestSite/yarn.lock +6 -6
  23. data/docker/scripts/jenkins/build.sh +45 -0
  24. data/docker/scripts/jenkins/tag_and_push_image.sh +30 -0
  25. data/docker/scripts/jenkins/taskdef.json +104 -0
  26. data/docker/scripts/jenkins/taskdef.json.bak +99 -0
  27. data/lib/wovnrb/api_translator.rb +19 -19
  28. data/lib/wovnrb/headers.rb +23 -6
  29. data/lib/wovnrb/helpers/nokogumbo_helper.rb +1 -1
  30. data/lib/wovnrb/lang.rb +3 -3
  31. data/lib/wovnrb/services/html_converter.rb +21 -1
  32. data/lib/wovnrb/services/url.rb +136 -0
  33. data/lib/wovnrb/store.rb +9 -3
  34. data/lib/wovnrb/url_language_switcher.rb +124 -0
  35. data/lib/wovnrb/version.rb +1 -1
  36. data/lib/wovnrb.rb +6 -4
  37. data/test/lib/api_translator_test.rb +66 -19
  38. data/test/lib/services/html_converter_test.rb +212 -39
  39. data/test/lib/services/url_test.rb +308 -0
  40. data/test/lib/url_language_switcher_test.rb +798 -0
  41. data/test/lib/wovnrb_test.rb +2 -1
  42. data/test/test_helper.rb +5 -2
  43. data/wovnrb.gemspec +3 -2
  44. metadata +42 -28
@@ -256,7 +256,8 @@ HTML
256
256
  store, headers = store_headers_factory(subdomain, original_lang)
257
257
  if api_expected
258
258
  dom = Wovnrb::Helpers::NokogumboHelper.parse_html(body)
259
- converter = Wovnrb::HtmlConverter.new(dom, store, headers)
259
+ url_lang_switcher = Wovnrb::UrlLanguageSwitcher.new(store)
260
+ converter = Wovnrb::HtmlConverter.new(dom, store, headers, url_lang_switcher)
260
261
  apified_body, = converter.build_api_compatible_html
261
262
  mock_translation_api_response(apified_body, expected_body)
262
263
  end
data/test/test_helper.rb CHANGED
@@ -14,7 +14,7 @@ SimpleCov.start do
14
14
  track_files 'lib/**/*.rb'
15
15
  end
16
16
 
17
- require 'nokogumbo'
17
+ require 'nokogiri'
18
18
  require 'rack'
19
19
  require 'minitest/autorun'
20
20
  require 'mocha/minitest'
@@ -30,9 +30,11 @@ require 'wovnrb/store'
30
30
  require 'wovnrb/helpers/nokogumbo_helper'
31
31
  require 'wovnrb/services/html_converter'
32
32
  require 'wovnrb/services/html_replace_marker'
33
+ require 'wovnrb/url_language_switcher'
34
+ require 'wovnrb/services/url'
33
35
 
34
36
  module Wovnrb
35
- class WovnMiniTest < Minitest::Test
37
+ class WovnMiniTest < ActiveSupport::TestCase
36
38
  def before_setup
37
39
  super
38
40
  Wovnrb::Store.instance.reset
@@ -81,6 +83,7 @@ module Wovnrb
81
83
  env['SERVER_NAME'] = 'wovn.io'
82
84
  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
85
  env['HTTP_ACCEPT_LANGUAGE'] = 'ja,en-US;q=0.8,en;q=0.6'
86
+ 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
87
  env['ORIGINAL_FULLPATH'] = '/dashboard?param=val&hey=you'
85
88
  # env['HTTP_REFERER'] =
86
89
  env['REQUEST_PATH'] = '/dashboard'
data/wovnrb.gemspec CHANGED
@@ -12,6 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.homepage = 'https://wovn.io'
13
13
  spec.license = 'MIT'
14
14
  spec.required_ruby_version = '>= 2.5'
15
+ spec.metadata['rubygems_mfa_required'] = 'true'
15
16
 
16
17
  files = `git ls-files -z`.split("\x0")
17
18
  files.delete('BEFORE_PUSHING')
@@ -23,8 +24,7 @@ Gem::Specification.new do |spec|
23
24
  spec.add_dependency 'activesupport'
24
25
  spec.add_dependency 'addressable'
25
26
  spec.add_dependency 'lz4-ruby'
26
- spec.add_dependency 'nokogiri', '>= 1.8.1', '<= 1.11'
27
- spec.add_dependency 'nokogumbo', '>= 1.4.0', '< 2.0.0'
27
+ spec.add_dependency 'nokogiri', '>= 1.12', '<2'
28
28
  spec.add_dependency 'rack'
29
29
 
30
30
  spec.add_development_dependency 'bundler', '>= 1.7'
@@ -45,6 +45,7 @@ Gem::Specification.new do |spec|
45
45
 
46
46
  spec.add_development_dependency 'rake-compiler'
47
47
  spec.add_development_dependency 'rubocop'
48
+ spec.add_development_dependency 'rubocop-performance'
48
49
  spec.add_development_dependency 'timecop'
49
50
 
50
51
  # NOTE; it need to use webmock 2.3.2 for avoiding error when we use ruby 2.4.x.
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.3.1
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wovn Technologies, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-22 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -58,40 +58,20 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.8.1
62
- - - "<="
63
- - !ruby/object:Gem::Version
64
- version: '1.11'
65
- type: :runtime
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: 1.8.1
72
- - - "<="
73
- - !ruby/object:Gem::Version
74
- version: '1.11'
75
- - !ruby/object:Gem::Dependency
76
- name: nokogumbo
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: 1.4.0
61
+ version: '1.12'
82
62
  - - "<"
83
63
  - !ruby/object:Gem::Version
84
- version: 2.0.0
64
+ version: '2'
85
65
  type: :runtime
86
66
  prerelease: false
87
67
  version_requirements: !ruby/object:Gem::Requirement
88
68
  requirements:
89
69
  - - ">="
90
70
  - !ruby/object:Gem::Version
91
- version: 1.4.0
71
+ version: '1.12'
92
72
  - - "<"
93
73
  - !ruby/object:Gem::Version
94
- version: 2.0.0
74
+ version: '2'
95
75
  - !ruby/object:Gem::Dependency
96
76
  name: rack
97
77
  requirement: !ruby/object:Gem::Requirement
@@ -344,6 +324,20 @@ dependencies:
344
324
  - - ">="
345
325
  - !ruby/object:Gem::Version
346
326
  version: '0'
327
+ - !ruby/object:Gem::Dependency
328
+ name: rubocop-performance
329
+ requirement: !ruby/object:Gem::Requirement
330
+ requirements:
331
+ - - ">="
332
+ - !ruby/object:Gem::Version
333
+ version: '0'
334
+ type: :development
335
+ prerelease: false
336
+ version_requirements: !ruby/object:Gem::Requirement
337
+ requirements:
338
+ - - ">="
339
+ - !ruby/object:Gem::Version
340
+ version: '0'
347
341
  - !ruby/object:Gem::Dependency
348
342
  name: timecop
349
343
  requirement: !ruby/object:Gem::Requirement
@@ -418,8 +412,16 @@ files:
418
412
  - README.ja.md
419
413
  - README.md
420
414
  - Rakefile
415
+ - build.sh
421
416
  - docker/docker-compose.yml
417
+ - docker/nginx/Dockerfile
418
+ - docker/nginx/README.md
419
+ - docker/nginx/build.sh
420
+ - docker/nginx/scripts/configure_sshd.sh
421
+ - docker/nginx/scripts/startup.sh
422
+ - docker/nginx/wovnrb.conf
422
423
  - docker/rails/Dockerfile
424
+ - docker/rails/Dockerfile.ECS
423
425
  - docker/rails/TestSite/.browserslistrc
424
426
  - docker/rails/TestSite/.gitignore
425
427
  - docker/rails/TestSite/Gemfile
@@ -506,6 +508,7 @@ files:
506
508
  - docker/rails/TestSite/public/testpage.html
507
509
  - docker/rails/TestSite/public/wovn_index.html
508
510
  - docker/rails/TestSite/start.sh
511
+ - docker/rails/TestSite/start_rails.sh
509
512
  - docker/rails/TestSite/storage/.keep
510
513
  - docker/rails/TestSite/test/application_system_test_case.rb
511
514
  - docker/rails/TestSite/test/channels/application_cable/connection_test.rb
@@ -521,6 +524,10 @@ files:
521
524
  - docker/rails/TestSite/test/system/.keep
522
525
  - docker/rails/TestSite/test/test_helper.rb
523
526
  - docker/rails/TestSite/yarn.lock
527
+ - docker/scripts/jenkins/build.sh
528
+ - docker/scripts/jenkins/tag_and_push_image.sh
529
+ - docker/scripts/jenkins/taskdef.json
530
+ - docker/scripts/jenkins/taskdef.json.bak
524
531
  - lib/wovnrb.rb
525
532
  - lib/wovnrb/api_translator.rb
526
533
  - lib/wovnrb/headers.rb
@@ -530,9 +537,11 @@ files:
530
537
  - lib/wovnrb/services/glob.rb
531
538
  - lib/wovnrb/services/html_converter.rb
532
539
  - lib/wovnrb/services/html_replace_marker.rb
540
+ - lib/wovnrb/services/url.rb
533
541
  - lib/wovnrb/services/wovn_logger.rb
534
542
  - lib/wovnrb/settings.rb
535
543
  - lib/wovnrb/store.rb
544
+ - lib/wovnrb/url_language_switcher.rb
536
545
  - lib/wovnrb/version.rb
537
546
  - makefile
538
547
  - test/fixtures/html/test.html
@@ -543,15 +552,18 @@ files:
543
552
  - test/lib/services/glob_test.rb
544
553
  - test/lib/services/html_converter_test.rb
545
554
  - test/lib/services/html_replace_marker_test.rb
555
+ - test/lib/services/url_test.rb
546
556
  - test/lib/services/wovn_logger_test.rb
547
557
  - test/lib/store_test.rb
558
+ - test/lib/url_language_switcher_test.rb
548
559
  - test/lib/wovnrb_test.rb
549
560
  - test/test_helper.rb
550
561
  - wovnrb.gemspec
551
562
  homepage: https://wovn.io
552
563
  licenses:
553
564
  - MIT
554
- metadata: {}
565
+ metadata:
566
+ rubygems_mfa_required: 'true'
555
567
  post_install_message:
556
568
  rdoc_options: []
557
569
  require_paths:
@@ -567,7 +579,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
567
579
  - !ruby/object:Gem::Version
568
580
  version: '0'
569
581
  requirements: []
570
- rubygems_version: 3.0.3
582
+ rubygems_version: 3.1.4
571
583
  signing_key:
572
584
  specification_version: 4
573
585
  summary: Gem for WOVN.io
@@ -580,7 +592,9 @@ test_files:
580
592
  - test/lib/services/glob_test.rb
581
593
  - test/lib/services/html_converter_test.rb
582
594
  - test/lib/services/html_replace_marker_test.rb
595
+ - test/lib/services/url_test.rb
583
596
  - test/lib/services/wovn_logger_test.rb
584
597
  - test/lib/store_test.rb
598
+ - test/lib/url_language_switcher_test.rb
585
599
  - test/lib/wovnrb_test.rb
586
600
  - test/test_helper.rb