Module: GemCache

Defined in:
lib/gemcache.rb,
lib/gemcache/errors.rb,
lib/gemcache/railtie.rb,
lib/gemcache/version.rb,
lib/gemcache/parsers/info_parser.rb,
lib/gemcache/parsers/sem_ver_parser.rb

Defined Under Namespace

Classes: GemNotFoundError, InfoParser, InvalidVersionConstraintError, NoAvailableVersionsError, Railtie, SemVerParser

Constant Summary collapse

VERSION =
"0.1.1"
@@host =
"https://rubygems.org"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.setup {|_self| ... } ⇒ Object

Set configuration options. This is typically done in the initializer (‘rails g gemcache:install’)

Yields:

  • (_self)

Yield Parameters:

  • _self (GemCache)

    the object that the method was called on



23
24
25
# File 'lib/gemcache.rb', line 23

def self.setup
  yield self
end

Instance Method Details

#fetch_gemString

Fetch required gem file.

Returns:

  • (String)

    The binary (compressed) gem file.



56
57
58
59
60
61
# File 'lib/gemcache.rb', line 56

def fetch_gem
  gem_uri = URI.parse("#{@@host}/gems/#{@name}-#{@version}.gem")
  response = Net::HTTP.get_response(gem_uri)
  raise GemNotFoundError(@name) unless response.is_a? Net::HTTPSuccess
  response.body
end

#fetch_infoString

Fetch required gem info file.

Returns:

  • (String)

    The (YAML based?) info file.

Raises:



32
33
34
35
36
37
# File 'lib/gemcache.rb', line 32

def fetch_info
  info_uri = URI.parse("#{@@host}/info/#{@name}")
  response = Net::HTTP.get_response(info_uri)
  raise GemNotFoundError.new(@name) unless response.is_a? Net::HTTPSuccess
  response.body
end

#fetch_quickString

Fetch required gem quick file.

Returns:

  • (String)

    The binary (compressed) quick file.

Raises:



44
45
46
47
48
49
# File 'lib/gemcache.rb', line 44

def fetch_quick
  quick_uri = URI.parse("#{@@host}/quick/Marshal.4.8/#{@name}-#{@version}.gemspec.rz")
  response = Net::HTTP.get_response(quick_uri)
  raise GemNotFoundError.new(@name) unless response.is_a? Net::HTTPSuccess
  response.body
end