class GemMirror::Configuration

Configuration class used for storing data about a mirror such as the destination directory, sources, ignored Gems, etc.

Public Class Methods

default_configuration_file() click to toggle source

@return [String]

   # File lib/gem_mirror/configuration.rb
39 def self.default_configuration_file
40   File.expand_path("config.rb", Dir.pwd)
41 end
marshal_identifier() click to toggle source

Returns the name of the directory that contains the quick specification files.

@return [String]

   # File lib/gem_mirror/configuration.rb
49 def self.marshal_identifier
50   "Marshal.#{marshal_version}"
51 end
marshal_version() click to toggle source

Returns a String containing the Marshal version.

@return [String]

   # File lib/gem_mirror/configuration.rb
67 def self.marshal_version
68   "#{Marshal::MAJOR_VERSION}.#{Marshal::MINOR_VERSION}"
69 end
template_directory() click to toggle source

@return [String]

   # File lib/gem_mirror/configuration.rb
32 def self.template_directory
33   File.expand_path("../../template", __dir__)
34 end
versions_file() click to toggle source

Returns the name of the file that contains an index of all the versions.

@return [String]

   # File lib/gem_mirror/configuration.rb
58 def self.versions_file
59   "specs.#{marshal_version}.gz"
60 end

Public Instance Methods

gems_directory() click to toggle source

@return [String]

   # File lib/gem_mirror/configuration.rb
81 def gems_directory
82   File.join(destination, "gems")
83 end
ignore_gem(name, version) click to toggle source

Adds a Gem to the list of Gems to ignore.

@param [String] name @param [String] version

    # File lib/gem_mirror/configuration.rb
100 def ignore_gem(name, version)
101   ignored_gems[name] ||= []
102   ignored_gems[name] << version
103 end
ignore_gem?(name, version) click to toggle source

Checks if a Gem should be ignored.

@param [String] name @param [String] version @return [TrueClass|FalseClass]

    # File lib/gem_mirror/configuration.rb
112 def ignore_gem?(name, version)
113   ignored_gems[name].include?(version)
114 end
ignored_gems() click to toggle source

Returns a Hash containing various Gems to ignore and their versions.

@return [Hash]

   # File lib/gem_mirror/configuration.rb
90 def ignored_gems
91   @ignored_gems ||= Hash.new { |hash, key| hash[key] = [] }
92 end
logger() click to toggle source

@return [Logger]

   # File lib/gem_mirror/configuration.rb
20 def logger
21   @logger = Logger.new($stdout,
22                        progname: "gem_mirror",
23                        formatter: proc do |severity, datetime, progname, msg|
24                          d_format = datetime.strftime("%Y%m%dT%H%M%S%z")
25                          "[#{d_format}] severity=#{severity} prog=#{progname} pid=#{Process.pid} message=#{msg}\n"
26                        end)
27 end
mirror_directory() click to toggle source

@return [GemMirror::MirrorDirectory]

   # File lib/gem_mirror/configuration.rb
74 def mirror_directory
75   @mirror_directory ||= MirrorDirectory.new(gems_directory)
76 end
source(name, url, &block) click to toggle source

Adds a new source to mirror.

@param [String] name @param [String] url @param [Proc] block @yieldparam [GemMirror::Source] source

    # File lib/gem_mirror/configuration.rb
133 def source(name, url, &block)
134   source = Source.new(name, url)
135   source.instance_eval(&block)
136 
137   sources << source
138 end
sources() click to toggle source

Returns a list of sources to mirror.

@return [Array]

    # File lib/gem_mirror/configuration.rb
121 def sources
122   @sources ||= []
123 end