method
visit_String
v1_9_3_392 -
Show latest stable
- Class:
Psych::Visitors::YAMLTree
visit_String(o)public
No documentation available.
# File ext/psych/lib/psych/visitors/yaml_tree.rb, line 229
def visit_String o
plain = false
quote = false
style = Nodes::Scalar::ANY
if binary?(o)
str = [o].pack('m').chomp
tag = '!binary' # FIXME: change to below when syck is removed
#tag = 'tag:yaml.org,2002:binary'
style = Nodes::Scalar::LITERAL
else
str = o
tag = nil
quote = !(String === @ss.tokenize(o))
plain = !quote
end
ivars = find_ivars o
if ivars.empty?
unless o.class == ::String
tag = "!ruby/string:#{o.class}"
end
@emitter.scalar str, nil, tag, plain, quote, style
else
maptag = '!ruby/string'
maptag << ":#{o.class}" unless o.class == ::String
register o, @emitter.start_mapping(nil, maptag, false, Nodes::Mapping::BLOCK)
@emitter.scalar 'str', nil, nil, true, false, Nodes::Scalar::ANY
@emitter.scalar str, nil, tag, plain, quote, style
dump_ivars o
@emitter.end_mapping
end
end