react_on_rails 11.0.5 → 11.0.6

Sign up to get free protection for your applications and to get access to all the features.
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.