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