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
Instance Method Summary collapse
Instance Method Details
#search(query, use_exact_match = false, &post_hook) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/gem_search/request.rb', line 11 def search(query, use_exact_match = false, &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) if use_exact_match matched_result = extract_exact_match(query, results) if matched_result gems << matched_result break end else gems += results end break if results.size.zero? end gems rescue Interrupt gems end |
#search_for_browse(gem) ⇒ Object
33 34 35 36 |
# File 'lib/gem_search/request.rb', line 33 def search_for_browse(gem) api_url = GEM_API % gem request_ruby_gems_api(api_url) end |