Module: FastJsonparser

Defined in:
lib/fast_jsonparser.rb,
lib/fast_jsonparser/version.rb

Constant Summary collapse

Error =
Class.new(StandardError)
ParseError =
Class.new(Error)
UnknownError =
Class.new(Error)
BatchSizeTooSmall =
Class.new(Error)
DEFAULT_BATCH_SIZE =

from include/simdjson/dom/parser.h

1_000_000
VERSION =
"0.5.0"

Class Method Summary collapse

Class Method Details

.load(source, symbolize_keys: true) ⇒ Object



18
19
20
# File 'lib/fast_jsonparser.rb', line 18

def load(source, symbolize_keys: true)
  parser._load(source, symbolize_keys)
end

.load_many(source, symbolize_keys: true, batch_size: DEFAULT_BATCH_SIZE, &block) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/fast_jsonparser.rb', line 22

def load_many(source, symbolize_keys: true, batch_size: DEFAULT_BATCH_SIZE, &block)
  Native.new._load_many(source, symbolize_keys, batch_size, &block)
rescue UnknownError => error
  case error.message
  when "This parser can't support a document that big"
    raise BatchSizeTooSmall, "One of the documents was bigger than the batch size (#{batch_size}B), try increasing it."
  else
    raise
  end
end

.parse(source, symbolize_keys: true) ⇒ Object



14
15
16
# File 'lib/fast_jsonparser.rb', line 14

def parse(source, symbolize_keys: true)
  parser._parse(source, symbolize_keys)
end