Мы можем добавить метод в массив.
Array.prototype.getRandomVal = function(){
return this[Math.floor(Math.random()*this.length)];
};
messages.getRandomVal();
Насколько я знаю, вы правы, в команде gem нет простого встроенного способа сделать это.
Однако вы можете проверить gem-prune, который может помочь очистить репозиторий гемов после удаления dm-core.
Этот фрагмент кода делает это за меня:
def gem_deps(name)
if `gem dependency #{name}` =~ /(Gem #{name}-.*?)(Gem|\z)/m
$1.split("\n").grep(/runtime\s*\)/).map do |line|
line[/[\w-]+/]
end.compact
else
[]
end
end
def gem_recursive_uninstall(name)
deps = gem_deps(name)
if deps.empty?
system('sudo','gem','uninstall',name)
else
puts("Uninstall #{name} with dependencies: #{deps.join(', ')}? [y/n]")
if gets.chomp[/y/]
system(*(%w{sudo gem uninstall} + [name] + deps))
end
end
end
Взято с http://github.com/cldwalker/irbfiles/blob/master/. irb / libraries / gem.rb