Class: LockDiff::Gem::RubyGem::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/lock_diff/gem/ruby_gem.rb

Class Method Summary collapse

Class Method Details

.fetch(name) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/lock_diff/gem/ruby_gem.rb', line 37

def fetch(name)
  content = HTTPClient.get_content("https://rubygems.org/api/v1/gems/#{name}.json")
  OpenStruct.new(JSON.parse(content))
rescue => e
  LockDiff.logger.warn("Could not fetch gem info of #{name} because of #{e.inspect}")
  NullRubyGem.new(name)
end

.find(name) ⇒ Object



31
32
33
34
35
# File 'lib/lock_diff/gem/ruby_gem.rb', line 31

def find(name)
  ruby_gem = repository[name]
  return ruby_gem if ruby_gem
  repository[name] = fetch(name)
end

.repositoryObject



45
46
47
# File 'lib/lock_diff/gem/ruby_gem.rb', line 45

def repository
  @repository ||= {}
end