module Saneitized
Constants
- VERSION
Public Class Methods
convert(unknown, options = {})
click to toggle source
# File lib/saneitized/converter.rb, line 6 def self.convert(unknown, options = {}) options[:blacklist] ||= nil options[:except] ||= [] options[:add] ||= [] options[:only] ||= %w(true false nil integer float json) return Saneitized::Hash.new(unknown, options) if unknown.is_a? ::Hash return Saneitized::Array.new(unknown, options) if unknown.is_a? ::Array return unknown unless unknown.is_a? String #Only attempt to convert string return unknown if Array(options[:blacklist]).include?(unknown) except = Array(options[:except]).map(&:to_s) only = Array(options[:only]).map(&:to_s) add = Array(options[:add]).map(&:to_s) sanitizers = (only + add).uniq - except sanitizers.each do |type| value = Converter.send(type + '?', unknown) next if value == :nope return (type == 'json') ? convert(value, options) : value end unknown end