1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00
pry--pry/lib/pry/commands/gem_list.rb
Kyrylo Silin 256f35422a Prettify command descriptions, switches and stuff
Wrap command descriptions to 80 characters. Convert some string options
to symbols (where possible). Align options in code. Remove dots in the
end of switch descriptions.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
2013-01-09 22:23:19 +02:00

33 lines
911 B
Ruby

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 ? text.bright_green(spec.version.to_s) : text.green(spec.version.to_s)
end
output.puts "#{text.default gem} (#{versions.join ', '})"
end
end
end
Pry::Commands.add_command(Pry::Command::GemList)
end