Class: GemfileUtils::Parser::RubyGems
- Inherits:
-
Object
- Object
- GemfileUtils::Parser::RubyGems
- Defined in:
- lib/gemfile_utils/parser/ruby_gems.rb
Constant Summary collapse
- API_URL =
'https://rubygems.org/api/v1/gems/'.freeze
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#gems ⇒ Object
readonly
Returns the value of attribute gems.
-
#responses ⇒ Object
readonly
Returns the value of attribute responses.
Instance Method Summary collapse
- #info(gem_name) ⇒ Object
-
#initialize(gems) ⇒ RubyGems
constructor
A new instance of RubyGems.
- #request! ⇒ Object
Constructor Details
#initialize(gems) ⇒ RubyGems
Returns a new instance of RubyGems.
12 13 14 15 16 17 |
# File 'lib/gemfile_utils/parser/ruby_gems.rb', line 12 def initialize(gems) @gems = gems @connection = Faraday.new(url: API_URL) do |faraday| faraday.adapter :typhoeus end end |
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
10 11 12 |
# File 'lib/gemfile_utils/parser/ruby_gems.rb', line 10 def connection @connection end |
#gems ⇒ Object (readonly)
Returns the value of attribute gems.
10 11 12 |
# File 'lib/gemfile_utils/parser/ruby_gems.rb', line 10 def gems @gems end |
#responses ⇒ Object (readonly)
Returns the value of attribute responses.
10 11 12 |
# File 'lib/gemfile_utils/parser/ruby_gems.rb', line 10 def responses @responses end |
Instance Method Details
#info(gem_name) ⇒ Object
32 33 34 |
# File 'lib/gemfile_utils/parser/ruby_gems.rb', line 32 def info(gem_name) responses.has_key?(gem_name) ? JSON.parse(responses[gem_name].body) : {} end |
#request! ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/gemfile_utils/parser/ruby_gems.rb', line 19 def request! # @responses = {} connection.in_parallel(Typhoeus::Hydra.new(max_concurrency: 10)) do gems.map do |gem_name| @responses[gem_name] = connection.get("#{gem_name}") end end #keep only successful responses @responses.reject! { |_, response| response.status >= 400 } end |