class Omnibar::State
Public Class Methods
new(values = {})
click to toggle source
# File lib/omnibar/state.rb, line 3 def initialize(values = {}) self.input = '' self.selection = self.cursor_offset = 0 values.each_pair do |attr, val| send(:"#{attr}=", val) end end
Public Instance Methods
add_to_input(string)
click to toggle source
# File lib/omnibar/state.rb, line 12 def add_to_input(string) self.input = input.insert(input.length - cursor_offset, string) end
backspace()
click to toggle source
# File lib/omnibar/state.rb, line 16 def backspace input.slice!(input.length - 1 - cursor_offset) end
current_query()
click to toggle source
# File lib/omnibar/state.rb, line 44 def current_query visible_queries[selection] || Query.new('') end
move_cursor_left()
click to toggle source
# File lib/omnibar/state.rb, line 28 def move_cursor_left self.cursor_offset = [0, cursor_offset - 1].max end
move_cursor_right()
click to toggle source
# File lib/omnibar/state.rb, line 32 def move_cursor_right self.cursor_offset = [input.length, cursor_offset + 1].min end
queries()
click to toggle source
# File lib/omnibar/state.rb, line 36 def queries Omnibar.config.queries.map { |q| q.new(input) }.sort_by(&:relevance).reverse end
results()
click to toggle source
TODO: Sort results based on relevance / certainty
# File lib/omnibar/state.rb, line 49 def results visible_queries.map(&:preview_text) end
select_down()
click to toggle source
# File lib/omnibar/state.rb, line 24 def select_down self.selection = [selection + 1, visible_queries.count - 1].min end
select_up()
click to toggle source
# File lib/omnibar/state.rb, line 20 def select_up self.selection = [selection - 1, 0].max end
visible_queries()
click to toggle source
# File lib/omnibar/state.rb, line 40 def visible_queries (@qc ||= {})[input] ||= queries.reject { |q| q.preview_text.nil? } end