Class: Version

Inherits:
Object
  • Object
show all
Defined in:
lib/base/version.rb

Class Method Summary collapse

Class Method Details

.extract(text) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
# File 'lib/base/version.rb', line 2

def self.extract text
	[/VERSION\s*=\s*['"]([\d.]+)['"]/,
	 /[Vv]ersion\s*=\s*['"]([\d.]+)['"]/,
	 /Version\(\s*"([\d.]+)"\s*\)/].each{|regex|
		scan=text.scan(regex)
		if(!scan.nil?)
			return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
		end
	}
	nil
end

.extract_from_file(filename) ⇒ Object



14
15
16
# File 'lib/base/version.rb', line 14

def self.extract_from_file filename
	Version.extract IO.read(filename)
end

.extract_from_filelist(filelist) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/base/version.rb', line 18

def self.extract_from_filelist filelist
	version=nil
	filelist.each{|f|
		version=extract_from_file f
		return version if !version.nil?
	}
	nil
end

.get_versionObject



67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/base/version.rb', line 67

def self.get_version
	Dir.glob('**/*.gemspec').each{|gemspec|
		return Version.read gemspec
	}
	Dir.glob('**/AssemblyInfo.cs').each{|assemblyInfo|
		return Version.read assemblyInfo
	}
	Dir.glob('**/*.wxs').each{|wxs|
		return Version.read wxs
	}
	'0.0'
end

.read(filename) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/base/version.rb', line 51

def self.read filename
	return "#{Gem::Specification.load(filename).version.to_s}" if filename.include?('.gemspec') 
	if filename.include?('AssemblyInfo.cs')  
		scan=IO.read(filename).scan(/Version\(\"([\d.]+)\"\)/)
		if(!scan.nil?)
			return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
		end
	   #return IO.read(filename).scan(/Version\(\"([\d.]+)\"\)/)[0][0] 
	   scan=IO.read(filename).scan(/Version=\"([\d.]+)\"/)
	   if(!scan.nil?)
	        return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
	   end
    end
	'0.0'
end

.update_file(filename, version) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/base/version.rb', line 37

def self.update_file filename, version
	if(File.exists?(filename))
		orig=IO.read(filename)
		text=Version.update_text orig,version
		File.open(filename,'w'){|f|f.write(text)} if(orig!=text)
	end
end

.update_filelist(filelist, version) ⇒ Object



45
46
47
48
49
# File 'lib/base/version.rb', line 45

def self.update_filelist filelist,version
	filelist.each{|f|
		Version.update_file f,version
	}
end

.update_text(text, version) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/base/version.rb', line 27

def self.update_text text, version
	text=text.gsub(/version\s*=\s*'[\d.]+'/,"version='#{version}'")
		text=text.gsub(/VERSION\s*=\s*'[\d.]+'/,"VERSION='#{version}'")
	text=text.gsub(/version\s*=\s*"[\d.]+"/,"version=\"#{version}\"")
	text=text.gsub(/Version\s*=\s*'[\d.]+'/,"Version='#{version}'")
	text=text.gsub(/Version\s*=\s*"[\d.]+"/,"Version=\"#{version}\"")
	text=text.gsub(/Version\(\s*"[\d.]+"\s*\)/,"Version(\"#{version}\")")
	text=text.gsub(/Name\s*=\s*"Version"\s*Value\s*=\s*"[\d.]+"/,"Name=\"Version\" Value=\"#{version}\"")
end