react_on_rails 10.0.0 → 11.0.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.
- checksums.yaml +4 -4
- data/.eslintrc +4 -0
- data/.rubocop.yml +2 -2
- data/.travis.yml +3 -0
- data/CHANGELOG.md +81 -88
- data/CONTRIBUTING.md +0 -7
- data/Dockerfile_tests +12 -0
- data/Gemfile +8 -13
- data/NEWS.md +2 -0
- data/PROJECTS.md +10 -2
- data/README.md +137 -121
- data/app/helpers/react_on_rails_helper.rb +1 -533
- data/docker-compose.yml +11 -0
- data/docs/additional-reading/caching-and-performance.md +4 -0
- data/docs/additional-reading/capistrano-deployment.md +18 -0
- data/docs/additional-reading/elastic-beanstalk.md +53 -33
- data/docs/additional-reading/server-rendering-tips.md +4 -4
- data/docs/additional-reading/troubleshooting-when-using-webpacker.md +90 -0
- data/docs/api/ruby-api.md +7 -2
- data/docs/basics/configuration.md +23 -9
- data/docs/basics/i18n.md +4 -0
- data/docs/basics/upgrading-react-on-rails.md +181 -0
- data/docs/tutorial.md +7 -11
- data/lib/generators/react_on_rails/base_generator.rb +6 -3
- data/lib/generators/react_on_rails/dev_tests_generator.rb +1 -1
- data/lib/generators/react_on_rails/install_generator.rb +1 -1
- data/lib/generators/react_on_rails/react_no_redux_generator.rb +1 -1
- data/lib/generators/react_on_rails/react_with_redux_generator.rb +2 -2
- data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +1 -1
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb +3 -2
- data/lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb +2 -2
- data/lib/react_on_rails/assets_precompile.rb +8 -4
- data/lib/react_on_rails/configuration.rb +34 -20
- data/lib/react_on_rails/error.rb +4 -0
- data/lib/react_on_rails/locales_to_js.rb +2 -2
- data/lib/react_on_rails/prerender_error.rb +2 -2
- data/lib/react_on_rails/react_on_rails_helper.rb +547 -0
- data/lib/react_on_rails/server_rendering_pool/{exec.rb → ruby_embedded_java_script.rb} +37 -40
- data/lib/react_on_rails/server_rendering_pool.rb +21 -10
- data/lib/react_on_rails/test_helper/webpack_assets_status_checker.rb +2 -2
- data/lib/react_on_rails/test_helper.rb +1 -1
- data/lib/react_on_rails/utils.rb +14 -52
- data/lib/react_on_rails/version.rb +1 -1
- data/lib/react_on_rails/version_checker.rb +33 -12
- data/lib/react_on_rails/webpacker_utils.rb +42 -0
- data/lib/react_on_rails.rb +3 -2
- data/package.json +2 -5
- data/rakelib/dummy_apps.rake +2 -1
- data/rakelib/example_type.rb +1 -1
- data/rakelib/examples.rake +3 -2
- data/rakelib/lint.rake +3 -2
- data/rakelib/node_package.rake +2 -1
- data/rakelib/release.rake +4 -5
- data/rakelib/run_rspec.rake +3 -4
- data/rakelib/task_helpers.rb +1 -1
- data/react_on_rails.gemspec +23 -13
- data/yarn.lock +3 -39
- metadata +75 -49
- data/lib/react_on_rails/server_rendering_pool/node.rb +0 -83
- data/lib/react_on_rails/test_helper/node_process_launcher.rb +0 -14
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: react_on_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 11.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Gordon
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2018-04-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: addressable
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: connection_pool
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -67,63 +67,63 @@ dependencies:
|
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '3.2'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
70
|
+
name: rainbow
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
75
|
+
version: '2.2'
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
82
|
+
version: '2.2'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
84
|
+
name: awesome_print
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
|
-
- - "
|
|
87
|
+
- - ">="
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
89
|
+
version: '0'
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
|
-
- - "
|
|
94
|
+
- - ">="
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
96
|
+
version: '0'
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: bundler
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '1
|
|
103
|
+
version: '1'
|
|
104
104
|
type: :development
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '1
|
|
110
|
+
version: '1'
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
112
|
+
name: coveralls
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
|
-
- - "
|
|
115
|
+
- - ">="
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
117
|
+
version: '0'
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
|
-
- - "
|
|
122
|
+
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
124
|
+
version: '0'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
126
|
+
name: gem-release
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
129
|
- - ">="
|
|
@@ -137,7 +137,7 @@ dependencies:
|
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
138
|
version: '0'
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
|
-
name:
|
|
140
|
+
name: generator_spec
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
143
|
- - ">="
|
|
@@ -151,7 +151,7 @@ dependencies:
|
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
152
|
version: '0'
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
|
-
name:
|
|
154
|
+
name: listen
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
|
156
156
|
requirements:
|
|
157
157
|
- - ">="
|
|
@@ -165,7 +165,7 @@ dependencies:
|
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
166
|
version: '0'
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
|
168
|
-
name:
|
|
168
|
+
name: pry
|
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
|
170
170
|
requirements:
|
|
171
171
|
- - ">="
|
|
@@ -179,7 +179,7 @@ dependencies:
|
|
|
179
179
|
- !ruby/object:Gem::Version
|
|
180
180
|
version: '0'
|
|
181
181
|
- !ruby/object:Gem::Dependency
|
|
182
|
-
name: pry
|
|
182
|
+
name: pry-byebug
|
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
|
184
184
|
requirements:
|
|
185
185
|
- - ">="
|
|
@@ -193,7 +193,7 @@ dependencies:
|
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
194
|
version: '0'
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
|
-
name: pry-
|
|
196
|
+
name: pry-doc
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
198
198
|
requirements:
|
|
199
199
|
- - ">="
|
|
@@ -207,7 +207,7 @@ dependencies:
|
|
|
207
207
|
- !ruby/object:Gem::Version
|
|
208
208
|
version: '0'
|
|
209
209
|
- !ruby/object:Gem::Dependency
|
|
210
|
-
name: pry-
|
|
210
|
+
name: pry-rescue
|
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
|
212
212
|
requirements:
|
|
213
213
|
- - ">="
|
|
@@ -221,7 +221,7 @@ dependencies:
|
|
|
221
221
|
- !ruby/object:Gem::Version
|
|
222
222
|
version: '0'
|
|
223
223
|
- !ruby/object:Gem::Dependency
|
|
224
|
-
name: pry-
|
|
224
|
+
name: pry-stack_explorer
|
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
|
226
226
|
requirements:
|
|
227
227
|
- - ">="
|
|
@@ -263,35 +263,35 @@ dependencies:
|
|
|
263
263
|
- !ruby/object:Gem::Version
|
|
264
264
|
version: '0'
|
|
265
265
|
- !ruby/object:Gem::Dependency
|
|
266
|
-
name:
|
|
266
|
+
name: rails
|
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
|
268
268
|
requirements:
|
|
269
|
-
- - "
|
|
269
|
+
- - "~>"
|
|
270
270
|
- !ruby/object:Gem::Version
|
|
271
|
-
version: '
|
|
271
|
+
version: '5.2'
|
|
272
272
|
type: :development
|
|
273
273
|
prerelease: false
|
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
|
275
275
|
requirements:
|
|
276
|
-
- - "
|
|
276
|
+
- - "~>"
|
|
277
277
|
- !ruby/object:Gem::Version
|
|
278
|
-
version: '
|
|
278
|
+
version: '5.2'
|
|
279
279
|
- !ruby/object:Gem::Dependency
|
|
280
|
-
name:
|
|
280
|
+
name: rake
|
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
|
282
282
|
requirements:
|
|
283
|
-
- - "
|
|
283
|
+
- - "~>"
|
|
284
284
|
- !ruby/object:Gem::Version
|
|
285
|
-
version: '0'
|
|
285
|
+
version: '10.0'
|
|
286
286
|
type: :development
|
|
287
287
|
prerelease: false
|
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
|
289
289
|
requirements:
|
|
290
|
-
- - "
|
|
290
|
+
- - "~>"
|
|
291
291
|
- !ruby/object:Gem::Version
|
|
292
|
-
version: '0'
|
|
292
|
+
version: '10.0'
|
|
293
293
|
- !ruby/object:Gem::Dependency
|
|
294
|
-
name:
|
|
294
|
+
name: rspec
|
|
295
295
|
requirement: !ruby/object:Gem::Requirement
|
|
296
296
|
requirements:
|
|
297
297
|
- - ">="
|
|
@@ -304,6 +304,20 @@ dependencies:
|
|
|
304
304
|
- - ">="
|
|
305
305
|
- !ruby/object:Gem::Version
|
|
306
306
|
version: '0'
|
|
307
|
+
- !ruby/object:Gem::Dependency
|
|
308
|
+
name: rubocop
|
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
|
310
|
+
requirements:
|
|
311
|
+
- - '='
|
|
312
|
+
- !ruby/object:Gem::Version
|
|
313
|
+
version: 0.55.0
|
|
314
|
+
type: :development
|
|
315
|
+
prerelease: false
|
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
317
|
+
requirements:
|
|
318
|
+
- - '='
|
|
319
|
+
- !ruby/object:Gem::Version
|
|
320
|
+
version: 0.55.0
|
|
307
321
|
description: See README.md
|
|
308
322
|
email:
|
|
309
323
|
- justin@shakacode.com
|
|
@@ -324,6 +338,7 @@ files:
|
|
|
324
338
|
- ".travis.yml"
|
|
325
339
|
- CHANGELOG.md
|
|
326
340
|
- CONTRIBUTING.md
|
|
341
|
+
- Dockerfile_tests
|
|
327
342
|
- Gemfile
|
|
328
343
|
- Gemfile.rails32
|
|
329
344
|
- KUDOS.md
|
|
@@ -334,10 +349,13 @@ files:
|
|
|
334
349
|
- SUMMARY.md
|
|
335
350
|
- app/helpers/react_on_rails_helper.rb
|
|
336
351
|
- book.json
|
|
352
|
+
- docker-compose.yml
|
|
337
353
|
- docs/LICENSE.md
|
|
338
354
|
- docs/additional-reading/angular-js-integration-migration.md
|
|
339
355
|
- docs/additional-reading/asset-pipeline.md
|
|
340
356
|
- docs/additional-reading/babel.md
|
|
357
|
+
- docs/additional-reading/caching-and-performance.md
|
|
358
|
+
- docs/additional-reading/capistrano-deployment.md
|
|
341
359
|
- docs/additional-reading/code-splitting.md
|
|
342
360
|
- docs/additional-reading/elastic-beanstalk.md
|
|
343
361
|
- docs/additional-reading/foreman-issues.md
|
|
@@ -357,6 +375,7 @@ files:
|
|
|
357
375
|
- docs/additional-reading/rspec-configuration.md
|
|
358
376
|
- docs/additional-reading/server-rendering-tips.md
|
|
359
377
|
- docs/additional-reading/tips.md
|
|
378
|
+
- docs/additional-reading/troubleshooting-when-using-webpacker.md
|
|
360
379
|
- docs/additional-reading/turbolinks.md
|
|
361
380
|
- docs/additional-reading/updating-dependencies.md
|
|
362
381
|
- docs/additional-reading/webpack-dev-server.md
|
|
@@ -370,6 +389,7 @@ files:
|
|
|
370
389
|
- docs/basics/i18n.md
|
|
371
390
|
- docs/basics/installation-overview.md
|
|
372
391
|
- docs/basics/migrating-from-react-rails.md
|
|
392
|
+
- docs/basics/upgrading-react-on-rails.md
|
|
373
393
|
- docs/coding-style/style.md
|
|
374
394
|
- docs/contributor-info/generator-testing.md
|
|
375
395
|
- docs/contributor-info/linters.md
|
|
@@ -413,23 +433,24 @@ files:
|
|
|
413
433
|
- lib/react_on_rails/configuration.rb
|
|
414
434
|
- lib/react_on_rails/controller.rb
|
|
415
435
|
- lib/react_on_rails/engine.rb
|
|
436
|
+
- lib/react_on_rails/error.rb
|
|
416
437
|
- lib/react_on_rails/git_utils.rb
|
|
417
438
|
- lib/react_on_rails/json_output.rb
|
|
418
439
|
- lib/react_on_rails/locales_to_js.rb
|
|
419
440
|
- lib/react_on_rails/prerender_error.rb
|
|
420
441
|
- lib/react_on_rails/react_component/options.rb
|
|
442
|
+
- lib/react_on_rails/react_on_rails_helper.rb
|
|
421
443
|
- lib/react_on_rails/server_rendering_pool.rb
|
|
422
|
-
- lib/react_on_rails/server_rendering_pool/
|
|
423
|
-
- lib/react_on_rails/server_rendering_pool/node.rb
|
|
444
|
+
- lib/react_on_rails/server_rendering_pool/ruby_embedded_java_script.rb
|
|
424
445
|
- lib/react_on_rails/test_helper.rb
|
|
425
446
|
- lib/react_on_rails/test_helper/ensure_assets_compiled.rb
|
|
426
|
-
- lib/react_on_rails/test_helper/node_process_launcher.rb
|
|
427
447
|
- lib/react_on_rails/test_helper/webpack_assets_compiler.rb
|
|
428
448
|
- lib/react_on_rails/test_helper/webpack_assets_status_checker.rb
|
|
429
449
|
- lib/react_on_rails/utils.rb
|
|
430
450
|
- lib/react_on_rails/version.rb
|
|
431
451
|
- lib/react_on_rails/version_checker.rb
|
|
432
452
|
- lib/react_on_rails/version_syntax_converter.rb
|
|
453
|
+
- lib/react_on_rails/webpacker_utils.rb
|
|
433
454
|
- lib/tasks/assets.rake
|
|
434
455
|
- lib/tasks/locale.rake
|
|
435
456
|
- package.json
|
|
@@ -455,7 +476,12 @@ homepage: https://github.com/shakacode/react_on_rails
|
|
|
455
476
|
licenses:
|
|
456
477
|
- MIT
|
|
457
478
|
metadata: {}
|
|
458
|
-
post_install_message:
|
|
479
|
+
post_install_message: |2
|
|
480
|
+
|
|
481
|
+
--------------------------------------------------------------------------------
|
|
482
|
+
Email contact@shakacode.com for access to our slack room and information about our "pro support plan"
|
|
483
|
+
which supports better performance, via caching helpers and our node rendering server.
|
|
484
|
+
--------------------------------------------------------------------------------
|
|
459
485
|
rdoc_options: []
|
|
460
486
|
require_paths:
|
|
461
487
|
- lib
|
|
@@ -463,7 +489,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
463
489
|
requirements:
|
|
464
490
|
- - ">="
|
|
465
491
|
- !ruby/object:Gem::Version
|
|
466
|
-
version: 2.
|
|
492
|
+
version: 2.1.0
|
|
467
493
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
468
494
|
requirements:
|
|
469
495
|
- - ">="
|
|
@@ -471,7 +497,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
471
497
|
version: '0'
|
|
472
498
|
requirements: []
|
|
473
499
|
rubyforge_project:
|
|
474
|
-
rubygems_version: 2.6.
|
|
500
|
+
rubygems_version: 2.6.14
|
|
475
501
|
signing_key:
|
|
476
502
|
specification_version: 4
|
|
477
503
|
summary: Rails with react server rendering with webpack.
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module ReactOnRails
|
|
4
|
-
module ServerRenderingPool
|
|
5
|
-
class Node
|
|
6
|
-
# This implementation of the rendering pool uses NodeJS to execute javasript code
|
|
7
|
-
def self.reset_pool
|
|
8
|
-
options = {
|
|
9
|
-
size: ReactOnRails.configuration.server_renderer_pool_size,
|
|
10
|
-
timeout: ReactOnRails.configuration.server_renderer_timeout
|
|
11
|
-
}
|
|
12
|
-
@js_context_pool = ConnectionPool.new(options) { create_js_context }
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def self.reset_pool_if_server_bundle_was_modified
|
|
16
|
-
# No need for this method, the server bundle is automatically reset by node when changes
|
|
17
|
-
# Empty implementation to conform to ServerRenderingPool interface
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# js_code: JavaScript expression that returns a string.
|
|
21
|
-
# Returns a Hash:
|
|
22
|
-
# html: string of HTML for direct insertion on the page by evaluating js_code
|
|
23
|
-
# consoleReplayScript: script for replaying console
|
|
24
|
-
# hasErrors: true if server rendering errors
|
|
25
|
-
# Note, js_code does not have to be based on React.
|
|
26
|
-
# js_code MUST RETURN json stringify Object
|
|
27
|
-
# Calling code will probably call 'html_safe' on return value before rendering to the view.
|
|
28
|
-
def self.server_render_js_with_console_logging(js_code)
|
|
29
|
-
if trace_react_on_rails?
|
|
30
|
-
@file_index ||= 1
|
|
31
|
-
trace_messsage(js_code, "tmp/server-generated-#{@file_index % 10}.js")
|
|
32
|
-
@file_index += 1
|
|
33
|
-
end
|
|
34
|
-
json_string = eval_js(js_code)
|
|
35
|
-
JSON.parse(json_string)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
class << self
|
|
39
|
-
private
|
|
40
|
-
|
|
41
|
-
def trace_messsage(js_code, file_name = "tmp/server-generated.js", force = false)
|
|
42
|
-
return unless trace_react_on_rails? || force
|
|
43
|
-
# Set to anything to print generated code.
|
|
44
|
-
puts "Z" * 80
|
|
45
|
-
puts "react_renderer.rb: 92"
|
|
46
|
-
puts "wrote file #{file_name}"
|
|
47
|
-
File.write(file_name, js_code)
|
|
48
|
-
puts "Z" * 80
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def trace_react_on_rails?
|
|
52
|
-
ENV["TRACE_REACT_ON_RAILS"].present?
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def eval_js(js_code)
|
|
56
|
-
eof_symbol = "\r\n\0"
|
|
57
|
-
max_int = (2**30 - 1)
|
|
58
|
-
@js_context_pool.with do |js_context|
|
|
59
|
-
js_context.send(js_code + eof_symbol, 0)
|
|
60
|
-
result = ""
|
|
61
|
-
while result[-eof_symbol.length..-1] != eof_symbol
|
|
62
|
-
result += js_context.recv(max_int)
|
|
63
|
-
end
|
|
64
|
-
result[0..-eof_symbol.length]
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def create_js_context
|
|
69
|
-
begin
|
|
70
|
-
client = UNIXSocket.new("client/node/node.sock")
|
|
71
|
-
client.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true)
|
|
72
|
-
rescue StandardError => e
|
|
73
|
-
Rails.logger.error("Unable to connect to socket: client/node/node.sock. \
|
|
74
|
-
Make sure node server is up and running.")
|
|
75
|
-
Rails.logger.error(e)
|
|
76
|
-
raise e
|
|
77
|
-
end
|
|
78
|
-
client
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module ReactOnRails
|
|
4
|
-
module TestHelper
|
|
5
|
-
def self.launch_node
|
|
6
|
-
return unless ReactOnRails.configuration.server_render_method == "NodeJS"
|
|
7
|
-
|
|
8
|
-
path = "#{::Rails.root}/client/node"
|
|
9
|
-
puts "Launching NodeJS server at #{path}"
|
|
10
|
-
system("cd #{path} && yarn start &")
|
|
11
|
-
sleep(1)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|