You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
870 B
36 lines
870 B
#!/usr/bin/ruby |
|
|
|
require 'rubygems/package' |
|
|
|
module RubyGemsProv |
|
module Helpers |
|
# If there is some prelease version files, such as rc1 (i.e. non-numeric |
|
# field), prepend this field by tilde instead of dot. |
|
def self.normalize_prerelease(version) |
|
if version.prerelease? |
|
prerelease = version.version.sub /^#{version.release}\./, '' |
|
"#{version.release}~#{prerelease}" |
|
else |
|
version.release |
|
end |
|
end |
|
end |
|
|
|
# Reports all functionality gem provides. |
|
def self.provides |
|
while filename = gets |
|
filename.strip! |
|
begin |
|
specification = Gem::Specification.load filename |
|
|
|
puts "rubygem(#{specification.name}) = #{Helpers::normalize_prerelease(specification.version)}" |
|
rescue => e |
|
# Ignore all errors. |
|
end |
|
end |
|
end |
|
end |
|
|
|
if __FILE__ == $0 |
|
RubyGemsProv::provides |
|
end
|
|
|