lib/saneitized/converter.rb in saneitized-1.0.1 vs lib/saneitized/converter.rb in saneitized-1.1.0
- old
+ new
@@ -1,21 +1,31 @@
+require 'json'
+
module Saneitized
def self.convert(unknown)
return Saneitized::Hash.new(unknown) if unknown.is_a? ::Hash
return Saneitized::Array.new(unknown) if unknown.is_a? ::Array
return unknown unless unknown.is_a? String #Only attempt to convert string
return true if unknown == 'true'
return false if unknown == 'false'
if value = Converter.integer?(unknown) then return value end
if value = Converter.float?(unknown) then return value end
+ if value = Converter.json?(unknown) then return convert(value) end
if value = Converter.time?(unknown) then return value end
unknown
end
module Converter
extend self
+
+ def json?(unknown)
+ JSON.parse(unknown)
+ rescue JSON::ParserError, TypeError
+ false
+ end
+
def integer?(unknown)
Integer(unknown)
rescue ArgumentError, TypeError
false
end