def symbolize_keys(attributes)
        return attributes.reduce({}) do |attribute, (key, value)|
          attribute.tap { |a| a[key.to_sym] = symbolize_keys(value) }
        end if attributes.is_a? Hash

        return attributes.reduce([]) do |attribute, value|
          attribute << symbolize_keys(value); attribute
        end if attributes.is_a? Array

        attributes
      end
def symbolize_keys(attributes)
        return attributes.reduce({}) do |attribute, (key, value)|
          attribute.tap { |a| a[key.to_sym] = symbolize_keys(value) }
        end if attributes.is_a? Hash

        return attributes.reduce([]) do |attribute, value|
          attribute << symbolize_keys(value); attribute
        end if attributes.is_a? Array

        attributes
      end
Internal: Symbolizes all keys passed to the search attributes.