def match_any?(data = nil, values = [])

      unless data.blank?

        unless values.kind_of?(Array)
          # wow, this worked!!??
          # values was not an array, so, add values to a new array and assign back to values
          values = [values]
        end

        values.each do |value|

          if value.kind_of?(String) && (data.to_s.downcase.eql?(value.downcase) || value.eql?("all"))
            return true

          elsif value.kind_of?(Symbol) && (data.downcase.to_sym.eql?(value) || value.eql?(:all))
            return true

          elsif value.kind_of?(Regexp) && data.match(value)
            return true

          end
        end

      end

      return false
    end
def match_any?(data = nil, values = [])

      unless data.blank?

        unless values.kind_of?(Array)
          # wow, this worked!!??
          # values was not an array, so, add values to a new array and assign back to values
          values = [values]
        end

        values.each do |value|

          if value.kind_of?(String) && (data.to_s.downcase.eql?(value.downcase) || value.eql?("all"))
            return true

          elsif value.kind_of?(Symbol) && (data.downcase.to_sym.eql?(value) || value.eql?(:all))
            return true

          elsif value.kind_of?(Regexp) && data.match(value)
            return true

          end
        end

      end

      return false
    end
Matches a single value against an array of Strings, Symbols, and Regexp's.
 @param [String] data    Any value as a String to compare against any of the Strings, Symbols, or Regexp's in the values argument.
 @param [Array] values   An array of Strings, Symbols, or Regexp's to compare against the data argument.  The array can be a mix of all three possible types.
 @return [Boolean] True if data matches any of the values or expressions in the values argument, otherwise, false.