Module: Makit::Gems

Defined in:
lib/makit/gems.rb

Overview

This class provide methods for working with the system Environment.

Class Method Summary collapse

Class Method Details

.get_installed_gem_version(gem_name) ⇒ Object



31
32
33
34
# File 'lib/makit/gems.rb', line 31

def self.get_installed_gem_version(gem_name)
  versions = `gem list #{gem_name}`.split("(")[1].split(")")[0].split(",")
  versions.first.strip
end

.get_latest_gem_version(gem_name) ⇒ Object



36
37
38
# File 'lib/makit/gems.rb', line 36

def self.get_latest_gem_version(gem_name)
  `gem search #{gem_name} --remote --exact`.split("(")[1].split(")")[0]
end

.install_latest_gem(gem_name) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/makit/gems.rb', line 10

def self.install_latest_gem(gem_name)
  if is_gem_installed(gem_name)
    latest_version = get_latest_gem_version(gem_name)
    installed_version = get_installed_gem_version(gem_name)
    if installed_version == latest_version
      puts "  #{gem_name} gem is up to date".colorize(:green)
    else
      "gem install #{gem_name}".run
      puts "  #{gem_name} gem updated to #{latest_version}".colorize(:green)
    end
  else
    "gem install #{gem_name}".run
    puts "  #{gem_name} gem installed".colorize(:green)
  end
end

.is_gem_installed(gem_name) ⇒ Object



26
27
28
29
# File 'lib/makit/gems.rb', line 26

def self.is_gem_installed(gem_name)
  `gem list #{gem_name}`
  $CHILD_STATUS.success?
end