module Gem2Rpm

Constants

TEMPLATE
VERSION

Public Class Methods

convert(fname, template=TEMPLATE, out=$stdout, nongem=true, local=false, doc_subpackage = true) click to toggle source
# File lib/gem2rpm.rb, line 33
def Gem2Rpm.convert(fname, template=TEMPLATE, out=$stdout,
                    nongem=true, local=false, doc_subpackage = true)
  package = Gem2Rpm::Package.new(fname)
  # Deprecate, kept just for backward compatibility.
  format = Gem2Rpm::Format.new(package)
  spec = Gem2Rpm::Specification.new(package.spec)
  spec.description ||= spec.summary
  download_path = ""
  unless local
    begin
      download_path = find_download_url(spec.name, spec.version)
    rescue DownloadUrlError => e
      $stderr.puts "Warning: Could not retrieve full URL for #{spec.name}\nWarning: Edit the specfile and enter the full download URL as 'Source0' manually"
      $stderr.puts e.inspect
    end
  end
  template = ERB.new(template, 0, '-')
  out.puts template.result(binding)
rescue Gem::Exception => e
  puts e
end
find_download_url(name, version) click to toggle source
# File lib/gem2rpm.rb, line 15
def self.find_download_url(name, version)
  dep = Gem::Dependency.new(name, "=#{version}")
  fetcher = Gem2Rpm::SpecFetcher.new(Gem::SpecFetcher.fetcher)

  spec_and_source, errors = fetcher.spec_for_dependency(dep, false)

  raise DownloadUrlError.new(errors.first.error.message) unless errors.empty?

  spec, source = spec_and_source.first

  if source && source.uri
    download_path = source.uri.to_s
    download_path += "gems/"
  end

  download_path
end
packager() click to toggle source

Returns the email address of the packager (i.e., the person running gem2spec). Taken from RPM macros if present, constructed from system username and hostname otherwise.

# File lib/gem2rpm.rb, line 58
def Gem2Rpm.packager()
  packager = %xrpmdev-packager`.chomp rescue ''

  if packager.empty?
    packager = %xrpm --eval '%{packager}'`.chomp rescue ''
  end

  if packager.empty? or packager == '%{packager}'
    passwd_entry = Etc::getpwnam(Etc::getlogin)
    packager = "#{(passwd_entry && passwd_entry.gecos) || Etc::getlogin } <#{Etc::getlogin}@#{Socket::gethostname}>"
  end

  packager
end
template_dir() click to toggle source
# File lib/gem2rpm.rb, line 73
def Gem2Rpm.template_dir
  File.join(File.dirname(__FILE__), '..', 'templates')
end