Class: Moneta::Transforms::YAML
- Inherits:
-
Moneta::Transform::Serializer
- Object
- Moneta::Transform
- Moneta::Transform::Serializer
- Moneta::Transforms::YAML
- Defined in:
- lib/moneta/transforms/yaml.rb
Overview
Serializes objects to text as YAML
Instance Method Summary collapse
- #deserialize(value) ⇒ Object
-
#initialize(safe: false, **options) ⇒ YAML
constructor
A new instance of YAML.
- #serialize(value) ⇒ Object
Methods inherited from Moneta::Transform::Serializer
#decodable?, #decode, delegate_to, #encode
Methods inherited from Moneta::Transform
#decodable?, #decode, delegate_to, #encode, #method_missing, #respond_to_missing?
Constructor Details
#initialize(safe: false, **options) ⇒ YAML
Returns a new instance of YAML.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/moneta/transforms/yaml.rb', line 7 def initialize(safe: false, **) super @load_method = if safe ::YAML.method(:safe_load) else ::YAML.respond_to?(:unsafe_load) ? ::YAML.method(:unsafe_load) : ::YAML.method(:load) end @load_positional_options, @load_keyword_options = (@load_method, ) @dump_method = if safe && ::YAML.respond_to?(:safe_dump) ::YAML.method(:safe_dump) else ::YAML.method(:dump) end @dump_positional_options, @dump_keyword_options = (@dump_method, ) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Moneta::Transform
Instance Method Details
#deserialize(value) ⇒ Object
32 33 34 |
# File 'lib/moneta/transforms/yaml.rb', line 32 def deserialize(value) @load_method.call(value, *@load_positional_options, **@load_keyword_options) end |
#serialize(value) ⇒ Object
28 29 30 |
# File 'lib/moneta/transforms/yaml.rb', line 28 def serialize(value) @dump_method.call(value, *@dump_positional_options, **@dump_keyword_options) end |