class Searchr::Query

Attributes

fields_to_query[W]
query[W]

Public Instance Methods

base_query_url() click to toggle source
# File lib/searchr/query.rb, line 32
def base_query_url
  @base_query_url ||= default_base_query_url
end
debug_query?() click to toggle source
# File lib/searchr/query.rb, line 81
def debug_query?
  @do_debug_query ||= default_debug_query?
end
end_row() click to toggle source
# File lib/searchr/query.rb, line 73
def end_row
  start_row + num_rows - 1
end
fields_to_query() click to toggle source
# File lib/searchr/query.rb, line 36
def fields_to_query
  @fields_to_query ||= default_fields_to_query
end
fields_to_return() click to toggle source
# File lib/searchr/query.rb, line 40
def fields_to_return
  @fields_to_return ||= default_fields_to_return
  @fields_to_return.split(/\W+/)
end
fields_to_return=(array_or_string) click to toggle source
# File lib/searchr/query.rb, line 45
def fields_to_return=(array_or_string)
  @fields_to_return = if array_or_string.class==String
                        array_or_string
                      else
                        array_or_string.join(' ')
                      end
end
http_response() click to toggle source
# File lib/searchr/query.rb, line 20
def http_response
  Net::HTTP.get_response url
end
indent?() click to toggle source
# File lib/searchr/query.rb, line 77
def indent?
  @do_indent ||= default_indent?
end
num_rows() click to toggle source
# File lib/searchr/query.rb, line 63
def num_rows
  @num_rows ||= default_num_rows
end
num_rows=(num) click to toggle source
# File lib/searchr/query.rb, line 67
def num_rows=(num)
  num_as_int = Integer(num)
  raise "num_rows must be a positive integer (#{num})" if num_as_int < 0
  @num_rows = num_as_int
end
query() click to toggle source
# File lib/searchr/query.rb, line 24
def query
  @query ||= default_query
end
query_parameters() click to toggle source
# File lib/searchr/query.rb, line 16
def query_parameters
  subclass_responsibility
end
query_type() click to toggle source
# File lib/searchr/query.rb, line 28
def query_type
  @query_type ||= default_query_type
end
result_class() click to toggle source

There are more subclass responsibility methods in the protected section.

# File lib/searchr/query.rb, line 12
def result_class
  subclass_responsibility
end
return_type() click to toggle source
# File lib/searchr/query.rb, line 85
def return_type
  @return_type ||= default_return_type
end
start_row() click to toggle source
# File lib/searchr/query.rb, line 53
def start_row
  @start_row ||= 1
end
start_row=(num) click to toggle source
# File lib/searchr/query.rb, line 57
def start_row=(num)
  num_as_int = Integer(num)
  raise "start_row must be a positive integer (#{num})" if num_as_int < 1
  @start_row = num_as_int
end
url() click to toggle source
# File lib/searchr/query.rb, line 89
def url
  uri = URI(base_query_url)

  query_uri = Addressable::URI.new
  query_uri.query_values = query_parameters

  uri.query = query_uri.query
  uri
end

Protected Instance Methods

default_debug_query?() click to toggle source
# File lib/searchr/query.rb, line 126
def default_debug_query?
  # true required to retrieve result weights
  true
end
default_fields_to_query() click to toggle source
# File lib/searchr/query.rb, line 109
def default_fields_to_query
  subclass_responsibility
end
default_fields_to_return() click to toggle source
# File lib/searchr/query.rb, line 113
def default_fields_to_return
  subclass_responsibility
end
default_indent?() click to toggle source
# File lib/searchr/query.rb, line 121
def default_indent?
  # purely cosmetic to make it easier to read.
  true
end
default_num_rows() click to toggle source
# File lib/searchr/query.rb, line 117
def default_num_rows
  10
end
default_query() click to toggle source
# File lib/searchr/query.rb, line 101
def default_query
  subclass_responsibility
end
default_query_type() click to toggle source
# File lib/searchr/query.rb, line 105
def default_query_type
  subclass_responsibility
end
default_return_type() click to toggle source
# File lib/searchr/query.rb, line 131
def default_return_type
  'json'
end