class CC::Yaml::Serializer::Generic
Attributes
options[R]
Public Class Methods
new(options = nil)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 12 def initialize(options = nil) @options = options || {} end
serialize(node, options = nil)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 8 def self.serialize(node, options = nil) new(options).serialize(node) end
Public Instance Methods
serialize(node)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 20 def serialize(node) case node when Nodes::Root then serialize_root(node) when Nodes::Scalar then serialize_scalar(node) when Nodes::Mapping then serialize_mapping(node) when Nodes::Sequence then serialize_sequence(node) else raise NotSupportedError, "do not know how to serialize %p" % node.class end end
serialize_binary(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 87 def serialize_binary(value) serialize_str(value) end
serialize_bool(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 45 def serialize_bool(value) serialize_value(value) end
serialize_decrypted(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 75 def serialize_decrypted(value) serialize_value(value) end
serialize_encrypted(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 71 def serialize_encrypted(value) serialize_value(value) end
serialize_float(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 49 def serialize_float(value) serialize_value(value) end
serialize_key(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 111 def serialize_key(value) symbol_keys? ? value.to_sym : value.to_s end
serialize_mapping(node)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 103 def serialize_mapping(node) node.map { |key, value| [serialize_key(key), serialize(value)] } end
serialize_regexp(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 79 def serialize_regexp(value) serialize_value(value) end
serialize_root(node)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 99 def serialize_root(node) serialize_mapping(node) end
serialize_scalar(node)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 30 def serialize_scalar(node) case value = node.value when true, false then serialize_bool(value) when Float then serialize_float(value) when Integer then serialize_integer(value) when Time then serialize_time(value) when SecureString then serialize_secure(value) when Regexp then serialize_regexp(value) when String value.encoding == Encoding::BINARY ? serialize_binary(value) : serialize_str(value) else serialize_value(node) end end
serialize_secure(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 57 def serialize_secure(value) case options[:secure] when :decrypted raise ArgumentError, "secure option is set decrypted, but a secure value is not decrypted" unless value.decrypted? serialize_decrypted(value) when :encrypted raise ArgumentError, "secure option is set encrypted, but a secure value is not encrypted" unless value.encrypted? serialize_encrypted(value) else raise ArgumentError, "unexpected value for secure option: %p" % options[:secure] if options[:secure] value.encrypted? ? serialize_encrypted(value) : serialize_decrypted(value) end end
serialize_sequence(node)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 107 def serialize_sequence(node) node.map { |value| serialize(value) } end
serialize_str(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 83 def serialize_str(value) serialize_value(value) end
serialize_time(value)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 53 def serialize_time(value) serialize_value(value) end
serialize_value(node)
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 95 def serialize_value(node) raise NotSupportedError, "cannot serialize %p with %p" % [node.class, self.class] end
symbol_keys?()
click to toggle source
# File lib/cc/yaml/serializer/generic.rb, line 16 def symbol_keys? !!options[:symbol_keys] end