Sha256: 71c4a982ea54f988ded459f7bc719a05820d47b1e7b598d7d8ad6b45bc43ecd7

Contents?: true

Size: 1.56 KB

Versions: 19

Compression:

Stored size: 1.56 KB

Contents

# -*- coding: utf-8 -*-
module Gemirro
  ##
  # 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]
  #
  class Gem
    attr_reader :name, :requirement

    ##
    # Returns a `Gem::Version` instance based on the specified requirement.
    #
    # @param [Gem::Requirement] requirement
    # @return [Gem::Version]
    #
    def self.version_for(requirement)
      ::Gem::Version.new(requirement.requirements.sort.last.last.version)
    end

    ##
    # @param [String] name
    # @param [Gem::Requirement|String] requirement
    #
    def initialize(name, requirement = nil)
      requirement ||= ::Gem::Requirement.default

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

      @name        = name
      @requirement = requirement
    end

    ##
    # Returns the version
    #
    # @return [Gem::Version]
    #
    def version
      @version ||= self.class.version_for(requirement)
    end

    ##
    # Define if version exists
    #
    # @return [TrueClass|FalseClass]
    #
    def version?
      version && !version.segments.reject { |s| s == 0 }.empty?
    end

    ##
    # Returns the filename of the Gemfile.
    #
    # @param [String] gem_version
    # @return [String]
    #
    def filename(gem_version = nil)
      gem_version ||= version.to_s
      "#{name}-#{gem_version}.gem"
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
gemirro-0.10.5 lib/gemirro/gem.rb
gemirro-0.10.4 lib/gemirro/gem.rb
gemirro-0.10.3 lib/gemirro/gem.rb
gemirro-0.10.2 lib/gemirro/gem.rb
gemirro-0.10.1 lib/gemirro/gem.rb
gemirro-0.10.0 lib/gemirro/gem.rb
gemirro-0.9.1 lib/gemirro/gem.rb
gemirro-0.9.0 lib/gemirro/gem.rb
gemirro-0.8.1 lib/gemirro/gem.rb
gemirro-0.8.0 lib/gemirro/gem.rb
gemirro-0.7.0 lib/gemirro/gem.rb
gemirro-0.6.0 lib/gemirro/gem.rb
gemirro-0.5.0 lib/gemirro/gem.rb
gemirro-0.4.0 lib/gemirro/gem.rb
gemirro-0.3.0 lib/gemirro/gem.rb
gemirro-0.2.0 lib/gemirro/gem.rb
gemirro-0.1.0 lib/gemirro/gem.rb
gemirro-0.0.2 lib/gemirro/gem.rb
gemirro-0.0.1 lib/gemirro/gem.rb