blob: bb5e0f48ddca998f0863027ff4cc86dc18b375ea (
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
|
class Pry
class Command::GemList < Pry::ClassCommand
match 'gem-list'
group 'Gems'
description 'List and search installed gems.'
banner <<-'BANNER'
Usage: gem-list [REGEX]
List all installed gems, when a regex is provided, limit the output to those
that match the regex.
BANNER
def process(pattern = nil)
pattern = Regexp.compile(pattern || '')
gems = Rubygem.list(pattern).group_by(&:name)
gems.each do |gem, specs|
specs.sort! do |a,b|
Gem::Version.new(b.version) <=> Gem::Version.new(a.version)
end
versions = specs.each_with_index.map do |spec, index|
index == 0 ? bright_green(spec.version.to_s) : green(spec.version.to_s)
end
output.puts "#{default gem} (#{versions.join ', '})"
end
end
end
Pry::Commands.add_command(Pry::Command::GemList)
end
|