Class: Serialbench::Serializers::Toml::BaseTomlSerializer
- Inherits:
-
BaseSerializer
- Object
- BaseSerializer
- Serialbench::Serializers::Toml::BaseTomlSerializer
- Defined in:
- lib/serialbench/serializers/toml/base_toml_serializer.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
-
#available? ⇒ Boolean
Check if the TOML library is available.
- #capabilities ⇒ Object
-
#features ⇒ Object
TOML-specific features.
- #generate_toml(object, options = {}) ⇒ Object
-
#library_require_name ⇒ Object
Subclasses should override this to specify their library name.
-
#parse_config(toml_string) ⇒ Object
TOML-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/toml/base_toml_serializer.rb', line 9 def self.format :toml end |
Instance Method Details
#available? ⇒ Boolean
Check if the TOML library is available
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/serialbench/serializers/toml/base_toml_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/toml/base_toml_serializer.rb', line 22 def capabilities super | Set.new(%i[arrays_of_tables inline_tables multiline_strings]) end |
#features ⇒ Object
TOML-specific features
27 28 29 30 31 32 33 34 |
# File 'lib/serialbench/serializers/toml/base_toml_serializer.rb', line 27 def features { comments: supports?(:comments), arrays_of_tables: supports?(:arrays_of_tables), inline_tables: supports?(:inline_tables), multiline_strings: supports?(:multiline_strings) } end |
#generate_toml(object, options = {}) ⇒ Object
18 19 20 |
# File 'lib/serialbench/serializers/toml/base_toml_serializer.rb', line 18 def generate_toml(object, = {}) generate(object, ) end |
#library_require_name ⇒ Object
Subclasses should override this to specify their library name
37 38 39 |
# File 'lib/serialbench/serializers/toml/base_toml_serializer.rb', line 37 def library_require_name raise NotImplementedError, 'Subclasses must implement #library_require_name' end |
#parse_config(toml_string) ⇒ Object
TOML-specific methods
14 15 16 |
# File 'lib/serialbench/serializers/toml/base_toml_serializer.rb', line 14 def parse_config(toml_string) parse(toml_string) end |