wovnrb 3.0.0 → 3.2.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 (131) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +21 -10
  3. data/.rubocop_todo.yml +13 -43
  4. data/Gemfile +0 -5
  5. data/docker/docker-compose.yml +16 -0
  6. data/docker/rails/Dockerfile +6 -0
  7. data/docker/rails/TestSite/.browserslistrc +1 -0
  8. data/docker/rails/TestSite/.gitignore +63 -0
  9. data/docker/rails/TestSite/Gemfile +56 -0
  10. data/docker/rails/TestSite/README.md +24 -0
  11. data/docker/rails/TestSite/Rakefile +6 -0
  12. data/docker/rails/TestSite/app/assets/config/manifest.js +2 -0
  13. data/docker/rails/TestSite/app/assets/images/.keep +0 -0
  14. data/docker/rails/TestSite/app/assets/stylesheets/application.css +15 -0
  15. data/docker/rails/TestSite/app/assets/stylesheets/redirects.scss +3 -0
  16. data/docker/rails/TestSite/app/channels/application_cable/channel.rb +4 -0
  17. data/docker/rails/TestSite/app/channels/application_cable/connection.rb +4 -0
  18. data/docker/rails/TestSite/app/controllers/application_controller.rb +2 -0
  19. data/docker/rails/TestSite/app/controllers/concerns/.keep +0 -0
  20. data/docker/rails/TestSite/app/controllers/custom_response_controller.rb +16 -0
  21. data/docker/rails/TestSite/app/controllers/pages_controller.rb +7 -0
  22. data/docker/rails/TestSite/app/controllers/redirects_controller.rb +5 -0
  23. data/docker/rails/TestSite/app/helpers/application_helper.rb +2 -0
  24. data/docker/rails/TestSite/app/helpers/pages_helper.rb +2 -0
  25. data/docker/rails/TestSite/app/helpers/redirects_helper.rb +2 -0
  26. data/docker/rails/TestSite/app/javascript/channels/consumer.js +6 -0
  27. data/docker/rails/TestSite/app/javascript/channels/index.js +5 -0
  28. data/docker/rails/TestSite/app/javascript/packs/application.js +17 -0
  29. data/docker/rails/TestSite/app/jobs/application_job.rb +7 -0
  30. data/docker/rails/TestSite/app/mailers/application_mailer.rb +4 -0
  31. data/docker/rails/TestSite/app/models/application_record.rb +3 -0
  32. data/docker/rails/TestSite/app/models/concerns/.keep +0 -0
  33. data/docker/rails/TestSite/app/views/layouts/application.html.erb +15 -0
  34. data/docker/rails/TestSite/app/views/layouts/mailer.html.erb +13 -0
  35. data/docker/rails/TestSite/app/views/layouts/mailer.text.erb +1 -0
  36. data/docker/rails/TestSite/babel.config.js +72 -0
  37. data/docker/rails/TestSite/bin/bundle +114 -0
  38. data/docker/rails/TestSite/bin/rails +4 -0
  39. data/docker/rails/TestSite/bin/rake +4 -0
  40. data/docker/rails/TestSite/bin/setup +36 -0
  41. data/docker/rails/TestSite/bin/webpack +18 -0
  42. data/docker/rails/TestSite/bin/webpack-dev-server +18 -0
  43. data/docker/rails/TestSite/bin/yarn +11 -0
  44. data/docker/rails/TestSite/config/application.rb +26 -0
  45. data/docker/rails/TestSite/config/boot.rb +4 -0
  46. data/docker/rails/TestSite/config/cable.yml +10 -0
  47. data/docker/rails/TestSite/config/credentials.yml.enc +1 -0
  48. data/docker/rails/TestSite/config/database.yml +25 -0
  49. data/docker/rails/TestSite/config/environment.rb +5 -0
  50. data/docker/rails/TestSite/config/environments/development.rb +62 -0
  51. data/docker/rails/TestSite/config/environments/production.rb +112 -0
  52. data/docker/rails/TestSite/config/environments/test.rb +49 -0
  53. data/docker/rails/TestSite/config/initializers/application_controller_renderer.rb +8 -0
  54. data/docker/rails/TestSite/config/initializers/assets.rb +14 -0
  55. data/docker/rails/TestSite/config/initializers/backtrace_silencers.rb +7 -0
  56. data/docker/rails/TestSite/config/initializers/content_security_policy.rb +30 -0
  57. data/docker/rails/TestSite/config/initializers/cookies_serializer.rb +5 -0
  58. data/docker/rails/TestSite/config/initializers/filter_parameter_logging.rb +4 -0
  59. data/docker/rails/TestSite/config/initializers/inflections.rb +16 -0
  60. data/docker/rails/TestSite/config/initializers/mime_types.rb +4 -0
  61. data/docker/rails/TestSite/config/initializers/wrap_parameters.rb +14 -0
  62. data/docker/rails/TestSite/config/locales/en.yml +33 -0
  63. data/docker/rails/TestSite/config/puma.rb +38 -0
  64. data/docker/rails/TestSite/config/routes.rb +5 -0
  65. data/docker/rails/TestSite/config/spring.rb +6 -0
  66. data/docker/rails/TestSite/config/storage.yml +34 -0
  67. data/docker/rails/TestSite/config/webpack/development.js +5 -0
  68. data/docker/rails/TestSite/config/webpack/environment.js +3 -0
  69. data/docker/rails/TestSite/config/webpack/production.js +5 -0
  70. data/docker/rails/TestSite/config/webpack/test.js +5 -0
  71. data/docker/rails/TestSite/config/webpacker.yml +96 -0
  72. data/docker/rails/TestSite/config.ru +5 -0
  73. data/docker/rails/TestSite/db/seeds.rb +7 -0
  74. data/docker/rails/TestSite/lib/assets/.keep +0 -0
  75. data/docker/rails/TestSite/lib/tasks/.keep +0 -0
  76. data/docker/rails/TestSite/log/.keep +0 -0
  77. data/docker/rails/TestSite/package.json +15 -0
  78. data/docker/rails/TestSite/postcss.config.js +12 -0
  79. data/docker/rails/TestSite/public/index.html +9 -0
  80. data/docker/rails/TestSite/public/page.html +13 -0
  81. data/docker/rails/TestSite/public/pages/files/plaintext_unicode.txt +204 -0
  82. data/docker/rails/TestSite/public/pages/files/simple_css.css +8 -0
  83. data/docker/rails/TestSite/public/pages/files/simple_javascript.js +2 -0
  84. data/docker/rails/TestSite/public/pages/html5test.html +555 -0
  85. data/docker/rails/TestSite/public/pages/oldhtml.html +335 -0
  86. data/docker/rails/TestSite/public/pages/xhtml.xhtml +726 -0
  87. data/docker/rails/TestSite/public/redirection_target.html +10 -0
  88. data/docker/rails/TestSite/public/testdir/testpage-dir.html +9 -0
  89. data/docker/rails/TestSite/public/testdir/testpage-redirect-destination.html +9 -0
  90. data/docker/rails/TestSite/public/testpage.html +9 -0
  91. data/docker/rails/TestSite/public/wovn_index.html +24 -0
  92. data/docker/rails/TestSite/start.sh +14 -0
  93. data/docker/rails/TestSite/storage/.keep +0 -0
  94. data/docker/rails/TestSite/test/application_system_test_case.rb +5 -0
  95. data/docker/rails/TestSite/test/channels/application_cable/connection_test.rb +11 -0
  96. data/docker/rails/TestSite/test/controllers/.keep +0 -0
  97. data/docker/rails/TestSite/test/controllers/pages_controller_test.rb +7 -0
  98. data/docker/rails/TestSite/test/controllers/redirects_controller_test.rb +7 -0
  99. data/docker/rails/TestSite/test/fixtures/.keep +0 -0
  100. data/docker/rails/TestSite/test/fixtures/files/.keep +0 -0
  101. data/docker/rails/TestSite/test/helpers/.keep +0 -0
  102. data/docker/rails/TestSite/test/integration/.keep +0 -0
  103. data/docker/rails/TestSite/test/mailers/.keep +0 -0
  104. data/docker/rails/TestSite/test/models/.keep +0 -0
  105. data/docker/rails/TestSite/test/system/.keep +0 -0
  106. data/docker/rails/TestSite/test/test_helper.rb +13 -0
  107. data/docker/rails/TestSite/yarn.lock +7642 -0
  108. data/lib/wovnrb/api_translator.rb +5 -3
  109. data/lib/wovnrb/headers.rb +30 -39
  110. data/lib/wovnrb/helpers/nokogumbo_helper.rb +7 -9
  111. data/lib/wovnrb/lang.rb +15 -14
  112. data/lib/wovnrb/railtie.rb +3 -1
  113. data/lib/wovnrb/services/html_converter.rb +8 -8
  114. data/lib/wovnrb/services/wovn_logger.rb +9 -2
  115. data/lib/wovnrb/store.rb +8 -14
  116. data/lib/wovnrb/version.rb +1 -1
  117. data/lib/wovnrb.rb +2 -4
  118. data/makefile +16 -0
  119. data/test/lib/api_translator_test.rb +4 -5
  120. data/test/lib/lang_test.rb +5 -136
  121. data/test/lib/services/html_converter_test.rb +14 -14
  122. data/test/lib/services/wovn_logger_test.rb +5 -3
  123. data/test/lib/store_test.rb +22 -16
  124. data/test/lib/wovnrb_test.rb +16 -16
  125. data/wovnrb.gemspec +5 -4
  126. metadata +120 -18
  127. data/.travis.yml +0 -14
  128. data/lib/wovnrb/text_caches/cache_base.rb +0 -53
  129. data/lib/wovnrb/text_caches/memory_cache.rb +0 -51
  130. data/test/lib/text_caches/cache_base_test.rb +0 -31
  131. data/test/lib/text_caches/memory_cache_test.rb +0 -91
@@ -6,7 +6,7 @@ module Wovnrb
6
6
  converter = prepare_html_converter('<html><body><a class="test">hello</a></body></html>', supported_langs: %w[en vi])
7
7
  converted_html, = converter.build_api_compatible_html
8
8
 
9
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><a class=\"test\">hello</a></body></html>"
9
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><a class=\"test\">hello</a></body></html>"
10
10
  assert_equal(expected_html, converted_html)
11
11
  end
12
12
 
@@ -19,16 +19,16 @@ module Wovnrb
19
19
  converter = prepare_html_converter('<html><body><a class="test">hello</a></body></html>', settings)
20
20
  converted_html, = converter.build_api_compatible_html
21
21
 
22
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=lang&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?lang=vi\"></head><body><a class=\"test\">hello</a></body></html>"
22
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=lang&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?lang=vi\"></head><body><a class=\"test\">hello</a></body></html>"
23
23
  assert_equal(expected_html, converted_html)
24
24
  end
25
25
 
26
26
  def test_build_api_compatible_html_not_fail_for_big_content
27
27
  long_string = 'a' * 60_000
28
- converter = prepare_html_converter('<html><body><p>' + long_string + '</p></body></html>', supported_langs: %w[en vi])
28
+ converter = prepare_html_converter("<html><body><p>#{long_string}</p></body></html>", supported_langs: %w[en vi])
29
29
  converted_html, = converter.build_api_compatible_html
30
30
 
31
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><p>" + long_string + '</p></body></html>'
31
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><p>#{long_string}</p></body></html>"
32
32
  assert_equal(expected_html, converted_html)
33
33
  end
34
34
 
@@ -45,7 +45,7 @@ module Wovnrb
45
45
  converter = prepare_html_converter(html, ignore_class: ['ignore-me'])
46
46
  converted_html, = converter.build_api_compatible_html
47
47
 
48
- expected_convert_html = "<html lang=\"en\"><head><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"fr\" href=\"http://my-site.com/?wovn=fr\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><p>Hello <span wovn-ignore=\"\"><!-- __wovn-backend-ignored-key-0 --></span></p><p></p><p>Hello <span data-wovn-ignore=\"\"><!-- __wovn-backend-ignored-key-1 --></span></p><p></p><div><span class=\"ignore-me\"><!-- __wovn-backend-ignored-key-2 --></span></div><span>Have a nice day!</span></body></html>"
48
+ expected_convert_html = "<html lang=\"en\"><head><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"fr\" href=\"http://my-site.com/?wovn=fr\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><p>Hello <span wovn-ignore=\"\"><!-- __wovn-backend-ignored-key-0 --></span></p><p></p><p>Hello <span data-wovn-ignore=\"\"><!-- __wovn-backend-ignored-key-1 --></span></p><p></p><div><span class=\"ignore-me\"><!-- __wovn-backend-ignored-key-2 --></span></div><span>Have a nice day!</span></body></html>"
49
49
  assert_equal(expected_convert_html, converted_html)
50
50
  end
51
51
 
@@ -62,7 +62,7 @@ module Wovnrb
62
62
  converter = prepare_html_converter(html, ignore_class: [])
63
63
  converted_html, = converter.build_api_compatible_html
64
64
 
65
- expected_convert_html = "<html lang=\"en\"><head><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"fr\" href=\"http://my-site.com/?wovn=fr\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><form action=\"/test\" method=\"POST\"><!-- __wovn-backend-ignored-key-0 --></form></body></html>"
65
+ expected_convert_html = "<html lang=\"en\"><head><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"fr\" href=\"http://my-site.com/?wovn=fr\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><form action=\"/test\" method=\"POST\"><!-- __wovn-backend-ignored-key-0 --></form></body></html>"
66
66
  assert_equal(expected_convert_html, converted_html)
67
67
  end
68
68
 
@@ -81,7 +81,7 @@ module Wovnrb
81
81
 
82
82
  expected_convert_html = [
83
83
  '<html lang="en"><head>',
84
- "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"fr\" href=\"http://my-site.com/?wovn=fr\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body>",
84
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"fr\" href=\"http://my-site.com/?wovn=fr\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body>",
85
85
  '<input id="user-id" type="hidden" value="__wovn-backend-ignored-key-0">',
86
86
  '<input id="password" type="hidden" value="__wovn-backend-ignored-key-1">',
87
87
  '<input id="something" type="hidden" value="__wovn-backend-ignored-key-2">',
@@ -95,7 +95,7 @@ module Wovnrb
95
95
  converter = prepare_html_converter('<html><body><a>hello</a></body></html>', supported_langs: %w[en vi])
96
96
  translated_html = converter.build
97
97
 
98
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><a>hello</a></body></html>"
98
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><a>hello</a></body></html>"
99
99
  assert_equal(expected_html, translated_html)
100
100
  end
101
101
 
@@ -103,7 +103,7 @@ module Wovnrb
103
103
  converter = prepare_html_converter('<html><body><a>hello</a></body></html>', supported_langs: [])
104
104
  translated_html = converter.build
105
105
 
106
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script></head><body><a>hello</a></body></html>"
106
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script></head><body><a>hello</a></body></html>"
107
107
  assert_equal(expected_html, translated_html)
108
108
  end
109
109
 
@@ -111,7 +111,7 @@ module Wovnrb
111
111
  converter = prepare_html_converter('<html><head><title>TITLE</title></head><body><a>hello</a></body></html>', supported_langs: %w[en vi])
112
112
  translated_html = converter.build
113
113
 
114
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><title>TITLE</title><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><a>hello</a></body></html>"
114
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><title>TITLE</title><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body><a>hello</a></body></html>"
115
115
  assert_equal(expected_html, translated_html)
116
116
  end
117
117
 
@@ -119,7 +119,7 @@ module Wovnrb
119
119
  converter = prepare_html_converter('<html>hello<a>world</a></html>', supported_langs: [])
120
120
  translated_html = converter.build
121
121
 
122
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script></head><body>hello<a>world</a></body></html>"
122
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script></head><body>hello<a>world</a></body></html>"
123
123
  assert_equal(expected_html, translated_html)
124
124
  end
125
125
 
@@ -134,7 +134,7 @@ module Wovnrb
134
134
  converter = HtmlConverter.new(dom, store, headers)
135
135
  translated_html = converter.build
136
136
 
137
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body>hello<a>world</a></body></html>"
137
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/?wovn=ja\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/?wovn=vi\"></head><body>hello<a>world</a></body></html>"
138
138
  assert_equal(expected_html, translated_html)
139
139
  end
140
140
 
@@ -149,7 +149,7 @@ module Wovnrb
149
149
  converter = HtmlConverter.new(dom, store, headers)
150
150
  translated_html = converter.build
151
151
 
152
- expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=path&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/ja/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/vi/\"></head><body>hello<a>world</a></body></html>"
152
+ expected_html = "<html lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=path&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://my-site.com/\"><link rel=\"alternate\" hreflang=\"ja\" href=\"http://my-site.com/ja/\"><link rel=\"alternate\" hreflang=\"vi\" href=\"http://my-site.com/vi/\"></head><body>hello<a>world</a></body></html>"
153
153
  assert_equal(expected_html, translated_html)
154
154
  end
155
155
 
@@ -163,7 +163,7 @@ module Wovnrb
163
163
  </head></html>')
164
164
  converter.send(:replace_snippet)
165
165
 
166
- expected_html = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><script src=\"/a\"></script></head><body></body></html>"
166
+ expected_html = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=en&amp;defaultLang=en&amp;urlPattern=query&amp;langCodeAliases={}&amp;langParamName=wovn&amp;version=WOVN.rb_#{VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><script src=\"/a\"></script></head><body></body></html>"
167
167
  assert_equal(expected_html.gsub(/\s+/, ''), converter.send(:html).gsub(/\s+/, ''))
168
168
  end
169
169
 
@@ -31,9 +31,11 @@ module Wovnrb
31
31
  end
32
32
 
33
33
  def test_error
34
- mock = LogMock.mock_log
35
- WovnLogger.instance.error('aaa')
36
- assert_equal(['aaa'], mock.errors)
34
+ SecureRandom.stub(:uuid, 'a') do
35
+ mock = LogMock.mock_log
36
+ WovnLogger.instance.error('aaa')
37
+ assert_equal(['[a] aaa'], mock.errors)
38
+ end
37
39
  end
38
40
  end
39
41
  end
@@ -78,12 +78,14 @@ module Wovnrb
78
78
  end
79
79
 
80
80
  def test_invalid_settings
81
- mock = LogMock.mock_log
82
- store = Wovnrb::Store.instance
83
- valid = store.valid_settings?
81
+ SecureRandom.stub(:uuid, 'a') do
82
+ mock = LogMock.mock_log
83
+ store = Wovnrb::Store.instance
84
+ valid = store.valid_settings?
84
85
 
85
- assert_equal(false, valid)
86
- assert_equal(['Project token is not valid.'], mock.errors)
86
+ assert_equal(false, valid)
87
+ assert_equal(['[a] Project token is not valid.'], mock.errors)
88
+ end
87
89
  end
88
90
 
89
91
  def test_settings_ignore_paths
@@ -110,12 +112,14 @@ module Wovnrb
110
112
  end
111
113
 
112
114
  def test_settings_invalid_ignore_paths
113
- mock = LogMock.mock_log
114
- store = Wovnrb::Store.instance
115
- store.update_settings('ignore_paths' => 'aaaa')
115
+ SecureRandom.stub(:uuid, 'a') do
116
+ mock = LogMock.mock_log
117
+ store = Wovnrb::Store.instance
118
+ store.update_settings('ignore_paths' => 'aaaa')
116
119
 
117
- assert_equal(false, store.valid_settings?)
118
- assert_equal(['Project token is not valid.', 'Ignore Paths aaaa should be Array.'], mock.errors)
120
+ assert_equal(false, store.valid_settings?)
121
+ assert_equal(['[a] Project token is not valid.', '[a] Ignore Paths aaaa should be Array.'], mock.errors)
122
+ end
119
123
  end
120
124
 
121
125
  def test_settings_ignore_glob_injection
@@ -126,15 +130,17 @@ module Wovnrb
126
130
  assert_equal([], s.settings['ignore_globs'])
127
131
  end
128
132
 
129
- def test_default_dev_mode_settings
133
+ def test_widget_url_settings
130
134
  store = Wovnrb::Store.instance
131
135
 
132
- store.update_settings('wovn_dev_mode' => true)
136
+ store.update_settings('widget_url' => nil)
137
+ assert_equal('https://j.wovn.io/1', store.widget_url)
133
138
 
134
- assert(store.dev_mode?)
135
- assert_equal('dev-wovn.io', store.wovn_host)
136
- assert_equal('http://dev-wovn.io:3001', store.settings['api_url'])
137
- assert_equal(3, store.settings['api_timeout_seconds'])
139
+ store.update_settings('widget_url' => 'https://j.wovn.io/1')
140
+ assert_equal('https://j.wovn.io/1', store.widget_url)
141
+
142
+ store.update_settings('widget_url' => 'http://j.dev-wovn.io:3000/1')
143
+ assert_equal('http://j.dev-wovn.io:3000/1', store.widget_url)
138
144
  end
139
145
 
140
146
  def test_dev_mode_not_overriding_settings
@@ -16,7 +16,7 @@ class WovnrbTest < Minitest::Test
16
16
 
17
17
  expected_body = [
18
18
  '<html lang="ja"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">',
19
- "<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=#{Wovnrb::VERSION}\"> </script>",
19
+ "<script src=\"https://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=#{Wovnrb::VERSION}\"> </script>",
20
20
  '<link rel="alternate" hreflang="ja" href="http://ja.page.com/">',
21
21
  '<link rel="alternate" hreflang="en" href="http://page.com/"></head>',
22
22
  '<body><h1><!--wovn-src:Mr. Belvedere Fan Club-->ベルベデアさんファンクラブ</h1>',
@@ -24,7 +24,7 @@ class WovnrbTest < Minitest::Test
24
24
  '</body></html>'
25
25
  ].join
26
26
 
27
- assert_switch_lang('en', 'ja', body, expected_body, true)
27
+ assert_switch_lang('en', 'ja', body, expected_body, api_expected: true)
28
28
  end
29
29
 
30
30
  def test_switch_lang_with_input_tags
@@ -40,7 +40,7 @@ class WovnrbTest < Minitest::Test
40
40
 
41
41
  expected_body = [
42
42
  '<html lang="ja"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">',
43
- "<script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&langCodeAliases={}&version=#{Wovnrb::VERSION}\"> </script>",
43
+ "<script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=&backend=true&currentLang=ja&defaultLang=en&urlPattern=path&langCodeAliases={}&version=#{Wovnrb::VERSION}\"> </script>",
44
44
  '<link rel="alternate" hreflang="ja" href="http://ja.page.com/">',
45
45
  '<link rel="alternate" hreflang="en" href="http://page.com/"></head>',
46
46
  '<body>',
@@ -52,23 +52,23 @@ class WovnrbTest < Minitest::Test
52
52
  '</body></html>'
53
53
  ].join
54
54
 
55
- assert_switch_lang('en', 'ja', body, expected_body, true)
55
+ assert_switch_lang('en', 'ja', body, expected_body, api_expected: true)
56
56
  end
57
57
 
58
58
  def test_switch_lang_of_html_fragment_with_japanese_translations
59
59
  bodies = ['<span>Hello</span>'].join
60
60
  expected_bodies = ['<span><!--wovn-src:Hello-->こんにちは</span>'].join
61
61
 
62
- assert_switch_lang('en', 'ja', bodies, expected_bodies, true)
62
+ assert_switch_lang('en', 'ja', bodies, expected_bodies, api_expected: true)
63
63
  end
64
64
 
65
65
  def test_switch_lang_splitted_body
66
66
  bodies = ['<html><body><h1>Mr. Belvedere Fan Club</h1>',
67
67
  '<div><p>Hello</p></div>',
68
68
  '</body></html>'].join
69
- expected_bodies = ["<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"//j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=ja&amp;defaultLang=en&amp;urlPattern=subdomain&amp;langCodeAliases={}&amp;version=WOVN.rb_#{Wovnrb::VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://page.com/\"></head><body><h1>Mr. Belvedere Fan Club</h1><div><p>Hello</p></div></body></html>"].join
69
+ expected_bodies = ["<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://j.wovn.io/1\" async=\"true\" data-wovnio=\"key=123456&amp;backend=true&amp;currentLang=ja&amp;defaultLang=en&amp;urlPattern=subdomain&amp;langCodeAliases={}&amp;version=WOVN.rb_#{Wovnrb::VERSION}\" data-wovnio-type=\"fallback_snippet\"></script><link rel=\"alternate\" hreflang=\"en\" href=\"http://page.com/\"></head><body><h1>Mr. Belvedere Fan Club</h1><div><p>Hello</p></div></body></html>"].join
70
70
 
71
- assert_switch_lang('en', 'ja', bodies, expected_bodies, true)
71
+ assert_switch_lang('en', 'ja', bodies, expected_bodies, api_expected: true)
72
72
  end
73
73
 
74
74
  def test_switch_lang_of_html_fragment_in_splitted_body
@@ -76,19 +76,19 @@ class WovnrbTest < Minitest::Test
76
76
  '<option value="2">2</option></select>'].join
77
77
  expected_body = ['<select name="test"><option value="1">1</option><option value="2">2</option></select>'].join
78
78
 
79
- assert_switch_lang('en', 'ja', body, expected_body, true)
79
+ assert_switch_lang('en', 'ja', body, expected_body, api_expected: true)
80
80
  end
81
81
 
82
82
  def test_switch_lang_missing_values
83
83
  body = "<html><body><h1>Mr. Belvedere Fan Club</h1>
84
84
  <div><p>Hello</p></div>
85
85
  </body></html>"
86
- expected_body = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><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=#{Wovnrb::VERSION}\"> </script></head><body><h1>Mr. Belvedere Fan Club</h1>
86
+ expected_body = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><script src=\"https://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=#{Wovnrb::VERSION}\"> </script></head><body><h1>Mr. Belvedere Fan Club</h1>
87
87
  <div><p>Hello</p></div>
88
88
  </body></html>
89
89
  "
90
90
 
91
- assert_switch_lang('en', 'ja', body, expected_body, true)
91
+ assert_switch_lang('en', 'ja', body, expected_body, api_expected: true)
92
92
  end
93
93
 
94
94
  def test_switch_lang_on_fragment_with_translate_fragment_false
@@ -96,7 +96,7 @@ class WovnrbTest < Minitest::Test
96
96
  <div><p>Hello</p></div>"
97
97
 
98
98
  Wovnrb::Store.instance.settings['translate_fragment'] = false
99
- assert_switch_lang('en', 'ja', body, body, false)
99
+ assert_switch_lang('en', 'ja', body, body, api_expected: false)
100
100
  end
101
101
 
102
102
  def test_switch_lang_on_fragment_with_translate_fragment_true
@@ -106,7 +106,7 @@ class WovnrbTest < Minitest::Test
106
106
  <div><p><!--wovn-src:Hello-->こんにちは</p></div>"
107
107
 
108
108
  Wovnrb::Store.instance.settings['translate_fragment'] = true
109
- assert_switch_lang('en', 'ja', body, expected_body, true)
109
+ assert_switch_lang('en', 'ja', body, expected_body, api_expected: true)
110
110
  end
111
111
 
112
112
  def test_switch_lang_ignores_amp
@@ -120,7 +120,7 @@ class WovnrbTest < Minitest::Test
120
120
  </html>
121
121
  HTML
122
122
 
123
- assert_switch_lang('en', 'ja', body, body, false)
123
+ assert_switch_lang('en', 'ja', body, body, api_expected: false)
124
124
  end
125
125
 
126
126
  def test_switch_lang_ignores_amp_defined_with_symbol_attribute
@@ -133,7 +133,7 @@ HTML
133
133
  </html>
134
134
  HTML
135
135
 
136
- assert_switch_lang('en', 'ja', body, body, false)
136
+ assert_switch_lang('en', 'ja', body, body, api_expected: false)
137
137
  end
138
138
 
139
139
  def test_call_without_path_ignored_should_change_environment
@@ -249,7 +249,7 @@ HTML
249
249
  assert_equal(unaffected_env != app_mock.env, affected)
250
250
  end
251
251
 
252
- def assert_switch_lang(original_lang, target_lang, body, expected_body, api_expected = true)
252
+ def assert_switch_lang(original_lang, target_lang, body, expected_body, api_expected: true)
253
253
  subdomain = target_lang == original_lang ? '' : "#{target_lang}."
254
254
  interceptor = Wovnrb::Interceptor.new(get_app)
255
255
 
@@ -303,7 +303,7 @@ HTML
303
303
 
304
304
  def initialize(opts = {})
305
305
  @params = {}
306
- if opts.key?(:params) && opts[:params].class == Hash
306
+ if opts.key?(:params) && opts[:params].instance_of?(Hash)
307
307
  opts[:params].each do |key, val|
308
308
  @params[key] = val
309
309
  end
data/wovnrb.gemspec CHANGED
@@ -5,12 +5,13 @@ require 'wovnrb/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'wovnrb'
7
7
  spec.version = Wovnrb::VERSION
8
- spec.authors = ['Jeff Sandford', 'Antoine David']
9
- spec.email = ['jeff@wovn.io']
8
+ spec.authors = ['Wovn Technologies, Inc.']
9
+ spec.email = ['dev@wovn.io']
10
10
  spec.summary = 'Gem for WOVN.io'
11
11
  spec.description = 'Ruby gem for WOVN backend on Rack.'
12
- spec.homepage = ''
12
+ spec.homepage = 'https://wovn.io'
13
13
  spec.license = 'MIT'
14
+ spec.required_ruby_version = '>= 2.5'
14
15
 
15
16
  files = `git ls-files -z`.split("\x0")
16
17
  files.delete('BEFORE_PUSHING')
@@ -22,7 +23,7 @@ Gem::Specification.new do |spec|
22
23
  spec.add_dependency 'activesupport'
23
24
  spec.add_dependency 'addressable'
24
25
  spec.add_dependency 'lz4-ruby'
25
- spec.add_dependency 'nokogiri', '>= 1.8.1'
26
+ spec.add_dependency 'nokogiri', '>= 1.8.1', '<= 1.11'
26
27
  spec.add_dependency 'nokogumbo', '>= 1.4.0', '< 2.0.0'
27
28
  spec.add_dependency 'rack'
28
29
 
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wovnrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - Jeff Sandford
8
- - Antoine David
9
- autorequire:
7
+ - Wovn Technologies, Inc.
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2021-04-14 00:00:00.000000000 Z
11
+ date: 2021-10-04 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
@@ -60,6 +59,9 @@ dependencies:
60
59
  - - ">="
61
60
  - !ruby/object:Gem::Version
62
61
  version: 1.8.1
62
+ - - "<="
63
+ - !ruby/object:Gem::Version
64
+ version: '1.11'
63
65
  type: :runtime
64
66
  prerelease: false
65
67
  version_requirements: !ruby/object:Gem::Requirement
@@ -67,6 +69,9 @@ dependencies:
67
69
  - - ">="
68
70
  - !ruby/object:Gem::Version
69
71
  version: 1.8.1
72
+ - - "<="
73
+ - !ruby/object:Gem::Version
74
+ version: '1.11'
70
75
  - !ruby/object:Gem::Dependency
71
76
  name: nokogumbo
72
77
  requirement: !ruby/object:Gem::Requirement
@@ -397,7 +402,7 @@ dependencies:
397
402
  version: 2.3.2
398
403
  description: Ruby gem for WOVN backend on Rack.
399
404
  email:
400
- - jeff@wovn.io
405
+ - dev@wovn.io
401
406
  executables: []
402
407
  extensions: []
403
408
  extra_rdoc_files: []
@@ -406,7 +411,6 @@ files:
406
411
  - ".gitignore"
407
412
  - ".rubocop.yml"
408
413
  - ".rubocop_todo.yml"
409
- - ".travis.yml"
410
414
  - Gemfile
411
415
  - LICENSE.txt
412
416
  - PULL_REQUEST_TEMPLATE
@@ -414,6 +418,109 @@ files:
414
418
  - README.ja.md
415
419
  - README.md
416
420
  - Rakefile
421
+ - docker/docker-compose.yml
422
+ - docker/rails/Dockerfile
423
+ - docker/rails/TestSite/.browserslistrc
424
+ - docker/rails/TestSite/.gitignore
425
+ - docker/rails/TestSite/Gemfile
426
+ - docker/rails/TestSite/README.md
427
+ - docker/rails/TestSite/Rakefile
428
+ - docker/rails/TestSite/app/assets/config/manifest.js
429
+ - docker/rails/TestSite/app/assets/images/.keep
430
+ - docker/rails/TestSite/app/assets/stylesheets/application.css
431
+ - docker/rails/TestSite/app/assets/stylesheets/redirects.scss
432
+ - docker/rails/TestSite/app/channels/application_cable/channel.rb
433
+ - docker/rails/TestSite/app/channels/application_cable/connection.rb
434
+ - docker/rails/TestSite/app/controllers/application_controller.rb
435
+ - docker/rails/TestSite/app/controllers/concerns/.keep
436
+ - docker/rails/TestSite/app/controllers/custom_response_controller.rb
437
+ - docker/rails/TestSite/app/controllers/pages_controller.rb
438
+ - docker/rails/TestSite/app/controllers/redirects_controller.rb
439
+ - docker/rails/TestSite/app/helpers/application_helper.rb
440
+ - docker/rails/TestSite/app/helpers/pages_helper.rb
441
+ - docker/rails/TestSite/app/helpers/redirects_helper.rb
442
+ - docker/rails/TestSite/app/javascript/channels/consumer.js
443
+ - docker/rails/TestSite/app/javascript/channels/index.js
444
+ - docker/rails/TestSite/app/javascript/packs/application.js
445
+ - docker/rails/TestSite/app/jobs/application_job.rb
446
+ - docker/rails/TestSite/app/mailers/application_mailer.rb
447
+ - docker/rails/TestSite/app/models/application_record.rb
448
+ - docker/rails/TestSite/app/models/concerns/.keep
449
+ - docker/rails/TestSite/app/views/layouts/application.html.erb
450
+ - docker/rails/TestSite/app/views/layouts/mailer.html.erb
451
+ - docker/rails/TestSite/app/views/layouts/mailer.text.erb
452
+ - docker/rails/TestSite/babel.config.js
453
+ - docker/rails/TestSite/bin/bundle
454
+ - docker/rails/TestSite/bin/rails
455
+ - docker/rails/TestSite/bin/rake
456
+ - docker/rails/TestSite/bin/setup
457
+ - docker/rails/TestSite/bin/webpack
458
+ - docker/rails/TestSite/bin/webpack-dev-server
459
+ - docker/rails/TestSite/bin/yarn
460
+ - docker/rails/TestSite/config.ru
461
+ - docker/rails/TestSite/config/application.rb
462
+ - docker/rails/TestSite/config/boot.rb
463
+ - docker/rails/TestSite/config/cable.yml
464
+ - docker/rails/TestSite/config/credentials.yml.enc
465
+ - docker/rails/TestSite/config/database.yml
466
+ - docker/rails/TestSite/config/environment.rb
467
+ - docker/rails/TestSite/config/environments/development.rb
468
+ - docker/rails/TestSite/config/environments/production.rb
469
+ - docker/rails/TestSite/config/environments/test.rb
470
+ - docker/rails/TestSite/config/initializers/application_controller_renderer.rb
471
+ - docker/rails/TestSite/config/initializers/assets.rb
472
+ - docker/rails/TestSite/config/initializers/backtrace_silencers.rb
473
+ - docker/rails/TestSite/config/initializers/content_security_policy.rb
474
+ - docker/rails/TestSite/config/initializers/cookies_serializer.rb
475
+ - docker/rails/TestSite/config/initializers/filter_parameter_logging.rb
476
+ - docker/rails/TestSite/config/initializers/inflections.rb
477
+ - docker/rails/TestSite/config/initializers/mime_types.rb
478
+ - docker/rails/TestSite/config/initializers/wrap_parameters.rb
479
+ - docker/rails/TestSite/config/locales/en.yml
480
+ - docker/rails/TestSite/config/puma.rb
481
+ - docker/rails/TestSite/config/routes.rb
482
+ - docker/rails/TestSite/config/spring.rb
483
+ - docker/rails/TestSite/config/storage.yml
484
+ - docker/rails/TestSite/config/webpack/development.js
485
+ - docker/rails/TestSite/config/webpack/environment.js
486
+ - docker/rails/TestSite/config/webpack/production.js
487
+ - docker/rails/TestSite/config/webpack/test.js
488
+ - docker/rails/TestSite/config/webpacker.yml
489
+ - docker/rails/TestSite/db/seeds.rb
490
+ - docker/rails/TestSite/lib/assets/.keep
491
+ - docker/rails/TestSite/lib/tasks/.keep
492
+ - docker/rails/TestSite/log/.keep
493
+ - docker/rails/TestSite/package.json
494
+ - docker/rails/TestSite/postcss.config.js
495
+ - docker/rails/TestSite/public/index.html
496
+ - docker/rails/TestSite/public/page.html
497
+ - docker/rails/TestSite/public/pages/files/plaintext_unicode.txt
498
+ - docker/rails/TestSite/public/pages/files/simple_css.css
499
+ - docker/rails/TestSite/public/pages/files/simple_javascript.js
500
+ - docker/rails/TestSite/public/pages/html5test.html
501
+ - docker/rails/TestSite/public/pages/oldhtml.html
502
+ - docker/rails/TestSite/public/pages/xhtml.xhtml
503
+ - docker/rails/TestSite/public/redirection_target.html
504
+ - docker/rails/TestSite/public/testdir/testpage-dir.html
505
+ - docker/rails/TestSite/public/testdir/testpage-redirect-destination.html
506
+ - docker/rails/TestSite/public/testpage.html
507
+ - docker/rails/TestSite/public/wovn_index.html
508
+ - docker/rails/TestSite/start.sh
509
+ - docker/rails/TestSite/storage/.keep
510
+ - docker/rails/TestSite/test/application_system_test_case.rb
511
+ - docker/rails/TestSite/test/channels/application_cable/connection_test.rb
512
+ - docker/rails/TestSite/test/controllers/.keep
513
+ - docker/rails/TestSite/test/controllers/pages_controller_test.rb
514
+ - docker/rails/TestSite/test/controllers/redirects_controller_test.rb
515
+ - docker/rails/TestSite/test/fixtures/.keep
516
+ - docker/rails/TestSite/test/fixtures/files/.keep
517
+ - docker/rails/TestSite/test/helpers/.keep
518
+ - docker/rails/TestSite/test/integration/.keep
519
+ - docker/rails/TestSite/test/mailers/.keep
520
+ - docker/rails/TestSite/test/models/.keep
521
+ - docker/rails/TestSite/test/system/.keep
522
+ - docker/rails/TestSite/test/test_helper.rb
523
+ - docker/rails/TestSite/yarn.lock
417
524
  - lib/wovnrb.rb
418
525
  - lib/wovnrb/api_translator.rb
419
526
  - lib/wovnrb/headers.rb
@@ -426,9 +533,8 @@ files:
426
533
  - lib/wovnrb/services/wovn_logger.rb
427
534
  - lib/wovnrb/settings.rb
428
535
  - lib/wovnrb/store.rb
429
- - lib/wovnrb/text_caches/cache_base.rb
430
- - lib/wovnrb/text_caches/memory_cache.rb
431
536
  - lib/wovnrb/version.rb
537
+ - makefile
432
538
  - test/fixtures/html/test.html
433
539
  - test/fixtures/html/test_translated.html
434
540
  - test/lib/api_translator_test.rb
@@ -439,16 +545,14 @@ files:
439
545
  - test/lib/services/html_replace_marker_test.rb
440
546
  - test/lib/services/wovn_logger_test.rb
441
547
  - test/lib/store_test.rb
442
- - test/lib/text_caches/cache_base_test.rb
443
- - test/lib/text_caches/memory_cache_test.rb
444
548
  - test/lib/wovnrb_test.rb
445
549
  - test/test_helper.rb
446
550
  - wovnrb.gemspec
447
- homepage: ''
551
+ homepage: https://wovn.io
448
552
  licenses:
449
553
  - MIT
450
554
  metadata: {}
451
- post_install_message:
555
+ post_install_message:
452
556
  rdoc_options: []
453
557
  require_paths:
454
558
  - lib
@@ -456,15 +560,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
456
560
  requirements:
457
561
  - - ">="
458
562
  - !ruby/object:Gem::Version
459
- version: '0'
563
+ version: '2.5'
460
564
  required_rubygems_version: !ruby/object:Gem::Requirement
461
565
  requirements:
462
566
  - - ">="
463
567
  - !ruby/object:Gem::Version
464
568
  version: '0'
465
569
  requirements: []
466
- rubygems_version: 3.1.4
467
- signing_key:
570
+ rubygems_version: 3.0.3
571
+ signing_key:
468
572
  specification_version: 4
469
573
  summary: Gem for WOVN.io
470
574
  test_files:
@@ -478,7 +582,5 @@ test_files:
478
582
  - test/lib/services/html_replace_marker_test.rb
479
583
  - test/lib/services/wovn_logger_test.rb
480
584
  - test/lib/store_test.rb
481
- - test/lib/text_caches/cache_base_test.rb
482
- - test/lib/text_caches/memory_cache_test.rb
483
585
  - test/lib/wovnrb_test.rb
484
586
  - test/test_helper.rb
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- rvm:
4
- # Supported versions are
5
- # > Ruby version:2.2 or later
6
- # https://wovn.io/support/ruby-library/
7
- - 2.5.0
8
- - 2.4.3
9
- - 2.3.6
10
- - 2.2.9
11
- # There is no support for 2.1 officially, but test for now.
12
- - 2.1.10
13
- before_install:
14
- - gem update bundler --no-document