# class Gem::Source::SpecificFile

A source representing a single .gem file. This is used for installation of local gems.

### Attributes

path[R]

The path to the gem for this specific file.

spec[R]

The `Gem::Specification` extracted from this .gem.

### Public Class Methods

new(file) click to toggle source

Creates a new `SpecificFile` for the gem in `file`

    # File lib/rubygems/source/specific_file.rb, line 16
    def initialize(file)
      @uri = nil
      @path = ::File.expand_path(file)

      @package = Gem::Package.new @path
      @spec = @package.spec
      @name = @spec.name_tuple
    end

### Public Instance Methods

<=>(other) click to toggle source

Orders this source against `other`.

If `other` is a `SpecificFile` from a different gem name `nil` is returned.

If `other` is a `SpecificFile` from the same gem name the versions are compared using `Gem::Version#<=>`

Otherwise `Gem::Source#<=>` is used.

Calls superclass method `Gem::Source#<=>`

    # File lib/rubygems/source/specific_file.rb, line 61
    def <=>(other)
      case other
      when Gem::Source::SpecificFile then
        return nil if @spec.name != other.spec.name

        @spec.version <=> other.spec.version
      else
        super
      end
    end