class GemMirror::Gem

The Gem class contains data about a Gem such as the name, requirement as well as providing some methods to more easily extract the specific version number.

@!attribute [r] name

@return [String]

@!attribute [r] requirement

@return [Gem::Requirement]

Attributes

name[R]
requirement[R]

Public Class Methods

new(name, requirement = nil) click to toggle source

@param [String] name @param [Gem::Requirement] requirement

   # File lib/gem_mirror/gem.rb
31 def initialize(name, requirement = nil)
32   requirement ||= ::Gem::Requirement.default
33 
34   requirement = ::Gem::Requirement.new(requirement) if requirement.is_a?(String)
35 
36   @name        = name
37   @requirement = requirement
38 end
version_for(requirement) click to toggle source

Returns a `Gem::Version` instance based on the specified requirement.

@param [Gem::Requirement] requirement @return [Gem::Version]

   # File lib/gem_mirror/gem.rb
23 def self.version_for(requirement)
24   ::Gem::Version.new(requirement.requirements.max.last.version)
25 end

Public Instance Methods

filename(gem_version = nil) click to toggle source

Returns the filename of the Gemfile.

@param [String] gem_version @return [String]

   # File lib/gem_mirror/gem.rb
60 def filename(gem_version = nil)
61   gem_version ||= version.to_s
62 
63   "#{name}-#{gem_version}.gem"
64 end
version() click to toggle source

@return [Gem::Version]

   # File lib/gem_mirror/gem.rb
43 def version
44   @version ||= self.class.version_for(requirement)
45 end
version?() click to toggle source

@return [TrueClass|FalseClass]

   # File lib/gem_mirror/gem.rb
50 def version?
51   version && !version.segments.reject(&:zero?).empty?
52 end