Class: GemSearch::Request
- Inherits:
-
Object
- Object
- GemSearch::Request
- Defined in:
- lib/gem_search/request.rb
Constant Summary collapse
- SEARCH_API =
"#{RUBYGEMS_URL}/api/v1/search.json?query=%s&page=%d"
- GEM_API =
"#{RUBYGEMS_URL}/api/v1/gems/%s.json"
- MAX_REQUEST_COUNT =
20
- MAX_GEMS_PER_PAGE =
It has been determined by Rubygems API
30
Instance Method Summary collapse
Instance Method Details
#search(query, &post_hook) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/gem_search/request.rb', line 12 def search(query, &post_hook) gems = [] (1..MAX_REQUEST_COUNT).each do |n| post_hook.call if post_hook url = SEARCH_API % [query, n] results = request_ruby_gems_api(url) gems += results break if search_ended?(results.size) end gems rescue Interrupt gems end |
#search_for_browse(gem) ⇒ Object
26 27 28 29 |
# File 'lib/gem_search/request.rb', line 26 def search_for_browse(gem) api_url = GEM_API % gem request_ruby_gems_api(api_url) end |