Class: Gemirro::Source

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

Overview

The Source class is used for storing information about an external source such as the name and the Gems to mirror.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, host, gems = []) ⇒ Source

Returns a new instance of Source.

Parameters:

  • name (String)
  • host (String)
  • gems (Array) (defaults to: [])


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

def initialize(name, host, gems = [])
  @name = name.downcase.gsub(/\s+/, '_')
  @host = host.chomp('/')
  @gems = gems
end

Instance Attribute Details

#gemsArray (readonly)

Returns:

  • (Array)


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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/gemirro/source.rb', line 14

class Source
  attr_reader :name, :host, :gems

  ##
  # @param [String] name
  # @param [String] host
  # @param [Array] gems
  #
  def initialize(name, host, gems = [])
    @name = name.downcase.gsub(/\s+/, '_')
    @host = host.chomp('/')
    @gems = gems
  end

  ##
  # Fetches a list of all the available Gems and their versions.
  #
  # @return [String]
  #
  def fetch_versions
    Utils.logger.info(
      "Fetching #{Configuration.versions_file} on #{@name} (#{@host})"
    )

    Http.get(host + '/' + Configuration.versions_file).body
  end

  ##
  # Fetches a list of all the available Gems and their versions.
  #
  # @return [String]
  #
  def fetch_prerelease_versions
    Utils.logger.info(
      "Fetching #{Configuration.prerelease_versions_file}" \
      " on #{@name} (#{@host})"
    )
    Http.get(host + '/' + Configuration.prerelease_versions_file).body
  end

  ##
  # Fetches the `.gem` file of a given Gem and version.
  #
  # @param [String] name
  # @param [String] version
  # @return [String]
  #
  def fetch_gem(name, version)
    Utils.logger.info(
      "Fetching gem #{name}, #{version} on #{@name} (#{@host})"
    )
    Http.get(host + "/gems/#{name}-#{version}.gem").body
  end

  ##
  # Fetches the `.gemspec.rz` file of a given Gem and version.
  #
  # @param [String] name
  # @param [String] version
  # @return [String]
  #
  def fetch_gemspec(name, version)
    Utils.logger.info(
      "Fetching gemspec #{name}, #{version} on #{@name} (#{@host})"
    )
    marshal = Gemirro::Configuration.marshal_identifier
    Http.get(host + "/quick/#{marshal}/#{name}-#{version}.gemspec.rz").body
  end

  ##
  # Adds a new Gem to the source.
  #
  # @param [String] name
  # @param [String] requirement
  #
  def gem(name, requirement = nil)
    gems << Gem.new(name, requirement)
  end
end

#hostString (readonly)

Returns:

  • (String)


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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/gemirro/source.rb', line 14

class Source
  attr_reader :name, :host, :gems

  ##
  # @param [String] name
  # @param [String] host
  # @param [Array] gems
  #
  def initialize(name, host, gems = [])
    @name = name.downcase.gsub(/\s+/, '_')
    @host = host.chomp('/')
    @gems = gems
  end

  ##
  # Fetches a list of all the available Gems and their versions.
  #
  # @return [String]
  #
  def fetch_versions
    Utils.logger.info(
      "Fetching #{Configuration.versions_file} on #{@name} (#{@host})"
    )

    Http.get(host + '/' + Configuration.versions_file).body
  end

  ##
  # Fetches a list of all the available Gems and their versions.
  #
  # @return [String]
  #
  def fetch_prerelease_versions
    Utils.logger.info(
      "Fetching #{Configuration.prerelease_versions_file}" \
      " on #{@name} (#{@host})"
    )
    Http.get(host + '/' + Configuration.prerelease_versions_file).body
  end

  ##
  # Fetches the `.gem` file of a given Gem and version.
  #
  # @param [String] name
  # @param [String] version
  # @return [String]
  #
  def fetch_gem(name, version)
    Utils.logger.info(
      "Fetching gem #{name}, #{version} on #{@name} (#{@host})"
    )
    Http.get(host + "/gems/#{name}-#{version}.gem").body
  end

  ##
  # Fetches the `.gemspec.rz` file of a given Gem and version.
  #
  # @param [String] name
  # @param [String] version
  # @return [String]
  #
  def fetch_gemspec(name, version)
    Utils.logger.info(
      "Fetching gemspec #{name}, #{version} on #{@name} (#{@host})"
    )
    marshal = Gemirro::Configuration.marshal_identifier
    Http.get(host + "/quick/#{marshal}/#{name}-#{version}.gemspec.rz").body
  end

  ##
  # Adds a new Gem to the source.
  #
  # @param [String] name
  # @param [String] requirement
  #
  def gem(name, requirement = nil)
    gems << Gem.new(name, requirement)
  end
end

#nameString (readonly)

Returns:

  • (String)


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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/gemirro/source.rb', line 14

class Source
  attr_reader :name, :host, :gems

  ##
  # @param [String] name
  # @param [String] host
  # @param [Array] gems
  #
  def initialize(name, host, gems = [])
    @name = name.downcase.gsub(/\s+/, '_')
    @host = host.chomp('/')
    @gems = gems
  end

  ##
  # Fetches a list of all the available Gems and their versions.
  #
  # @return [String]
  #
  def fetch_versions
    Utils.logger.info(
      "Fetching #{Configuration.versions_file} on #{@name} (#{@host})"
    )

    Http.get(host + '/' + Configuration.versions_file).body
  end

  ##
  # Fetches a list of all the available Gems and their versions.
  #
  # @return [String]
  #
  def fetch_prerelease_versions
    Utils.logger.info(
      "Fetching #{Configuration.prerelease_versions_file}" \
      " on #{@name} (#{@host})"
    )
    Http.get(host + '/' + Configuration.prerelease_versions_file).body
  end

  ##
  # Fetches the `.gem` file of a given Gem and version.
  #
  # @param [String] name
  # @param [String] version
  # @return [String]
  #
  def fetch_gem(name, version)
    Utils.logger.info(
      "Fetching gem #{name}, #{version} on #{@name} (#{@host})"
    )
    Http.get(host + "/gems/#{name}-#{version}.gem").body
  end

  ##
  # Fetches the `.gemspec.rz` file of a given Gem and version.
  #
  # @param [String] name
  # @param [String] version
  # @return [String]
  #
  def fetch_gemspec(name, version)
    Utils.logger.info(
      "Fetching gemspec #{name}, #{version} on #{@name} (#{@host})"
    )
    marshal = Gemirro::Configuration.marshal_identifier
    Http.get(host + "/quick/#{marshal}/#{name}-#{version}.gemspec.rz").body
  end

  ##
  # Adds a new Gem to the source.
  #
  # @param [String] name
  # @param [String] requirement
  #
  def gem(name, requirement = nil)
    gems << Gem.new(name, requirement)
  end
end

Instance Method Details

#fetch_gem(name, version) ⇒ String

Fetches the ‘.gem` file of a given Gem and version.

Parameters:

  • name (String)
  • version (String)

Returns:

  • (String)


61
62
63
64
65
66
# File 'lib/gemirro/source.rb', line 61

def fetch_gem(name, version)
  Utils.logger.info(
    "Fetching gem #{name}, #{version} on #{@name} (#{@host})"
  )
  Http.get(host + "/gems/#{name}-#{version}.gem").body
end

#fetch_gemspec(name, version) ⇒ String

Fetches the ‘.gemspec.rz` file of a given Gem and version.

Parameters:

  • name (String)
  • version (String)

Returns:

  • (String)


75
76
77
78
79
80
81
# File 'lib/gemirro/source.rb', line 75

def fetch_gemspec(name, version)
  Utils.logger.info(
    "Fetching gemspec #{name}, #{version} on #{@name} (#{@host})"
  )
  marshal = Gemirro::Configuration.marshal_identifier
  Http.get(host + "/quick/#{marshal}/#{name}-#{version}.gemspec.rz").body
end

#fetch_prerelease_versionsString

Fetches a list of all the available Gems and their versions.

Returns:

  • (String)


46
47
48
49
50
51
52
# File 'lib/gemirro/source.rb', line 46

def fetch_prerelease_versions
  Utils.logger.info(
    "Fetching #{Configuration.prerelease_versions_file}" \
    " on #{@name} (#{@host})"
  )
  Http.get(host + '/' + Configuration.prerelease_versions_file).body
end

#fetch_versionsString

Fetches a list of all the available Gems and their versions.

Returns:

  • (String)


33
34
35
36
37
38
39
# File 'lib/gemirro/source.rb', line 33

def fetch_versions
  Utils.logger.info(
    "Fetching #{Configuration.versions_file} on #{@name} (#{@host})"
  )

  Http.get(host + '/' + Configuration.versions_file).body
end

#gem(name, requirement = nil) ⇒ Object

Adds a new Gem to the source.

Parameters:

  • name (String)
  • requirement (String) (defaults to: nil)


89
90
91
# File 'lib/gemirro/source.rb', line 89

def gem(name, requirement = nil)
  gems << Gem.new(name, requirement)
end