16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/gemirro/gem_version.rb', line 16
class GemVersion
include Comparable
attr_reader :name, :number, :platform
def initialize(name, number, platform)
@name = name
@number = number
@platform = platform
end
def ruby?
!(@platform =~ /^ruby$/i).nil?
end
def version
@version ||= ::Gem::Version.create(number)
end
def <=>(other)
sort = other.name <=> @name
sort = version <=> other.version if sort.zero?
sort = other.ruby? && !ruby? ? 1 : -1 if sort.zero? &&
ruby? != other.ruby?
sort = other.platform <=> @platform if sort.zero?
sort
end
def gemfile_name
platform = ruby? ? nil : @platform
[@name, @number, platform].compact.join('-')
end
end
|