class Tire::SuggestPlugin::Suggest

Public Class Methods

new(indices=nil, options={}, &block) click to toggle source
# File lib/tire/suggest_plugin.rb, line 10
def initialize(indices=nil, options={}, &block)
  @indices = Array(indices)

  @params = Params.new(options)
  if block_given?
    block.arity < 1 ? @params.instance_eval(&block) : block.call(@params)
  end
end

Public Instance Methods

perform() click to toggle source
# File lib/tire/suggest_plugin.rb, line 23
def perform
  response = Tire::Configuration.client.get(self.url, @params.to_json)
  if response.failure?
    STDERR.puts "[REQUEST FAILED] #{self.to_curl}\n"
    raise SuggestRequestFailed, response.to_s
  end
  @suggestions = Suggestions.new(MultiJson.load(response.body))
end
suggestions() click to toggle source
# File lib/tire/suggest_plugin.rb, line 19
def suggestions
  @suggestions or (perform and @suggestions)
end
to_curl() click to toggle source
# File lib/tire/suggest_plugin.rb, line 37
def to_curl
  params_to_json_escaped = @params.to_json.gsub("'", '\u0027')
  "curl -X GET '#{url}' -d '#{params_to_json_escaped}'"
end
url() click to toggle source
# File lib/tire/suggest_plugin.rb, line 32
def url
  path = ['/', @indices.join(','), '__suggest'].join('/').squeeze('/')
  Tire::Configuration.url + path
end