class Gemirro::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]

@!attribute [r] version

@return [Gem::Version]

Constants

ONLY_LATEST

Attributes

gemspec[RW]
name[R]
platform[RW]
requirement[R]

Public Class Methods

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

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

# File lib/gemirro/gem.rb, line 36
def initialize(name, requirement = nil, platform = 'ruby')
  requirement ||= ::Gem::Requirement.default

  requirement = ::Gem::Requirement.new(requirement) if requirement.is_a?(String)

  @name = name
  @requirement = requirement
  @platform = platform
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/gemirro/gem.rb, line 28
def self.version_for(requirement)
  ::Gem::Version.new(requirement.requirements.max.last.version)
end

Public Instance Methods

filename(gem_version = nil) click to toggle source

Returns the filename of the gem file.

@param [String] gem_version @return [String]

# File lib/gemirro/gem.rb, line 88
def filename(gem_version = nil)
  gem_version ||= version.to_s
  n = [name, gem_version]
  n.push(@platform) if @platform != 'ruby'
  "#{n.join('-')}.gem"
end
gemspec?() click to toggle source

Is gemspec

@return [TrueClass|FalseClass]

# File lib/gemirro/gem.rb, line 78
def gemspec?
  @gemspec == true
end
gemspec_filename(gem_version = nil) click to toggle source

Returns the filename of the gemspec file.

@param [String] gem_version @return [String]

# File lib/gemirro/gem.rb, line 101
def gemspec_filename(gem_version = nil)
  gem_version ||= version.to_s
  n = [name, gem_version]
  n.push(@platform) if @platform != 'ruby'
  "#{n.join('-')}.gemspec.rz"
end
only_latest?() click to toggle source

Define if version exists

@return [TrueClass|FalseClass]

# File lib/gemirro/gem.rb, line 69
def only_latest?
  @requirement.is_a?(Symbol) && ONLY_LATEST.include?(@requirement)
end
version() click to toggle source

Returns the version

@return [Gem::Version]

# File lib/gemirro/gem.rb, line 51
def version
  @version ||= self.class.version_for(requirement)
end
version?() click to toggle source

Define if version exists

@return [TrueClass|FalseClass]

# File lib/gemirro/gem.rb, line 60
def version?
  version && !version.segments.reject(&:zero?).empty?
end