Class: SafeYAML::Transform
- Inherits:
-
Object
- Object
- SafeYAML::Transform
show all
- Defined in:
- lib/safe_yaml/transform.rb,
lib/safe_yaml/transform/to_nil.rb,
lib/safe_yaml/transform/to_date.rb,
lib/safe_yaml/transform/to_float.rb,
lib/safe_yaml/transform/to_symbol.rb,
lib/safe_yaml/transform/to_boolean.rb,
lib/safe_yaml/transform/to_integer.rb,
lib/safe_yaml/transform/transformation_map.rb
Defined Under Namespace
Modules: TransformationMap
Classes: ToBoolean, ToDate, ToFloat, ToInteger, ToNil, ToSymbol
Constant Summary
collapse
- TRANSFORMERS =
[
Transform::ToSymbol.new,
Transform::ToInteger.new,
Transform::ToFloat.new,
Transform::ToNil.new,
Transform::ToBoolean.new,
Transform::ToDate.new
]
Class Method Summary
collapse
Class Method Details
.to_guessed_type(value, quoted = false, options = nil) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/safe_yaml/transform.rb', line 14
def self.to_guessed_type(value, quoted=false, options=nil)
return value if quoted
if value.is_a?(String)
TRANSFORMERS.each do |transformer|
success, transformed_value = transformer.method(:transform?).arity == 1 ?
transformer.transform?(value) :
transformer.transform?(value, options)
return transformed_value if success
end
end
value
end
|
.to_proper_type(value, quoted = false, tag = nil, options = nil) ⇒ Object
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/safe_yaml/transform.rb', line 30
def self.to_proper_type(value, quoted=false, tag=nil, options=nil)
case tag
when "tag:yaml.org,2002:binary", "x-private:binary", "!binary"
decoded = Base64.decode64(value)
decoded = decoded.force_encoding(value.encoding) if decoded.respond_to?(:force_encoding)
decoded
else
self.to_guessed_type(value, quoted, options)
end
end
|