Class: Reditor::LibrarySearchQuery

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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from BundlerSupport

#bundler_specs

Constructor Details

#initialize(query) ⇒ LibrarySearchQuery

Returns a new instance of LibrarySearchQuery.



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

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



8
9
10
# File 'lib/reditor/library_search_query.rb', line 8

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

Instance Method Details

#available_librariesObject



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

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

#search(limit) ⇒ Object



20
21
22
23
24
# File 'lib/reditor/library_search_query.rb', line 20

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