Class: Gemirro::VersionsFetcher

Inherits:
Object
  • Object
show all
Defined in:
lib/gemirro/versions_fetcher.rb

Overview

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

Returns:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source) ⇒ VersionsFetcher

Returns a new instance of VersionsFetcher.

Parameters:



16
17
18
# File 'lib/gemirro/versions_fetcher.rb', line 16

def initialize(source)
  @source = source
end

Instance Attribute Details

#sourceSource (readonly)

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

Returns:



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/gemirro/versions_fetcher.rb', line 10

class VersionsFetcher
  attr_reader :source

  ##
  # @param [Source] source
  #
  def initialize(source)
    @source = source
  end

  ##
  # @return [Gemirro::VersionsFile]
  #
  def fetch
    VersionsFile.load(read_file(Configuration.versions_file),
                      read_file(Configuration.prerelease_versions_file, true))
  end

  ##
  # Read file if exists otherwise download its from source
  #
  # @param [String] file name
  # @param [TrueClass|FalseClass] prerelease Is prerelease or not
  #
  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
end

Instance Method Details

#fetchGemirro::VersionsFile



23
24
25
26
# File 'lib/gemirro/versions_fetcher.rb', line 23

def fetch
  VersionsFile.load(read_file(Configuration.versions_file),
                    read_file(Configuration.prerelease_versions_file, true))
end

#read_file(file, prerelease = false) ⇒ Object

Read file if exists otherwise download its from source

Parameters:

  • file (String)

    name

  • prerelease (TrueClass|FalseClass) (defaults to: false)

    Is prerelease or not



34
35
36
37
38
39
40
41
42
43
# File 'lib/gemirro/versions_fetcher.rb', line 34

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