Class: GemSearch::Executor
- Inherits:
-
Object
- Object
- GemSearch::Executor
- Includes:
- Rendering, Utils::SystemUtil
- Defined in:
- lib/gem_search/executor.rb
Constant Summary collapse
- BASE_URL =
'https://rubygems.org'
- SEARCH_API =
"#{BASE_URL}/api/v1/search.json?query=%s&page=%d"
- GEM_API =
"#{BASE_URL}/api/v1/gems/%s.json"
- GEM_URL =
"#{BASE_URL}/gems/%s"
- MAX_REQUEST_COUNT =
20
- MAX_GEMS_PER_PAGE =
It has been determined by Github API
30
Constants included from Rendering
Rendering::DEFAULT_RULED_LINE_SIZE
Instance Method Summary collapse
Methods included from Utils::SystemUtil
Methods included from Rendering
Instance Method Details
#browse(gem) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gem_search/executor.rb', line 28 def browse(gem) return unless gem api_url = GEM_API % gem result = request_ruby_gems_api(api_url) url = result['homepage_uri'] if url.nil? || url.empty? url = GEM_URL % gem end puts "Opening #{url}" browser_open(url) end |
#search(query, opts) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/gem_search/executor.rb', line 18 def search(query, opts) return unless query print 'Searching ' gems = search_gems(query) puts fail GemSearch::LibraryNotFound, 'We did not find results.' if gems.size.zero? gems_sort!(gems, opts[:sort]) Executor.render(gems, opts[:detail]) end |