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
end

Private Instance Methods

install_using_packagekit(names=[]) click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 30
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
    install_using_yum names
  rescue LoadError
    say "To use PackageKit installation, 'ruby-dbus' package needs to be installed. (yum install rubygem-ruby-dbus)"
    install_using_yum names
  end
end
install_using_yum(names=[]) click to toggle source
# File lib/rubygems/nice_install/fedora_ext_installer.rb, line 26
def install_using_yum(names=[])
  system "su -c 'yum install #{names.join(' ')}'"
end