Class: Blufin::Update

Inherits:
Object
  • Object
show all
Defined in:
lib/core/update.rb

Class Method Summary collapse

Class Method Details

.run(gem_name) ⇒ Object

Updates ruby-gem.

Returns:

  • void

Raises:

  • (RuntimeError)


7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/core/update.rb', line 7

def self.run(gem_name)
    gems = Blufin::Constants::gems
    raise RuntimeError, "Invalid gem name: #{gem_name}" unless gems.keys.include?(gem_name)
    Blufin::Terminal::info("Updating gem: #{Blufin::Terminal::format_action(gem_name)}")
    # Uninstall all gems (including upstream).
    gems[gem_name][:upstream].each { |upstream_gem| Blufin::Terminal::execute("gem uninstall #{upstream_gem} --force -I -x") }
    Blufin::Terminal::execute("gem uninstall #{gem_name} --force -I -x")
    # Re-install all gems (including upstream).
    gems[gem_name][:upstream].each { |upstream_gem| Blufin::Terminal::execute("gem install #{upstream_gem}") }
    res = Blufin::Terminal::execute("gem install #{gem_name}", capture: true)
    Blufin::Terminal::success("Your are now on: #{Blufin::Terminal::format_highlight(`gem list | grep "#{gem_name} "`).gsub("\n", '')}", Blufin::Arrays::convert_string_to_line_array(res[0]))
end