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
search(params)
click to toggle source
Returns search results for autocompletition Result should be in the same format that your content_type
Should be defined by user
# File lib/middleware_autocomplete/base.rb, line 53 def search(params) raise NotImplementedError 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