Class: Gemirro::Configuration

Inherits:
Confstruct::Configuration
  • Object
show all
Defined in:
lib/gemirro/configuration.rb

Overview

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

Constant Summary collapse

LOGGER_LEVEL =
{
  'debug' => Logger::DEBUG,
  'warning' => Logger::WARN,
  'info' => Logger::INFO,
  'unknown' => Logger::UNKNOWN,
  'error' => Logger::ERROR,
  'fatal' => Logger::FATAL
}.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#loggerLogger

Returns the logger

Returns:

  • (Logger)


42
43
44
# File 'lib/gemirro/configuration.rb', line 42

def logger
  @logger ||= Logger.new(STDOUT)
end

#sourceObject

Returns the value of attribute source.



25
26
27
# File 'lib/gemirro/configuration.rb', line 25

def source
  @source
end

Class Method Details

.default_configuration_fileString

Returns default configuration file path

Returns:

  • (String)


81
82
83
# File 'lib/gemirro/configuration.rb', line 81

def self.default_configuration_file
  File.expand_path('config.rb', Dir.pwd)
end

.marshal_identifierString

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

Returns:

  • (String)


91
92
93
# File 'lib/gemirro/configuration.rb', line 91

def self.marshal_identifier
  "Marshal.#{marshal_version}"
end

.marshal_versionString

Returns a String containing the Marshal version.

Returns:

  • (String)


119
120
121
# File 'lib/gemirro/configuration.rb', line 119

def self.marshal_version
  "#{Marshal::MAJOR_VERSION}.#{Marshal::MINOR_VERSION}"
end

.prerelease_versions_fileString

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

Returns:

  • (String)


110
111
112
# File 'lib/gemirro/configuration.rb', line 110

def self.prerelease_versions_file
  "prerelease_specs.#{marshal_version}.gz"
end

.template_directoryString

Returns the template path to init directory

Returns:

  • (String)


63
64
65
# File 'lib/gemirro/configuration.rb', line 63

def self.template_directory
  File.expand_path('../../../template', __FILE__)
end

.versions_fileString

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

Returns:

  • (String)


100
101
102
# File 'lib/gemirro/configuration.rb', line 100

def self.versions_file
  "specs.#{marshal_version}.gz"
end

.views_directoryString

Returns the views path to render templates

Returns:

  • (String)


72
73
74
# File 'lib/gemirro/configuration.rb', line 72

def self.views_directory
  File.expand_path('../../../views', __FILE__)
end

Instance Method Details

#define_source(name, url, &block) ⇒ Object

Define the source to mirror.

Parameters:

  • name (String)
  • url (String)
  • block (Proc)


197
198
199
200
201
202
# File 'lib/gemirro/configuration.rb', line 197

def define_source(name, url, &block)
  source = Source.new(name, url)
  source.instance_eval(&block)

  @source = source
end

#gems_directoryString

Returns gems directory

Returns:

  • (String)


137
138
139
# File 'lib/gemirro/configuration.rb', line 137

def gems_directory
  File.join(destination.to_s, 'gems')
end

#gemspecs_directoryString

Returns gems directory

Returns:

  • (String)


155
156
157
# File 'lib/gemirro/configuration.rb', line 155

def gemspecs_directory
  File.join(destination.to_s, 'quick', self.class.marshal_identifier)
end

#ignore_gem(name, version) ⇒ Object

Adds a Gem to the list of Gems to ignore.

Parameters:

  • name (String)
  • version (String)


174
175
176
177
# File 'lib/gemirro/configuration.rb', line 174

def ignore_gem(name, version)
  ignored_gems[name] ||= []
  ignored_gems[name] << version
end

#ignore_gem?(name, version) ⇒ TrueClass|FalseClass

Checks if a Gem should be ignored.

Parameters:

  • name (String)
  • version (String)

Returns:

  • (TrueClass|FalseClass)


186
187
188
# File 'lib/gemirro/configuration.rb', line 186

def ignore_gem?(name, version)
  ignored_gems[name].include?(version)
end

#ignored_gemsHash

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

Returns:

  • (Hash)


164
165
166
# File 'lib/gemirro/configuration.rb', line 164

def ignored_gems
  @ignored_gems ||= Hash.new { |hash, key| hash[key] = [] }
end

#logger_level=(level) ⇒ Logger

Set log level

Parameters:

  • (string)

Returns:

  • (Logger)


53
54
55
56
# File 'lib/gemirro/configuration.rb', line 53

def logger_level=(level)
  logger.level = LOGGER_LEVEL[level] if LOGGER_LEVEL.key?(level)
  logger
end

#mirror_gems_directoryGemirro::MirrorDirectory

Return mirror directory



128
129
130
# File 'lib/gemirro/configuration.rb', line 128

def mirror_gems_directory
  @mirror_gems_directory ||= MirrorDirectory.new(gems_directory)
end

#mirror_gemspecs_directoryGemirro::MirrorDirectory

Return mirror directory



146
147
148
# File 'lib/gemirro/configuration.rb', line 146

def mirror_gemspecs_directory
  @mirror_gemspecs_directory ||= MirrorDirectory.new(gemspecs_directory)
end