class Gem::Installer::Nice::FedoraExtInstaller

Public Instance Methods

default_ext_dependencies() click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 8
def default_ext_dependencies
  get_basic_deps
end
dep_files() click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 4
def dep_files
  %w[fedora.yml]
end
ext_dependency_present?(dep_name) click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 16
def ext_dependency_present? dep_name
  system("rpm -q #{dep_name} > /dev/null 2>&1")
end
gem_ext_dependencies_for(gem_name) click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 12
def gem_ext_dependencies_for gem_name
  default_ext_dependencies + get_deps(gem_name)
end
install_ext_dependencies_for(gem_name, deps) click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 20
def install_ext_dependencies_for gem_name, deps
  install_using_packagekit(deps) \
    || install_using_dnf(deps) \
    || install_using_yum(deps)
end

Private Instance Methods

install_using_dnf(names=[]) click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 28
def install_using_dnf(names=[])
  if system("dnf --help > /dev/null 2>&1")
    system "su -c 'dnf install #{names.join(' ')}'"
  else
    say "DNF is not available."
    false
  end
end
install_using_packagekit(names=[]) click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 46
def install_using_packagekit(names=[])
  begin
    require 'dbus'
    session_bus = DBus::SessionBus.instance
    pkg_kit = session_bus.introspect("org.freedesktop.PackageKit", "/org/freedesktop/PackageKit")
    pkg_kit['org.freedesktop.PackageKit.Modify'].InstallPackageNames(0, names, 'show-confirm-install')
  # DBus is not availabe in non-X environment.
  rescue Errno::ENOENT
    say "PackageKit failed. DBus activation failed."
    false
  rescue LoadError
    say "PackageKit failed. 'rubygem-ruby-dbus' package needs to be installed."
    false
  else
    true
  end
end
install_using_yum(names=[]) click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 37
def install_using_yum(names=[])
  if system("yum --help > /dev/null 2>&1")
    system "su -c 'yum install #{names.join(' ')}'"
  else
    say "YUM is not available."
    false
  end
end