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