def build_query_with(options)
      clauses = []

      options.each_pair do |field, value|
        next if value.nil?

        code = @@fields[field]

        raise ArgumentError.new("Don't recognize field code `#{field}`") unless code

        clauses << %Q{#{code}="#{escape value}"}
      end

      return clauses.join(" and ")
    end
def build_query_with(options)
      clauses = []

      options.each_pair do |field, value|
        next if value.nil?

        code = @@fields[field]

        raise ArgumentError.new("Don't recognize field code `#{field}`") unless code

        clauses << %Q{#{code}="#{escape value}"}
      end

      return clauses.join(" and ")
    end
build_query_with(:title => "one two", :author => "three four")
 valid keys are those supported by BD HTML interface:
     :title, :author, :isbn, :subject, :keyword, :isbn, :issn

 For now, the value is always searched as a phrase, and multiple
 fields are always 'and'd.  We may enhance/expand later.

 Returns an un-escaped query, still needs to be put into a URL