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
# File 'lib/base/version.rb', line 2

def self.extract text
	[/[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



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

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

.extract_from_filelist(filelist) ⇒ Object



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

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



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

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.0'
end

.read(filename) ⇒ Object



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

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(wxs).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.0'
end

.update_file(filename, version) ⇒ Object



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

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



43
44
45
46
47
# File 'lib/base/version.rb', line 43

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

.update_text(text, version) ⇒ Object



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

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*"[\d.]+"\s*\)/,"Version(\"#{version}\")")
	text=text.gsub(/Name\s*=\s*"Version"\s*Value\s*=\s*"[\d.]+"/,"Name=\"Version\" Value=\"#{version}\"")
end