Class: Fuzz::Selector

Inherits:
Object
  • Object
show all
Defined in:
lib/fuzz/selector.rb

Instance Method Summary collapse

Constructor Details

#initialize(items, options = {}) ⇒ Selector

Returns a new instance of Selector.



8
9
10
11
12
13
# 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

Instance Method Details

#pickObject



15
16
17
18
19
20
21
22
23
24
25
# 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