6daba0
#!/usr/bin/ruby
6daba0
6daba0
require 'rubygems/package'
6daba0
6daba0
module RubyGemsProv
6daba0
  module Helpers
6daba0
    # If there is some prelease version files, such as rc1 (i.e. non-numeric
6daba0
    # field), prepend this field by tilde instead of dot.
6daba0
    def self.normalize_prerelease(version)
6daba0
      if version.prerelease?
6daba0
        prerelease = version.version.sub /^#{version.release}\./, ''
6daba0
        "#{version.release}~#{prerelease}"
6daba0
      else
6daba0
        version.release
6daba0
      end
6daba0
    end
6daba0
  end
6daba0
6daba0
  # Reports all functionality gem provides.
6daba0
  def self.provides
6daba0
    while filename = gets
6daba0
      filename.strip!
6daba0
      begin
6daba0
        specification = Gem::Specification.load filename
6daba0
6daba0
        puts "rubygem(#{specification.name}) = #{Helpers::normalize_prerelease(specification.version)}"
6daba0
      rescue => e
6daba0
        # Ignore all errors.
6daba0
      end
6daba0
    end
6daba0
  end
6daba0
end
6daba0
6daba0
if __FILE__ == $0
6daba0
  RubyGemsProv::provides
6daba0
end