mattetti (owner)

Forks

Revisions

gist: 178178 Download_button fork
public
Public Clone URL: git://gist.github.com/178178.git
Embed All Files: show embed
sl_gems_update.rb #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env ruby
puts "looking for the gems to upgrade..."
gem_info = Struct.new(:name, :version)
to_reinstall = []
Dir.glob('/Library/Ruby/Gems/**/*.bundle').map do |path|
  path =~ /.*1.8\/gems\/(.*)-(.*?)\/.*/
  name, version = $1, $2
  bundle_info = `file path`
  to_reinstall << gem_info.new(name, version) unless bundle_info =~ /bundle x86_64/
end
 
gemnames = to_reinstall.map{|ginfo| ginfo.name}.uniq.delete_if{|name| name =~ /mysql|passenger/}
puts "***"
puts "Please reinstall:"
gemnames.each do |name|
  gems = to_reinstall.select{|ginfo| ginfo.name == name}
  puts "#{name} versions: #{gems.map{|ginfo| ginfo.version}.join(', ')}"
end
 
puts "or uninstall all gems that need to be reinstalled:\n"
puts "$ sudo gem uninstall #{gemnames.join(' ')}"
puts " "
puts "and reinstall them:\n"
puts "$ sudo gem install #{gemnames.join(' ')}"