Class: Serialbench::Serializers::Toml::TomlrbSerializer

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

Instance Method Summary collapse

Methods inherited from BaseTomlSerializer

#features, format, #generate_toml, #library_require_name, #parse_config, #supports_streaming?

Methods inherited from BaseSerializer

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

Constructor Details

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

Instance Method Details

#available?Boolean

Returns:

  • (Boolean)


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

def available?
  require_library('tomlrb')
end

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

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/serialbench/serializers/toml/tomlrb_serializer.rb', line 30

def generate(object, options = {})
  raise NotImplementedError, 'tomlrb gem does not support TOML generation/dumping'
end

#nameObject



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

def name
  'tomlrb'
end

#parse(toml_string) ⇒ Object



25
26
27
28
# File 'lib/serialbench/serializers/toml/tomlrb_serializer.rb', line 25

def parse(toml_string)
  require 'tomlrb'
  Tomlrb.parse(toml_string)
end

#supports_arrays_of_tables?Boolean

Returns:

  • (Boolean)


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

def supports_arrays_of_tables?
  true
end

#supports_comments?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/serialbench/serializers/toml/tomlrb_serializer.rb', line 38

def supports_comments?
  false
end

#supports_generation?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/serialbench/serializers/toml/tomlrb_serializer.rb', line 34

def supports_generation?
  false
end

#supports_inline_tables?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/serialbench/serializers/toml/tomlrb_serializer.rb', line 46

def supports_inline_tables?
  true
end

#supports_multiline_strings?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/serialbench/serializers/toml/tomlrb_serializer.rb', line 50

def supports_multiline_strings?
  true
end

#versionObject



17
18
19
20
21
22
23
# File 'lib/serialbench/serializers/toml/tomlrb_serializer.rb', line 17

def version
  require 'tomlrb'
  # tomlrb doesn't expose a VERSION constant, so we'll use gem version
  Gem.loaded_specs['tomlrb']&.version&.to_s || 'unknown'
rescue LoadError, NameError
  'unknown'
end