Exception: MultiJson::Adapters::Oj::ParseError

Inherits:
SyntaxError
  • Object
show all
Defined in:
lib/multi_json/adapters/oj.rb

Overview

In certain cases OJ gem may throw JSON::ParserError exception instead of its own class. Also, we can't expect ::JSON::ParserError and ::Oj::ParseError to always be defined, since it's often not the case. Because of this, we can't reference those classes directly and have to do string comparison instead. This will not catch subclasses, but it shouldn't be a problem since the library is not known to be using it (at least for now).

Constant Summary collapse

WRAPPED_CLASSES =
%w[Oj::ParseError JSON::ParserError].to_set.freeze

Class Method Summary collapse

Class Method Details

.===(exception) ⇒ Object


22
23
24
25
26
27
28
29
# File 'lib/multi_json/adapters/oj.rb', line 22

def self.===(exception)
  case exception
  when ::SyntaxError
    true
  else
    WRAPPED_CLASSES.include?(exception.class.to_s)
  end
end