class Fuzz::Selector

Attributes

cache[R]
default[R]
entries[R]
picker[R]

Public Class Methods

new(items, options = {}) click to toggle source
# File lib/fuzz/selector.rb, line 8
def initialize(items, options = {})
  @cache = options.fetch(:cache, Fuzz::NullCache.new)
  @default = options.fetch(:default, nil)
  @picker = options.fetch(:picker, Fuzz::RofiPicker.new)
  @entries = items.map { |item| make_entry(item, @cache) }
end

Public Instance Methods

pick() click to toggle source
# File lib/fuzz/selector.rb, line 15
def pick
  title = picker.pick(titles)
  chosen_entry = find_entry_by_title(title)

  if chosen_entry.nil?
    default
  else
    cache.increment(chosen_entry.title)
    chosen_entry.object
  end
end