Chris@0: require 'rexml/document' Chris@0: Chris@0: module Redmine Chris@0: module VERSION #:nodoc: Chris@0: MAJOR = 1 Chris@0: MINOR = 0 chris@37: TINY = 3 Chris@0: Chris@0: # Branch values: Chris@0: # * official release: nil Chris@0: # * stable branch: stable Chris@0: # * trunk: devel Chris@0: BRANCH = 'devel' 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@0: if entries.match(%r{^\d+}) Chris@0: revision = $1.to_i if entries.match(%r{^\d+\s+dir\s+(\d+)\s}) Chris@0: else Chris@0: xml = REXML::Document.new(entries) Chris@0: revision = xml.elements['wc-entries'].elements[1].attributes['revision'].to_i Chris@0: end Chris@0: rescue Chris@0: # Could not find the current revision Chris@0: end Chris@0: end Chris@0: revision Chris@0: end Chris@0: Chris@0: REVISION = self.revision Chris@0: ARRAY = [MAJOR, MINOR, TINY, BRANCH, REVISION].compact Chris@0: STRING = ARRAY.join('.') Chris@0: Chris@0: def self.to_a; ARRAY end Chris@0: def self.to_s; STRING end Chris@0: end Chris@0: end