Class: Reditor::LibrarySearchQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/reditor/library_search_query.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query) ⇒ LibrarySearchQuery

Returns a new instance of LibrarySearchQuery.



10
11
12
13
14
15
16
# File 'lib/reditor/library_search_query.rb', line 10

def initialize(query)
  @query = query.to_s

  quoted = Regexp.quote(@query)
  @substr_pattern  = /^#{quoted}|#{quoted}$/i
  @partial_pattern = /#{quoted}/i
end

Class Method Details

.search(query, limit = 20) ⇒ Object



6
7
8
# File 'lib/reditor/library_search_query.rb', line 6

def self.search(query, limit = 20)
  new(query).search(limit)
end

Instance Method Details

#available_librariesObject



24
25
26
27
28
29
30
# File 'lib/reditor/library_search_query.rb', line 24

def available_libraries
  @available_libraries ||= (
    availables_from_loadpath +
    availables_from_gem      +
    availables_from_bundler
  ).uniq
end

#search(limit) ⇒ Object



18
19
20
21
22
# File 'lib/reditor/library_search_query.rb', line 18

def search(limit)
  available_libraries.sort_by {|name|
    indexes_with_match(name) + indexes_with_distance(name)
  }.take(limit)
end