def unstringify_value(value)
      result = Integer(value) rescue value
      if value == 'true'
        result = true
      elsif value == 'false'
        result = false
      elsif value.kind_of?(Array)
        value.each_with_index do |v, i|
          result[i] = unstringify_value(v)
        end
      end
      result
    end
def unstringify_value(value)
      result = Integer(value) rescue value
      if value == 'true'
        result = true
      elsif value == 'false'
        result = false
      elsif value.kind_of?(Array)
        value.each_with_index do |v, i|
          result[i] = unstringify_value(v)
        end
      end
      result
    end
Attempts to convert numeric strings and boolean strings into proper
 integer and boolean types. If value is an array, it will recurse
 through those values.
 Returns the input value if it's not a number string or boolean string.
 For example "123" would be converted to 123, and "true"/"false" would be
 converted to true/false.
 The only valid boolean-strings are "true" and "false".