wovnrb 2.6.0 → 3.1.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 (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/application.rb +26 -0
  46. data/docker/rails/TestSite/config/boot.rb +4 -0
  47. data/docker/rails/TestSite/config/cable.yml +10 -0
  48. data/docker/rails/TestSite/config/credentials.yml.enc +1 -0
  49. data/docker/rails/TestSite/config/database.yml +25 -0
  50. data/docker/rails/TestSite/config/environment.rb +5 -0
  51. data/docker/rails/TestSite/config/environments/development.rb +62 -0
  52. data/docker/rails/TestSite/config/environments/production.rb +112 -0
  53. data/docker/rails/TestSite/config/environments/test.rb +49 -0
  54. data/docker/rails/TestSite/config/initializers/application_controller_renderer.rb +8 -0
  55. data/docker/rails/TestSite/config/initializers/assets.rb +14 -0
  56. data/docker/rails/TestSite/config/initializers/backtrace_silencers.rb +7 -0
  57. data/docker/rails/TestSite/config/initializers/content_security_policy.rb +30 -0
  58. data/docker/rails/TestSite/config/initializers/cookies_serializer.rb +5 -0
  59. data/docker/rails/TestSite/config/initializers/filter_parameter_logging.rb +4 -0
  60. data/docker/rails/TestSite/config/initializers/inflections.rb +16 -0
  61. data/docker/rails/TestSite/config/initializers/mime_types.rb +4 -0
  62. data/docker/rails/TestSite/config/initializers/wrap_parameters.rb +14 -0
  63. data/docker/rails/TestSite/config/locales/en.yml +33 -0
  64. data/docker/rails/TestSite/config/puma.rb +38 -0
  65. data/docker/rails/TestSite/config/routes.rb +5 -0
  66. data/docker/rails/TestSite/config/spring.rb +6 -0
  67. data/docker/rails/TestSite/config/storage.yml +34 -0
  68. data/docker/rails/TestSite/config/webpack/development.js +5 -0
  69. data/docker/rails/TestSite/config/webpack/environment.js +3 -0
  70. data/docker/rails/TestSite/config/webpack/production.js +5 -0
  71. data/docker/rails/TestSite/config/webpack/test.js +5 -0
  72. data/docker/rails/TestSite/config/webpacker.yml +96 -0
  73. data/docker/rails/TestSite/config.ru +5 -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/api_translator.rb +1 -1
  110. data/lib/wovnrb/headers.rb +30 -39
  111. data/lib/wovnrb/helpers/nokogumbo_helper.rb +7 -9
  112. data/lib/wovnrb/lang.rb +15 -14
  113. data/lib/wovnrb/railtie.rb +3 -15
  114. data/lib/wovnrb/services/html_converter.rb +8 -8
  115. data/lib/wovnrb/store.rb +8 -14
  116. data/lib/wovnrb/version.rb +1 -1
  117. data/lib/wovnrb.rb +1 -3
  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 +14 -14
  122. data/test/lib/store_test.rb +8 -6
  123. data/test/lib/wovnrb_test.rb +16 -16
  124. data/wovnrb.gemspec +5 -4
  125. metadata +117 -16
  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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87e1de8bb4d4e0aacac97628ff3f02cc52756f710897e92124d9c05019125fe3
4
- data.tar.gz: 4cfa377c062238076d77f77e1dc4d8b4a1f539fb78751b8b3a846e0fe70b3269
3
+ metadata.gz: 4d23f8ac05cb8fbefe04b2c8ae96f9932b280762e2491c80552bd20314d17e6d
4
+ data.tar.gz: 44118f0db0276085f492b631eeba2af8fe349f6b9d7ef96627590dda63793d80
5
5
  SHA512:
6
- metadata.gz: eb76b8e1d6049620933f25f7921940fd6006b04fda13fba82f86f414906878c6c6c84d93918935a9ab2548c525fb116000e8480cac5c444265f92bdffaf38b5f
7
- data.tar.gz: 1771496f33d419c64fdf3b3be112db32e5dc8d788c3f4cd3dc14ee3e25e272106dc8d93cd86df5e8fe56dde2ec1e2ba1efa60575b5054fb6223a674f1f833af3
6
+ metadata.gz: a71cbbd14782608c0c445d146bc262d5dfcf6bd7fca9cbfb467aad6f62caf9f979a98ae29a3e0fee38d77202217960b39e5ac9755975ba1fbd5e3899d5d7e69b
7
+ data.tar.gz: 9576ec7bd9d7053be56a116286ee9fe45df7a1f0c9e826dc114b0c77963d5e7c4ae53245655269fa8287cb45aa2ea0e56fdeecdf4cb81e4ce397d7f5595c31ef
data/.circleci/config.yml CHANGED
@@ -1,18 +1,29 @@
1
- version: 2
1
+ version: 2.1
2
+
3
+ orbs:
4
+ # https://github.com/CircleCI-Public/ruby-orb
5
+ ruby: circleci/ruby@1.1
2
6
 
3
7
  jobs:
4
- build:
8
+ test:
9
+ parameters:
10
+ ruby-version:
11
+ type: string
5
12
  docker:
6
- - image: circleci/ruby:2.3-jessie
13
+ - image: cimg/ruby:<< parameters.ruby-version >>
7
14
  steps:
8
15
  - checkout
9
- - restore_cache:
10
- keys:
11
- - bundler-
12
16
  - run: bundle install --path vendor/bundle --jobs=4
13
- - save_cache:
14
- key: bundler-{{ checksum "Gemfile.lock" }}
15
- paths:
16
- - vendor/bundle
17
17
  - run: bundle exec rubocop
18
18
  - run: bundle exec rake test
19
+
20
+ # https://circleci.com/blog/circleci-matrix-jobs/
21
+ workflows:
22
+ build_and_test:
23
+ jobs:
24
+ - test:
25
+ matrix:
26
+ parameters:
27
+ # https://github.com/CircleCI-Public/cimg-ruby
28
+ # only supports the last three ruby versions
29
+ ruby-version: ["2.5", "2.6", "2.7"]
data/.rubocop_todo.yml CHANGED
@@ -6,17 +6,8 @@
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 1
10
- # Cop supports --auto-correct.
11
- Layout/EmptyLinesAroundAccessModifier:
12
- Exclude:
13
- - 'lib/wovnrb/text_caches/memory_cache.rb'
14
-
15
- # Offense count: 1
16
- # Cop supports --auto-correct.
17
- Layout/EmptyLinesAroundMethodBody:
18
- Exclude:
19
- - 'test/lib/text_caches/memory_cache_test.rb'
9
+ Gemspec/RequiredRubyVersion:
10
+ Enabled: false
20
11
 
21
12
  # Offense count: 11
22
13
  # Cop supports --auto-correct.
@@ -25,13 +16,9 @@ Layout/ExtraSpacing:
25
16
  Exclude:
26
17
  - 'lib/wovnrb/lang.rb'
27
18
 
28
- # Offense count: 1
29
- # Cop supports --auto-correct.
30
- # Configuration parameters: EnforcedStyle, IndentationWidth.
31
- # SupportedStyles: special_inside_parentheses, consistent, align_braces
32
- Layout/FirstHashElementIndentation:
19
+ Style/HashEachMethods:
33
20
  Exclude:
34
- - 'lib/wovnrb/text_caches/cache_base.rb'
21
+ - 'lib/wovnrb/store.rb'
35
22
 
36
23
  # Offense count: 4
37
24
  # Cop supports --auto-correct.
@@ -42,13 +29,6 @@ Layout/HeredocIndentation:
42
29
  - 'test/lib/lang_test.rb'
43
30
  - 'test/lib/wovnrb_test.rb'
44
31
 
45
- # Offense count: 1
46
- # Cop supports --auto-correct.
47
- # Configuration parameters: AllowForAlignment.
48
- Layout/SpaceAroundOperators:
49
- Exclude:
50
- - 'lib/wovnrb/text_caches/memory_cache.rb'
51
-
52
32
  # Offense count: 3
53
33
  # Configuration parameters: AllowSafeAssignment.
54
34
  Lint/AssignmentInCondition:
@@ -70,13 +50,6 @@ Lint/ImplicitStringConcatenation:
70
50
  Exclude:
71
51
  - 'test/lib/lang_test.rb'
72
52
 
73
- # Offense count: 3
74
- # Cop supports --auto-correct.
75
- # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods.
76
- Lint/UnusedMethodArgument:
77
- Exclude:
78
- - 'lib/wovnrb/text_caches/cache_base.rb'
79
-
80
53
  # Offense count: 5
81
54
  Lint/UselessAssignment:
82
55
  Exclude:
@@ -116,12 +89,13 @@ Metrics/MethodLength:
116
89
  # Offense count: 12
117
90
  Metrics/PerceivedComplexity:
118
91
  Max: 22
92
+ Exclude:
93
+ - 'lib/wovnrb/headers.rb'
119
94
 
120
95
  # Offense count: 3
121
96
  Naming/AccessorMethodName:
122
97
  Exclude:
123
98
  - 'lib/wovnrb/services/wovn_logger.rb'
124
- - 'lib/wovnrb/text_caches/cache_base.rb'
125
99
 
126
100
  # Offense count: 120
127
101
  # Configuration parameters: .
@@ -153,12 +127,6 @@ Style/ClassCheck:
153
127
  Exclude:
154
128
  - 'lib/wovnrb/store.rb'
155
129
 
156
- # Offense count: 6
157
- Style/ClassVars:
158
- Exclude:
159
- - 'lib/wovnrb/text_caches/cache_base.rb'
160
- - 'lib/wovnrb/text_caches/memory_cache.rb'
161
-
162
130
  # Offense count: 1
163
131
  # Cop supports --auto-correct.
164
132
  # Configuration parameters: Keywords.
@@ -183,8 +151,6 @@ Style/Documentation:
183
151
  - 'lib/wovnrb/services/wovn_logger.rb'
184
152
  - 'lib/wovnrb/settings.rb'
185
153
  - 'lib/wovnrb/store.rb'
186
- - 'lib/wovnrb/text_caches/cache_base.rb'
187
- - 'lib/wovnrb/text_caches/memory_cache.rb'
188
154
 
189
155
  # Offense count: 2
190
156
  Style/DoubleNegation:
@@ -224,7 +190,6 @@ Style/IfUnlessModifier:
224
190
  - 'Rakefile'
225
191
  - 'lib/wovnrb/helpers/nokogumbo_helper.rb'
226
192
  - 'lib/wovnrb/store.rb'
227
- - 'lib/wovnrb/text_caches/memory_cache.rb'
228
193
 
229
194
  # Offense count: 1
230
195
  # Cop supports --auto-correct.
@@ -241,7 +206,6 @@ Style/NegatedIf:
241
206
  Style/PreferredHashMethods:
242
207
  Exclude:
243
208
  - 'lib/wovnrb/store.rb'
244
- - 'lib/wovnrb/text_caches/memory_cache.rb'
245
209
 
246
210
  # Offense count: 2
247
211
  # Cop supports --auto-correct.
@@ -297,7 +261,7 @@ Style/ZeroLengthPredicate:
297
261
  # Offense count: 1436
298
262
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
299
263
  # URISchemes: http, https
300
- Metrics/LineLength:
264
+ Layout/LineLength:
301
265
  Max: 1424
302
266
 
303
267
  Style/FrozenStringLiteralComment:
@@ -308,3 +272,9 @@ Style/NumericPredicate:
308
272
 
309
273
  Style/SafeNavigation:
310
274
  Enabled: false
275
+
276
+ AllCops:
277
+ NewCops: enable
278
+ Exclude:
279
+ - 'docker/**/*'
280
+ - 'vendor/**/*'
data/Gemfile CHANGED
@@ -1,7 +1,2 @@
1
1
  source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in wovn.gemspec
4
- if RUBY_VERSION < '2.2.2'
5
- gem 'activesupport', '< 5.0.0'
6
- end
7
2
  gemspec
data/README.en.md CHANGED
@@ -47,6 +47,8 @@ config.wovnrb = {
47
47
  ...
48
48
  ```
49
49
 
50
+ The WOVN.rb Rails middleware must also be installed. See [2.10 - install_middleware](#2.10-install_middleware)
51
+
50
52
  * If you're using Sinatra
51
53
 
52
54
  Insert the following into either the Application File or config.ru.
@@ -83,6 +85,7 @@ query | | []
83
85
  ignore_class | | []
84
86
  translate_fragment | | true
85
87
  ignore_paths | | []
88
+ install_middleware | | true
86
89
 
87
90
  ### 2.1. project_token
88
91
 
@@ -172,3 +175,24 @@ For instance, if you want to not localize the admin directory of your website, y
172
175
  ```
173
176
  'ignore_paths' => ['/admin/']
174
177
  ```
178
+
179
+ ### 2.10 install_middleware
180
+
181
+ When using WOVN.rb in a Rails environment, this parameter controls whether the WOVN.rb middleware will be automatically installed or not.
182
+
183
+ By default, WOVN.rb is automatically installed as the first middleware.
184
+ If you are using Rack::Deflater or other middleware that needs to be executed first, set this parameter to `false` and manually insert the middleware appropriately.
185
+ WOVN.rb needs to be added after any compression middleware.
186
+
187
+ ```ruby
188
+ config.middleware.use Rack::Deflater
189
+ config.middleware.insert_after Rack::Deflater, Wovnrb::Interceptor
190
+
191
+ config.wovnrb = {
192
+ :project_token => 'EnS!t3',
193
+ :default_lang => 'en',
194
+ :supported_langs => ['en'],
195
+ :url_pattern => 'path',
196
+ :install_middleware => false
197
+ }
198
+ ```
@@ -0,0 +1,16 @@
1
+ version: '3'
2
+ services:
3
+ rails:
4
+ container_name: wovntest-rails
5
+ build:
6
+ context: ./rails
7
+ dockerfile: Dockerfile
8
+ ports:
9
+ - 4000:4000
10
+ volumes:
11
+ - ../:/usr/src/app/wovnrb
12
+ networks:
13
+ - backend-network
14
+ networks:
15
+ backend-network:
16
+ name: 'backend-network'
@@ -0,0 +1,6 @@
1
+ FROM ruby:2.6.5
2
+
3
+ WORKDIR /usr/src/app
4
+
5
+ COPY ./TestSite/ .
6
+ CMD ["/bin/bash", "start.sh"]
@@ -0,0 +1 @@
1
+ defaults
@@ -0,0 +1,63 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+ /db/*.sqlite3-journal
13
+ /db/*.sqlite3-*
14
+
15
+ # Ignore all logfiles and tempfiles.
16
+ /log/*
17
+ /tmp/*
18
+ !/log/.keep
19
+ !/tmp/.keep
20
+
21
+ # Ignore pidfiles, but keep the directory.
22
+ /tmp/pids/*
23
+ !/tmp/pids/
24
+ !/tmp/pids/.keep
25
+
26
+ # Ignore uploaded files in development.
27
+ /storage/*
28
+ !/storage/.keep
29
+
30
+ /public/assets
31
+ .byebug_history
32
+
33
+ # Ignore master key for decrypting credentials and more.
34
+ /config/master.key
35
+
36
+ /public/packs
37
+ /public/packs-test
38
+ /node_modules
39
+ /yarn-error.log
40
+ yarn-debug.log*
41
+ .yarn-integrity
42
+ /.bundle/
43
+ /vendor
44
+ .yardoc/
45
+ /Gemfile.lock
46
+ /_yardoc/
47
+ /coverage/
48
+ doc/
49
+ /pkg/
50
+ /spec/reports/
51
+ /tmp/
52
+ *.bundle
53
+ *.so
54
+ *.o
55
+ *.a
56
+ *.swp
57
+ mkmf.log
58
+ .idea/
59
+ *.iml
60
+ .ruby-version
61
+ /*.gem
62
+ wovn_error.log
63
+ .byebug_history
@@ -0,0 +1,56 @@
1
+ source 'https://rubygems.org'
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ ruby '2.6.5'
5
+
6
+ # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
7
+ gem 'rails', '~> 6.0.3', '>= 6.0.3.2'
8
+ # Use sqlite3 as the database for Active Record
9
+ gem 'sqlite3', '~> 1.4'
10
+ # Use Puma as the app server
11
+ gem 'puma', '~> 4.1'
12
+ # Use SCSS for stylesheets
13
+ gem 'sass-rails', '>= 6'
14
+ # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
15
+ gem 'webpacker', '~> 4.0'
16
+ # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
17
+ gem 'turbolinks', '~> 5'
18
+ # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
19
+ gem 'jbuilder', '~> 2.7'
20
+ # Use Redis adapter to run Action Cable in production
21
+ # gem 'redis', '~> 4.0'
22
+ # Use Active Model has_secure_password
23
+ # gem 'bcrypt', '~> 3.1.7'
24
+
25
+ # Use Active Storage variant
26
+ # gem 'image_processing', '~> 1.2'
27
+
28
+ # Reduces boot times through caching; required in config/boot.rb
29
+ gem 'bootsnap', '>= 1.4.2', require: false
30
+
31
+ group :development, :test do
32
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
33
+ gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
34
+ end
35
+
36
+ group :development do
37
+ # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
38
+ gem 'web-console', '>= 3.3.0'
39
+ gem 'listen', '~> 3.2'
40
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
41
+ gem 'spring'
42
+ gem 'spring-watcher-listen', '~> 2.0.0'
43
+ end
44
+
45
+ group :test do
46
+ # Adds support for Capybara system testing and selenium driver
47
+ gem 'capybara', '>= 2.15'
48
+ gem 'selenium-webdriver'
49
+ # Easy installation and use of web drivers to run system tests with browsers
50
+ gem 'webdrivers'
51
+ end
52
+
53
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
54
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
55
+
56
+ gem 'wovnrb', path: './wovnrb'
@@ -0,0 +1,24 @@
1
+ # README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,2 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../stylesheets .css
File without changes
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
6
+ * vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,3 @@
1
+ // Place all the styles related to the redirects controller here.
2
+ // They will automatically be included in application.css.
3
+ // You can use Sass (SCSS) here: https://sass-lang.com/
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Channel < ActionCable::Channel::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Connection < ActionCable::Connection::Base
3
+ end
4
+ end
@@ -0,0 +1,2 @@
1
+ class ApplicationController < ActionController::Base
2
+ end
@@ -0,0 +1,16 @@
1
+ class CustomResponseController < ApplicationController
2
+ skip_before_action :verify_authenticity_token2
3
+
4
+ def make_response
5
+ response_args_json = params[:response]
6
+ raise ActionController::BadRequest unless response_args_json
7
+
8
+ (response_args_json[:headers] || {}).each do |name, value|
9
+ response.headers[name] = value
10
+ end
11
+
12
+ render inline: response_args_json[:body],
13
+ status: response_args_json[:status],
14
+ content_type: response_args_json[:content_type]
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ class PagesController < ApplicationController
2
+ skip_before_action :verify_authenticity_token
3
+
4
+ def show
5
+ render file: "#{Rails.root}/public/#{params[:page]}.html", layout: false
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ class RedirectsController < ApplicationController
2
+ def show
3
+ redirect_to '/redirection_target'
4
+ end
5
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module PagesHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module RedirectsHelper
2
+ end
@@ -0,0 +1,6 @@
1
+ // Action Cable provides the framework to deal with WebSockets in Rails.
2
+ // You can generate new channels where WebSocket features live using the `rails generate channel` command.
3
+
4
+ import { createConsumer } from "@rails/actioncable"
5
+
6
+ export default createConsumer()
@@ -0,0 +1,5 @@
1
+ // Load all the channels within this directory and all subdirectories.
2
+ // Channel files must be named *_channel.js.
3
+
4
+ const channels = require.context('.', true, /_channel\.js$/)
5
+ channels.keys().forEach(channels)
@@ -0,0 +1,17 @@
1
+ // This file is automatically compiled by Webpack, along with any other files
2
+ // present in this directory. You're encouraged to place your actual application logic in
3
+ // a relevant structure within app/javascript and only use these pack files to reference
4
+ // that code so it'll be compiled.
5
+
6
+ require("@rails/ujs").start()
7
+ require("turbolinks").start()
8
+ require("@rails/activestorage").start()
9
+ require("channels")
10
+
11
+
12
+ // Uncomment to copy all static images under ../images to the output folder and reference
13
+ // them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)
14
+ // or the `imagePath` JavaScript helper below.
15
+ //
16
+ // const images = require.context('../images', true)
17
+ // const imagePath = (name) => images(name, true)
@@ -0,0 +1,7 @@
1
+ class ApplicationJob < ActiveJob::Base
2
+ # Automatically retry jobs that encountered a deadlock
3
+ # retry_on ActiveRecord::Deadlocked
4
+
5
+ # Most jobs are safe to ignore if the underlying records are no longer available
6
+ # discard_on ActiveJob::DeserializationError
7
+ end
@@ -0,0 +1,4 @@
1
+ class ApplicationMailer < ActionMailer::Base
2
+ default from: 'from@example.com'
3
+ layout 'mailer'
4
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end
File without changes
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>TestSite</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
9
+ <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
10
+ </head>
11
+
12
+ <body>
13
+ <%= yield %>
14
+ </body>
15
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <style>
6
+ /* Email styles need to be inline */
7
+ </style>
8
+ </head>
9
+
10
+ <body>
11
+ <%= yield %>
12
+ </body>
13
+ </html>
@@ -0,0 +1 @@
1
+ <%= yield %>