Class: Serialbench::Serializers::Json::RapidjsonSerializer

Inherits:
BaseJsonSerializer show all
Defined in:
lib/serialbench/serializers/json/rapidjson_serializer.rb

Overview

RapidJSON serializer - Ruby bindings for RapidJSON C++ library

Instance Method Summary collapse

Methods inherited from BaseJsonSerializer

format, #generate_json, #library_require_name, #parse_object, #supports_custom_types?, #supports_generation?, #supports_pretty_print?, #supports_symbol_keys?

Methods inherited from BaseSerializer

#get_version, #initialize, #stream_parse, #supports_streaming?

Constructor Details

This class inherits a constructor from Serialbench::Serializers::BaseSerializer

Instance Method Details

#available?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/serialbench/serializers/json/rapidjson_serializer.rb', line 10

def available?
  require_library('rapidjson')
end

#featuresObject



35
36
37
# File 'lib/serialbench/serializers/json/rapidjson_serializer.rb', line 35

def features
  %w[parsing generation high-performance c-extension]
end

#generate(object, _options = {}) ⇒ Object



30
31
32
33
# File 'lib/serialbench/serializers/json/rapidjson_serializer.rb', line 30

def generate(object, _options = {})
  require 'rapidjson'
  RapidJSON.dump(object)
end

#nameObject



14
15
16
# File 'lib/serialbench/serializers/json/rapidjson_serializer.rb', line 14

def name
  'rapidjson'
end

#parse(json_string) ⇒ Object



25
26
27
28
# File 'lib/serialbench/serializers/json/rapidjson_serializer.rb', line 25

def parse(json_string)
  require 'rapidjson'
  RapidJSON.parse(json_string)
end

#versionObject



18
19
20
21
22
23
# File 'lib/serialbench/serializers/json/rapidjson_serializer.rb', line 18

def version
  require 'rapidjson'
  RapidJSON::VERSION
rescue StandardError
  'unknown'
end