summaryrefslogtreecommitdiff
path: root/lib/rubygems/errors.rb
blob: 950b34d744591bf147305de8a8a63805f28b02fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Gem::ErrorReason; end

# Generated when trying to lookup a gem to indicate that the gem
# was found, but that it isn't usable on the current platform.
#
# fetch and install read these and report them to the user to aid
# in figuring out why a gem couldn't be installed.
#
class Gem::PlatformMismatch < Gem::ErrorReason

  attr_reader :name
  attr_reader :version
  attr_reader :platforms

  def initialize(name, version)
    @name = name
    @version = version
    @platforms = []
  end

  def add_platform(platform)
    @platforms << platform
  end

  def wordy
    prefix = "Found #{@name} (#{@version})"

    if @platforms.size == 1
      "#{prefix}, but was for platform #{@platforms[0]}"
    else
      "#{prefix}, but was for platforms #{@platforms.join(' ,')}"
    end
  end

end