react_on_rails 11.0.5 → 11.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e2e9cfdc5d161ab3706f779c18c8ce1a166b066
4
- data.tar.gz: 6211ecc33d60cccc7d385ddcc7550a31f1502d43
3
+ metadata.gz: 2e83dc63e255b12add1db7f16fa2ae9c8ee21f8d
4
+ data.tar.gz: e771480790081124a2673330cda45802e11ea15d
5
5
  SHA512:
6
- metadata.gz: 3cac9f496b6163da14528c717ef9c6a87ad15d11f87cab027d3af08ebe48121345f62264cd42dcd2cb64e847a38bc07a2ccb6b5951a98b9ca4737414e1a5afe2
7
- data.tar.gz: e692554e9375d8c789894624c86639fcc442314ccc024050fca0ee4e371a7f05e047188bed0cf24f6d32497b7ee454ad9cba07fc1d062821c720a0274d4ddd50
6
+ metadata.gz: 8c3da1497f3990327569b93d578d8cc992f222dcb1a2be1c859abf2b4df37afbe960f5242fb567b861cf55339e2affe3d45c776124b9586de05a93020e5bf8f2
7
+ data.tar.gz: 37ab5c553e1adca77bc00a5c99832ebffbaa6c64b40aaed12023abe8e89351cf03a6c479502f43ce504526bb940a3aecde21bbd687c9f2b0acb791b0824e13b7
@@ -12,6 +12,9 @@ Changes since last non-beta release.
12
12
 
13
13
  #### Changed
14
14
 
15
+ ### [11.0.6] - 2018-05-11
16
+ - Even more detailed errors for Honeybadger and Sentry when there's a JSON parse error on server rendering. [PR 1086](https://github.com/shakacode/react_on_rails/pull/1086) by [justin808](https://github.com/justin808).
17
+
15
18
  ### [11.0.5] - 2018-05-11
16
19
  - More detailed errors for Honeybadger and Sentry. [PR 1081](https://github.com/shakacode/react_on_rails/pull/1081) by [justin808](https://github.com/justin808).
17
20
 
@@ -758,7 +761,8 @@ Best done with Object destructing:
758
761
  ##### Fixed
759
762
  - Fix several generator related issues.
760
763
 
761
- [Unreleased]: https://github.com/shakacode/react_on_rails/compare/11.0.5...master
764
+ [Unreleased]: https://github.com/shakacode/react_on_rails/compare/11.0.6...master
765
+ [11.0.6]: https://github.com/shakacode/react_on_rails/compare/11.0.5...11.0.6
762
766
  [11.0.5]: https://github.com/shakacode/react_on_rails/compare/11.0.4...11.0.5
763
767
  [11.0.4]: https://github.com/shakacode/react_on_rails/compare/11.0.3...11.0.4
764
768
  [11.0.3]: https://github.com/shakacode/react_on_rails/compare/11.0.2...11.0.3
data/README.md CHANGED
@@ -2,17 +2,16 @@
2
2
 
3
3
  *If this projects helps you, please give us a star!*
4
4
 
5
- ## Need Help with Rails + Webpack + React? Want better performance?
5
+ ## Need Help with Rails + Webpack v4 + React? Want better performance?
6
6
  Aloha, I'm Justin Gordon the creator and maintainer of React on Rails. I offer a [React on Rails Pro Support Plan](http://www.shakacode.com/work/shakacode-pro-support.pdf), and I can help you with:
7
- * Optimizing your webpack setup for React on Rails.
8
- * Upgrading from older React on Rails to newer versions.
7
+ * Optimizing your webpack setup to Webpack v4 for React on Rails.
8
+ * Upgrading from older React on Rails to newer versions (are using using the new Webpacker setup that avoids the asset pipeline?)
9
9
  * Better performance client and server side.
10
- * Migrating from Angular to React.
10
+ * Efficiently migrating from Angular to React.
11
11
  * Best practices based on 4 years of React on Rails experience.
12
12
  * Early access to the React on Rails Pro Gem and Node code, including:
13
- * ShakaCode's Node.js rendering server for better performance for server rendering (used now at [egghead.io](https://egghead.io/)).
14
- * Performance helpers, especially for server rendering
15
- * Webpack configuration examples
13
+ * ShakaCode's Node.js rendering server for better performance for server rendering (live at [egghead.io](https://egghead.io/)).
14
+ * Performance caching helpers, especially for server rendering
16
15
 
17
16
  Please [email me](mailto:justin@shakacode.com) for a free half-hour project consultation, on anything from React on Rails to any aspect of web development.
18
17
 
@@ -3,6 +3,8 @@
3
3
  require "rails"
4
4
 
5
5
  require "react_on_rails/error"
6
+ require "react_on_rails/prerender_error"
7
+ require "react_on_rails/json_parse_error"
6
8
  require "react_on_rails/react_on_rails_helper"
7
9
  require "react_on_rails/controller"
8
10
  require "react_on_rails/version"
@@ -0,0 +1,26 @@
1
+ module ReactOnRails
2
+ class JsonParseError < ::ReactOnRails::Error
3
+ attr_reader :json
4
+
5
+ def initialize(parse_error, json)
6
+ @json = json
7
+ @original_error = parse_error
8
+ super(parse_error.message)
9
+ end
10
+
11
+ def to_honeybadger_context
12
+ to_error_context
13
+ end
14
+
15
+ def raven_context
16
+ to_error_context
17
+ end
18
+
19
+ def to_error_context
20
+ {
21
+ original_error: @original_error,
22
+ json: @json
23
+ }
24
+ end
25
+ end
26
+ end
@@ -27,6 +27,19 @@ module ReactOnRails
27
27
  to_error_context
28
28
  end
29
29
 
30
+ def to_error_context
31
+ result = {
32
+ component_name: component_name,
33
+ err: err,
34
+ props: props,
35
+ js_code: js_code,
36
+ console_messages: console_messages
37
+ }
38
+
39
+ result.merge!(err.to_error_context) if err.respond_to?(:to_error_context)
40
+ result
41
+ end
42
+
30
43
  private
31
44
 
32
45
  def calc_message(component_name, console_messages, err, js_code, props)
@@ -59,15 +72,5 @@ console messages:
59
72
  end
60
73
  [backtrace, message]
61
74
  end
62
-
63
- def to_error_context
64
- {
65
- component_name: component_name,
66
- err: err,
67
- props: props,
68
- js_code: js_code,
69
- console_messages: console_messages
70
- }
71
- end
72
75
  end
73
76
  end
@@ -7,6 +7,8 @@ module ReactOnRails
7
7
  class RenderOptions
8
8
  include Utils::Required
9
9
 
10
+ attr_accessor :request_digest
11
+
10
12
  NO_PROPS = {}.freeze
11
13
 
12
14
  def initialize(react_component_name: required("react_component_name"), options: required("options"))
@@ -49,7 +51,7 @@ module ReactOnRails
49
51
  end
50
52
 
51
53
  def to_s
52
- "{ react_component_name = #{react_component_name}, options = #{options}"
54
+ "{ react_component_name = #{react_component_name}, options = #{options}, request_digest = #{request_digest}"
53
55
  end
54
56
 
55
57
  private
@@ -47,8 +47,13 @@ module ReactOnRails
47
47
  "tmp/server-generated-#{@file_index % 10}.js")
48
48
  @file_index += 1
49
49
  end
50
- json_string = js_evaluator.eval_js(js_code)
51
- result = JSON.parse(json_string)
50
+ json_string = js_evaluator.eval_js(js_code, render_options)
51
+ result = nil
52
+ begin
53
+ result = JSON.parse(json_string)
54
+ rescue JSON::ParserError => e
55
+ raise ReactOnRails::JsonParseError.new(e, json_string)
56
+ end
52
57
 
53
58
  if render_options.logging_on_server
54
59
  console_script = result["consoleReplayScript"]
@@ -82,7 +87,7 @@ module ReactOnRails
82
87
  end
83
88
  end
84
89
 
85
- def eval_js(js_code)
90
+ def eval_js(js_code, _render_options)
86
91
  @js_context_pool.with do |js_context|
87
92
  result = js_context.eval(js_code)
88
93
  js_context.eval("console.history = []")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReactOnRails
4
- VERSION = "11.0.5".freeze
4
+ VERSION = "11.0.6".freeze
5
5
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-on-rails",
3
- "version": "11.0.5",
3
+ "version": "11.0.6",
4
4
  "description": "react-on-rails JavaScript for react_on_rails Ruby gem",
5
5
  "main": "node_package/lib/ReactOnRails.js",
6
6
  "directories": {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.0.5
4
+ version: 11.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Gordon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-12 00:00:00.000000000 Z
11
+ date: 2018-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -436,6 +436,7 @@ files:
436
436
  - lib/react_on_rails/error.rb
437
437
  - lib/react_on_rails/git_utils.rb
438
438
  - lib/react_on_rails/json_output.rb
439
+ - lib/react_on_rails/json_parse_error.rb
439
440
  - lib/react_on_rails/locales_to_js.rb
440
441
  - lib/react_on_rails/prerender_error.rb
441
442
  - lib/react_on_rails/react_component/render_options.rb
@@ -497,7 +498,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
497
498
  version: '0'
498
499
  requirements: []
499
500
  rubyforge_project:
500
- rubygems_version: 2.6.14
501
+ rubygems_version: 2.6.13
501
502
  signing_key:
502
503
  specification_version: 4
503
504
  summary: Rails with react server rendering with webpack.