def version
return @@version if defined?(@@version)
numbers = File.read(scope('VERSION')).strip.split('.').
map {|n| n =~ /^[0-9]+$/ ? n.to_i : n}
name = File.read(scope('VERSION_NAME')).strip
@@version = {
:major => numbers[0],
:minor => numbers[1],
:teeny => numbers[2],
:name => name
}
if numbers[3].is_a?(String)
@@version[:teeny] = -1
@@version[:prerelease] = numbers[3]
@@version[:prerelease_number] = numbers[4]
end
@@version[:number] = numbers.join('.')
@@version[:string] = @@version[:number].dup
if rev = revision_number
@@version[:rev] = rev
unless rev[0] == ?(
@@version[:string] << "." << rev[0...7]
end
end
@@version[:string] << " (#{name})"
@@version
end