Chris@909: require 'rexml/document' Chris@909: Chris@909: module Redmine Chris@909: module VERSION #:nodoc: Chris@909: MAJOR = 1 Chris@909: MINOR = 3 Chris@909: TINY = 1 Chris@909: Chris@909: # Branch values: Chris@909: # * official release: nil Chris@909: # * stable branch: stable Chris@909: # * trunk: devel Chris@909: BRANCH = 'stable' Chris@909: Chris@909: def self.revision Chris@909: revision = nil Chris@909: entries_path = "#{Rails.root}/.svn/entries" Chris@909: if File.readable?(entries_path) Chris@909: begin Chris@909: f = File.open(entries_path, 'r') Chris@909: entries = f.read Chris@909: f.close Chris@909: if entries.match(%r{^\d+}) Chris@909: revision = $1.to_i if entries.match(%r{^\d+\s+dir\s+(\d+)\s}) Chris@909: else Chris@909: xml = REXML::Document.new(entries) Chris@909: revision = Chris@909: xml.elements['wc-entries'].elements[1].attributes['revision'].to_i Chris@909: end Chris@909: rescue Chris@909: # Could not find the current revision Chris@909: end Chris@909: end Chris@909: revision Chris@909: end Chris@909: Chris@909: REVISION = self.revision Chris@909: ARRAY = [MAJOR, MINOR, TINY, BRANCH, REVISION].compact Chris@909: STRING = ARRAY.join('.') Chris@909: Chris@909: def self.to_a; ARRAY end Chris@909: def self.to_s; STRING end Chris@909: end Chris@909: end