class Gemirro::VersionsFetcher

The VersionsFetcher class is used for retrieving the file that contains all registered Gems and their versions.

@!attribute [r] source @return [Source]

Attributes

source[R]

Public Class Methods

new(source) click to toggle source

@param [Source] source

# File lib/gemirro/versions_fetcher.rb, line 17
def initialize(source)
  @source = source
end

Public Instance Methods

fetch() click to toggle source

@return [Gemirro::VersionsFile]

# File lib/gemirro/versions_fetcher.rb, line 24
def fetch
  VersionsFile.load(read_file(Configuration.versions_file),
                    read_file(Configuration.prerelease_versions_file, true))
end
read_file(file, prerelease = false) click to toggle source

Read file if exists otherwise download its from source

@param [String] file name @param [TrueClass|FalseClass] prerelease Is prerelease or not

# File lib/gemirro/versions_fetcher.rb, line 35
def read_file(file, prerelease = false)
  destination = Gemirro.configuration.destination
  file_dst = File.join(destination, file)
  unless File.exist?(file_dst)
    File.write(file_dst, @source.fetch_versions) unless prerelease
    File.write(file_dst, @source.fetch_prerelease_versions) if prerelease
  end

  File.read(file_dst)
end