class Rison::Dumper
Public Class Methods
dump(object)
click to toggle source
# File lib/rison/dumper.rb, line 4 def dump(object) case object when TrueClass "!t" when FalseClass "!f" when NilClass "!n" when Numeric object.to_s.gsub('+', '') when Hash "(#{object.map { |k, v| dump(k) + ':' + dump(v) }.join(',')})" when ::Array "!(#{object.map { |e| dump(e) }.join(',')})" else escape(object.to_s) end end
Private Class Methods
escape(str)
click to toggle source
# File lib/rison/dumper.rb, line 25 def escape(str) id?(str) ? str : "'#{str.gsub('!', '!!').gsub("'", "!'")}'" end
id?(str)
click to toggle source
# File lib/rison/dumper.rb, line 29 def id?(str) str.match?(/^[^\-0-9 '!:\(\),\*@¥\$][^ '!:\(\),\*@¥\$]*$/) end