Class: Serialbench::Serializers::Json::BaseJsonSerializer
- Inherits:
-
BaseSerializer
- Object
- BaseSerializer
- Serialbench::Serializers::Json::BaseJsonSerializer
- Defined in:
- lib/serialbench/serializers/json/base_json_serializer.rb
Direct Known Subclasses
JsonSerializer, OjSerializer, RapidjsonSerializer, YajlSerializer
Class Method Summary collapse
Instance Method Summary collapse
-
#available? ⇒ Boolean
Check if the JSON library is available.
- #capabilities ⇒ Object
-
#features ⇒ Object
JSON-specific features.
- #generate_json(object, options = {}) ⇒ Object
-
#library_require_name ⇒ Object
Subclasses should override this to specify their library name.
-
#parse_object(json_string) ⇒ Object
JSON-specific methods.
Methods inherited from BaseSerializer
#generate, #get_version, #initialize, #parse, #require_library, #stream_parse, #supports?
Constructor Details
This class inherits a constructor from Serialbench::Serializers::BaseSerializer
Class Method Details
.format ⇒ Object
9 10 11 |
# File 'lib/serialbench/serializers/json/base_json_serializer.rb', line 9 def self.format :json end |
Instance Method Details
#available? ⇒ Boolean
Check if the JSON library is available
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/serialbench/serializers/json/base_json_serializer.rb', line 42 def available? return @available if defined?(@available) @available = begin require library_require_name true rescue LoadError false end end |
#capabilities ⇒ Object
22 23 24 |
# File 'lib/serialbench/serializers/json/base_json_serializer.rb', line 22 def capabilities super | Set.new(%i[pretty_print]) end |
#features ⇒ Object
JSON-specific features
27 28 29 30 31 32 33 34 |
# File 'lib/serialbench/serializers/json/base_json_serializer.rb', line 27 def features { pretty_print: supports?(:pretty_print), streaming: supports?(:sax) || supports?(:streaming), symbol_keys: supports?(:symbol_keys), custom_types: supports?(:custom_types) } end |
#generate_json(object, options = {}) ⇒ Object
18 19 20 |
# File 'lib/serialbench/serializers/json/base_json_serializer.rb', line 18 def generate_json(object, = {}) generate(object, ) end |
#library_require_name ⇒ Object
Subclasses should override this to specify their library name
37 38 39 |
# File 'lib/serialbench/serializers/json/base_json_serializer.rb', line 37 def library_require_name raise NotImplementedError, 'Subclasses must implement #library_require_name' end |
#parse_object(json_string) ⇒ Object
JSON-specific methods
14 15 16 |
# File 'lib/serialbench/serializers/json/base_json_serializer.rb', line 14 def parse_object(json_string) parse(json_string) end |