wovnrb 2.5.1 → 3.0.3

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 (130) 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/README.en.md +24 -0
  6. data/docker/docker-compose.yml +16 -0
  7. data/docker/rails/Dockerfile +6 -0
  8. data/docker/rails/TestSite/.browserslistrc +1 -0
  9. data/docker/rails/TestSite/.gitignore +63 -0
  10. data/docker/rails/TestSite/Gemfile +56 -0
  11. data/docker/rails/TestSite/README.md +24 -0
  12. data/docker/rails/TestSite/Rakefile +6 -0
  13. data/docker/rails/TestSite/app/assets/config/manifest.js +2 -0
  14. data/docker/rails/TestSite/app/assets/images/.keep +0 -0
  15. data/docker/rails/TestSite/app/assets/stylesheets/application.css +15 -0
  16. data/docker/rails/TestSite/app/assets/stylesheets/redirects.scss +3 -0
  17. data/docker/rails/TestSite/app/channels/application_cable/channel.rb +4 -0
  18. data/docker/rails/TestSite/app/channels/application_cable/connection.rb +4 -0
  19. data/docker/rails/TestSite/app/controllers/application_controller.rb +2 -0
  20. data/docker/rails/TestSite/app/controllers/concerns/.keep +0 -0
  21. data/docker/rails/TestSite/app/controllers/custom_response_controller.rb +16 -0
  22. data/docker/rails/TestSite/app/controllers/pages_controller.rb +7 -0
  23. data/docker/rails/TestSite/app/controllers/redirects_controller.rb +5 -0
  24. data/docker/rails/TestSite/app/helpers/application_helper.rb +2 -0
  25. data/docker/rails/TestSite/app/helpers/pages_helper.rb +2 -0
  26. data/docker/rails/TestSite/app/helpers/redirects_helper.rb +2 -0
  27. data/docker/rails/TestSite/app/javascript/channels/consumer.js +6 -0
  28. data/docker/rails/TestSite/app/javascript/channels/index.js +5 -0
  29. data/docker/rails/TestSite/app/javascript/packs/application.js +17 -0
  30. data/docker/rails/TestSite/app/jobs/application_job.rb +7 -0
  31. data/docker/rails/TestSite/app/mailers/application_mailer.rb +4 -0
  32. data/docker/rails/TestSite/app/models/application_record.rb +3 -0
  33. data/docker/rails/TestSite/app/models/concerns/.keep +0 -0
  34. data/docker/rails/TestSite/app/views/layouts/application.html.erb +15 -0
  35. data/docker/rails/TestSite/app/views/layouts/mailer.html.erb +13 -0
  36. data/docker/rails/TestSite/app/views/layouts/mailer.text.erb +1 -0
  37. data/docker/rails/TestSite/babel.config.js +72 -0
  38. data/docker/rails/TestSite/bin/bundle +114 -0
  39. data/docker/rails/TestSite/bin/rails +4 -0
  40. data/docker/rails/TestSite/bin/rake +4 -0
  41. data/docker/rails/TestSite/bin/setup +36 -0
  42. data/docker/rails/TestSite/bin/webpack +18 -0
  43. data/docker/rails/TestSite/bin/webpack-dev-server +18 -0
  44. data/docker/rails/TestSite/bin/yarn +11 -0
  45. data/docker/rails/TestSite/config.ru +5 -0
  46. data/docker/rails/TestSite/config/application.rb +26 -0
  47. data/docker/rails/TestSite/config/boot.rb +4 -0
  48. data/docker/rails/TestSite/config/cable.yml +10 -0
  49. data/docker/rails/TestSite/config/credentials.yml.enc +1 -0
  50. data/docker/rails/TestSite/config/database.yml +25 -0
  51. data/docker/rails/TestSite/config/environment.rb +5 -0
  52. data/docker/rails/TestSite/config/environments/development.rb +62 -0
  53. data/docker/rails/TestSite/config/environments/production.rb +112 -0
  54. data/docker/rails/TestSite/config/environments/test.rb +49 -0
  55. data/docker/rails/TestSite/config/initializers/application_controller_renderer.rb +8 -0
  56. data/docker/rails/TestSite/config/initializers/assets.rb +14 -0
  57. data/docker/rails/TestSite/config/initializers/backtrace_silencers.rb +7 -0
  58. data/docker/rails/TestSite/config/initializers/content_security_policy.rb +30 -0
  59. data/docker/rails/TestSite/config/initializers/cookies_serializer.rb +5 -0
  60. data/docker/rails/TestSite/config/initializers/filter_parameter_logging.rb +4 -0
  61. data/docker/rails/TestSite/config/initializers/inflections.rb +16 -0
  62. data/docker/rails/TestSite/config/initializers/mime_types.rb +4 -0
  63. data/docker/rails/TestSite/config/initializers/wrap_parameters.rb +14 -0
  64. data/docker/rails/TestSite/config/locales/en.yml +33 -0
  65. data/docker/rails/TestSite/config/puma.rb +38 -0
  66. data/docker/rails/TestSite/config/routes.rb +5 -0
  67. data/docker/rails/TestSite/config/spring.rb +6 -0
  68. data/docker/rails/TestSite/config/storage.yml +34 -0
  69. data/docker/rails/TestSite/config/webpack/development.js +5 -0
  70. data/docker/rails/TestSite/config/webpack/environment.js +3 -0
  71. data/docker/rails/TestSite/config/webpack/production.js +5 -0
  72. data/docker/rails/TestSite/config/webpack/test.js +5 -0
  73. data/docker/rails/TestSite/config/webpacker.yml +96 -0
  74. data/docker/rails/TestSite/db/seeds.rb +7 -0
  75. data/docker/rails/TestSite/lib/assets/.keep +0 -0
  76. data/docker/rails/TestSite/lib/tasks/.keep +0 -0
  77. data/docker/rails/TestSite/log/.keep +0 -0
  78. data/docker/rails/TestSite/package.json +15 -0
  79. data/docker/rails/TestSite/postcss.config.js +12 -0
  80. data/docker/rails/TestSite/public/index.html +9 -0
  81. data/docker/rails/TestSite/public/page.html +13 -0
  82. data/docker/rails/TestSite/public/pages/files/plaintext_unicode.txt +204 -0
  83. data/docker/rails/TestSite/public/pages/files/simple_css.css +8 -0
  84. data/docker/rails/TestSite/public/pages/files/simple_javascript.js +2 -0
  85. data/docker/rails/TestSite/public/pages/html5test.html +555 -0
  86. data/docker/rails/TestSite/public/pages/oldhtml.html +335 -0
  87. data/docker/rails/TestSite/public/pages/xhtml.xhtml +726 -0
  88. data/docker/rails/TestSite/public/redirection_target.html +10 -0
  89. data/docker/rails/TestSite/public/testdir/testpage-dir.html +9 -0
  90. data/docker/rails/TestSite/public/testdir/testpage-redirect-destination.html +9 -0
  91. data/docker/rails/TestSite/public/testpage.html +9 -0
  92. data/docker/rails/TestSite/public/wovn_index.html +24 -0
  93. data/docker/rails/TestSite/start.sh +13 -0
  94. data/docker/rails/TestSite/storage/.keep +0 -0
  95. data/docker/rails/TestSite/test/application_system_test_case.rb +5 -0
  96. data/docker/rails/TestSite/test/channels/application_cable/connection_test.rb +11 -0
  97. data/docker/rails/TestSite/test/controllers/.keep +0 -0
  98. data/docker/rails/TestSite/test/controllers/pages_controller_test.rb +7 -0
  99. data/docker/rails/TestSite/test/controllers/redirects_controller_test.rb +7 -0
  100. data/docker/rails/TestSite/test/fixtures/.keep +0 -0
  101. data/docker/rails/TestSite/test/fixtures/files/.keep +0 -0
  102. data/docker/rails/TestSite/test/helpers/.keep +0 -0
  103. data/docker/rails/TestSite/test/integration/.keep +0 -0
  104. data/docker/rails/TestSite/test/mailers/.keep +0 -0
  105. data/docker/rails/TestSite/test/models/.keep +0 -0
  106. data/docker/rails/TestSite/test/system/.keep +0 -0
  107. data/docker/rails/TestSite/test/test_helper.rb +13 -0
  108. data/docker/rails/TestSite/yarn.lock +7642 -0
  109. data/lib/wovnrb.rb +1 -3
  110. data/lib/wovnrb/api_translator.rb +1 -1
  111. data/lib/wovnrb/headers.rb +30 -39
  112. data/lib/wovnrb/helpers/nokogumbo_helper.rb +7 -9
  113. data/lib/wovnrb/lang.rb +15 -14
  114. data/lib/wovnrb/railtie.rb +3 -15
  115. data/lib/wovnrb/services/html_converter.rb +11 -7
  116. data/lib/wovnrb/store.rb +7 -10
  117. data/lib/wovnrb/version.rb +1 -1
  118. data/makefile +16 -0
  119. data/test/lib/api_translator_test.rb +3 -4
  120. data/test/lib/lang_test.rb +5 -136
  121. data/test/lib/services/html_converter_test.rb +10 -4
  122. data/test/lib/store_test.rb +1 -1
  123. data/test/lib/wovnrb_test.rb +12 -12
  124. data/wovnrb.gemspec +4 -3
  125. metadata +114 -18
  126. data/.travis.yml +0 -14
  127. data/lib/wovnrb/text_caches/cache_base.rb +0 -53
  128. data/lib/wovnrb/text_caches/memory_cache.rb +0 -51
  129. data/test/lib/text_caches/cache_base_test.rb +0 -31
  130. data/test/lib/text_caches/memory_cache_test.rb +0 -91
@@ -1,31 +0,0 @@
1
- require 'wovnrb/text_caches/cache_base'
2
- require 'minitest/autorun'
3
-
4
- class CacheBaseTest < Minitest::Test
5
- def setup
6
- Wovnrb::CacheBase.reset_cache
7
- end
8
-
9
- def test_build
10
- cache = Wovnrb::CacheBase.build({})
11
- assert_equal('Wovnrb::MemoryCache', cache.class.name)
12
- end
13
-
14
- def test_build_with_invalid_strategy
15
- assert_raises RuntimeError do
16
- Wovnrb::CacheBase.build(strategy: :invalid)
17
- end
18
- end
19
-
20
- def test_set_and_get_single
21
- Wovnrb::CacheBase.set_single({})
22
- cache = Wovnrb::CacheBase.get_single
23
- assert_equal('Wovnrb::MemoryCache', cache.class.name)
24
- end
25
-
26
- def test_get_single_without_set
27
- assert_raises RuntimeError do
28
- Wovnrb::CacheBase.get_single
29
- end
30
- end
31
- end
@@ -1,91 +0,0 @@
1
- require 'wovnrb/text_caches/cache_base'
2
- require 'wovnrb/text_caches/memory_cache'
3
- require 'minitest/autorun'
4
- require 'timecop'
5
-
6
- class MemoryCacheTest < Minitest::Test
7
- def test_initialize
8
- memory = Wovnrb::MemoryCache.new(
9
- 'cache_megabytes' => 1,
10
- 'ttl_seconds' => 1
11
- )
12
- option = memory.options
13
- assert_equal(1.megabytes, option[:size])
14
- assert_equal(1.megabytes, option[:size])
15
- assert_equal(1.seconds, option[:expires_in])
16
- end
17
-
18
- def test_initialize_without_cache_megabytes
19
- memory = Wovnrb::MemoryCache.new(
20
- 'ttl_seconds' => 1
21
- )
22
- option = memory.options
23
- assert_equal(200.megabytes, option[:size])
24
- assert_equal(1.seconds, option[:expires_in])
25
- end
26
-
27
- def test_initialize_without_ttl
28
- memory = Wovnrb::MemoryCache.new(
29
- 'cache_megabytes' => 1
30
- )
31
- option = memory.options
32
- assert_equal(1.megabytes, option[:size])
33
- assert_equal(300.seconds, option[:expires_in])
34
- end
35
-
36
- def test_initialize_with_no_config
37
- memory = Wovnrb::MemoryCache.new({})
38
- option = memory.options
39
- assert_equal(200.megabytes, option[:size])
40
- assert_equal(300.seconds, option[:expires_in])
41
- end
42
-
43
- def test_put_without_cache
44
- memory = Wovnrb::MemoryCache.new({})
45
- memory.put('a', 'b')
46
- assert_equal('b', memory.get('a'))
47
- end
48
-
49
- def test_put_with_cache
50
- memory = Wovnrb::MemoryCache.new({})
51
- memory.put('a', 'b')
52
- memory.put('a', 'b2')
53
- assert_equal('b2', memory.get('a'))
54
- end
55
-
56
- def test_get_with_cache
57
- memory = Wovnrb::MemoryCache.new({})
58
- memory.put('a', 'b')
59
- assert_equal('b', memory.get('a'))
60
- end
61
-
62
- def test_get_without_cache
63
- memory = Wovnrb::MemoryCache.new({})
64
- assert_nil(memory.get('a'))
65
-
66
- end
67
-
68
- def test_get_with_timeout
69
- memory = Wovnrb::MemoryCache.new({})
70
- memory.put('a', 'b')
71
- Timecop.travel(1.day.since)
72
- assert_nil(memory.get('a'))
73
- end
74
-
75
- def test_get_with_over_memory
76
- # ActiveSupport::Cache::MemoryStore has 240 bytes overhead per instance
77
- memory = Wovnrb::MemoryCache.new(
78
- 'cache_megabytes' => 400.0 / 1000 / 1000
79
- )
80
- memory.put('a', 'c')
81
- memory.put('b', 'd')
82
- assert_nil(memory.get('a'))
83
- assert_equal('d', memory.get('b'))
84
- end
85
-
86
- def test_get_with_utf8
87
- memory = Wovnrb::MemoryCache.new({})
88
- memory.put('http://www.example.com', 'あいうえお')
89
- assert_equal('あいうえお', memory.get('http://www.example.com'))
90
- end
91
- end