class Gem::Source::SpecificFile

Attributes

spec[R]

Public Class Methods

new(file) click to toggle source
# File lib/rubygems/source/specific_file.rb, line 2
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 45
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
download(spec, dir=nil) click to toggle source
# File lib/rubygems/source/specific_file.rb, line 23
def download(spec, dir=nil)
  return @path if spec == @spec
  raise Gem::Exception, "Unable to download '#{spec.full_name}'"
end
fetch_spec(name) click to toggle source
# File lib/rubygems/source/specific_file.rb, line 17
def fetch_spec(name)
  return @spec if name == @name
  raise Gem::Exception, "Unable to find '#{name}'"
  @spec
end
load_specs(*a) click to toggle source
# File lib/rubygems/source/specific_file.rb, line 13
def load_specs(*a)
  [@name]
end