Class: Serialbench::Serializers::Toml::TomlibSerializer

Inherits:
BaseTomlSerializer show all
Defined in:
lib/serialbench/serializers/toml/tomlib_serializer.rb

Instance Method Summary collapse

Methods inherited from BaseTomlSerializer

#available?, #features, format, #generate_toml, #parse_config, #supports_arrays_of_tables?, #supports_comments?, #supports_generation?, #supports_inline_tables?, #supports_multiline_strings?

Methods inherited from BaseSerializer

#get_version, #initialize, #require_library, #stream_parse

Constructor Details

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

Instance Method Details

#generate(data) ⇒ Object



18
19
20
21
# File 'lib/serialbench/serializers/toml/tomlib_serializer.rb', line 18

def generate(data)
  require 'tomlib'
  Tomlib.dump(data)
end

#library_require_nameObject



42
43
44
# File 'lib/serialbench/serializers/toml/tomlib_serializer.rb', line 42

def library_require_name
  'tomlib'
end

#nameObject



9
10
11
# File 'lib/serialbench/serializers/toml/tomlib_serializer.rb', line 9

def name
  'tomlib'
end

#parse(toml_string) ⇒ Object



13
14
15
16
# File 'lib/serialbench/serializers/toml/tomlib_serializer.rb', line 13

def parse(toml_string)
  require 'tomlib'
  Tomlib.load(toml_string)
end

#parse_streaming(toml_string, &block) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/serialbench/serializers/toml/tomlib_serializer.rb', line 23

def parse_streaming(toml_string, &block)
  # TOML doesn't typically support streaming parsing
  # Parse the entire document and yield it
  result = parse(toml_string)
  block&.call(result)
  1 # Return 1 document processed
end

#supports_streaming?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/serialbench/serializers/toml/tomlib_serializer.rb', line 31

def supports_streaming?
  false # TOML is typically parsed as a whole document
end

#versionObject



35
36
37
38
39
40
# File 'lib/serialbench/serializers/toml/tomlib_serializer.rb', line 35

def version
  return 'unknown' unless available?

  require 'tomlib'
  Tomlib::VERSION
end