class Trample::Autocomplete::Formatter
Public Class Methods
new(formatter = nil)
click to toggle source
# File lib/trample/autocomplete/formatter.rb, line 5 def initialize(formatter = nil) if formatter.respond_to?(:call) @formatter = formatter else @formatter = hash_formatter_to_proc(formatter) end end
Public Instance Methods
format_all(results, options = {})
click to toggle source
# File lib/trample/autocomplete/formatter.rb, line 13 def format_all(results, options = {}) results = results.map do |r| format_one(r) end if user_query = options[:user_query] results.unshift(Hashie::Mash.new(id: user_query, key: user_query, text: "\"#{user_query}\"", user_query: true)) end results end
format_one(result)
click to toggle source
# File lib/trample/autocomplete/formatter.rb, line 25 def format_one(result) @formatter.call(result) end
Private Instance Methods
default_hash()
click to toggle source
# File lib/trample/autocomplete/formatter.rb, line 31 def default_hash { id: :id, key: :id, text: :name } end
hash_formatter_to_proc(hash)
click to toggle source
# File lib/trample/autocomplete/formatter.rb, line 39 def hash_formatter_to_proc(hash) hash ||= default_hash ->(result) { { id: result.send(hash[:id]), key: result.send(hash[:key]), text: result.send(hash[:text]) } } end