Exception: ReactOnRails::PrerenderError

Inherits:
Error
  • Object
show all
Defined in:
lib/react_on_rails/prerender_error.rb

Constant Summary collapse

MAX_ERROR_SNIPPET_TO_LOG =
1000

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(component_name: nil, err: nil, props: nil, js_code: nil, console_messages: nil) ⇒ PrerenderError

err might be nil if JS caught the error



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/react_on_rails/prerender_error.rb', line 14

def initialize(component_name: nil, err: nil, props: nil,
               js_code: nil, console_messages: nil)
  @component_name = component_name
  @err = err
  @props = props
  @js_code = js_code
  @console_messages = console_messages

  backtrace, message = calc_message(component_name, console_messages, err, js_code, props)

  super([message, backtrace].compact.join("\n"))
end

Instance Attribute Details

#component_nameObject (readonly)

TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/



11
12
13
# File 'lib/react_on_rails/prerender_error.rb', line 11

def component_name
  @component_name
end

#console_messagesObject (readonly)

TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/



11
12
13
# File 'lib/react_on_rails/prerender_error.rb', line 11

def console_messages
  @console_messages
end

#errObject (readonly)

TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/



11
12
13
# File 'lib/react_on_rails/prerender_error.rb', line 11

def err
  @err
end

#js_codeObject (readonly)

TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/



11
12
13
# File 'lib/react_on_rails/prerender_error.rb', line 11

def js_code
  @js_code
end

#propsObject (readonly)

TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/



11
12
13
# File 'lib/react_on_rails/prerender_error.rb', line 11

def props
  @props
end

Instance Method Details

#raven_contextObject



31
32
33
# File 'lib/react_on_rails/prerender_error.rb', line 31

def raven_context
  to_error_context
end

#to_error_contextObject



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/react_on_rails/prerender_error.rb', line 35

def to_error_context
  result = {
    component_name: component_name,
    err: err,
    props: props,
    js_code: js_code,
    console_messages: console_messages
  }

  result.merge!(err.to_error_context) if err.respond_to?(:to_error_context)
  result
end

#to_honeybadger_contextObject



27
28
29
# File 'lib/react_on_rails/prerender_error.rb', line 27

def to_honeybadger_context
  to_error_context
end