class MiddlewareAutocomplete::Base

Attributes

content_type[RW]
namespace[RW]
path[RW]
route_name[RW]
search_key[RW]

Public Class Methods

call(env) click to toggle source
# File lib/middleware_autocomplete/base.rb, line 20
def call(env)
  ActiveSupport::Notifications.instrument 'request.middleware_autocomplete' do
    result = perform(Rack::Request.new(env).params)
    [200, { 'Content-Type' => content_type_string }, [result]]
  end
end
content_type_string() click to toggle source

Content type string, e.g. 'application/json', 'application/xml'

# File lib/middleware_autocomplete/base.rb, line 63
def content_type_string
  Mime::Type.lookup_by_extension(content_type).to_s
end
perform(params) click to toggle source

Calls user defined method to return results Wraps this method with AR with_connection to prevent connection leaks

Attributes

  • params - Params hash passed to request

# File lib/middleware_autocomplete/base.rb, line 12
def perform(params)
  if use_with_connection
    with_connection { search(params) }
  else
    search(params)
  end
end
route() click to toggle source

Full path to the Autocomplete class

# File lib/middleware_autocomplete/base.rb, line 28
def route
  [namespace, path].reject(&:blank?).join('/').prepend('/')
end
use_with_connection() click to toggle source
# File lib/middleware_autocomplete/base.rb, line 46
def use_with_connection
  @use_with_connection || MiddlewareAutocomplete.use_with_connection
end

Private Class Methods

default_path() click to toggle source
# File lib/middleware_autocomplete/base.rb, line 73
def default_path
  name.sub(/Autocomplete\Z/, '').underscore
end
default_route_name() click to toggle source
# File lib/middleware_autocomplete/base.rb, line 69
def default_route_name
  [namespace, default_path].reject(&:blank?).join('_').tr('/', '_')
end
with_connection() { || ... } click to toggle source
# File lib/middleware_autocomplete/base.rb, line 77
def with_connection
  ActiveRecord::Base.connection_pool.with_connection do
    yield
  end
end