dev 2.1.75 → 2.1.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/base/string.rb CHANGED
@@ -1,7 +1,7 @@
1
- puts __FILE__ if defined?(DEBUG)
2
-
3
- class String
4
- def fix(size,padstr=' ')
5
- self[0...size].rjust(size,padstr)
6
- end
1
+ puts __FILE__ if defined?(DEBUG)
2
+
3
+ class String
4
+ def fix(size,padstr=' ')
5
+ self[0...size].rjust(size,padstr)
6
+ end
7
7
  end
data/lib/base/text.rb CHANGED
@@ -1,30 +1,30 @@
1
- puts __FILE__ if defined?(DEBUG)
2
-
3
- class Text
4
- def self.replace_in_glob(glob,search,replace)
5
- Dir.glob(glob).each{ |f| replace_in_file(f,search,replace) }
6
- end
7
-
8
- def self.replace_in_file(filename,search,replace)
9
- text1 = IO.read(filename)
10
- text2 = text1.gsub(search) { |str| str=replace }
11
- unless text1==text2
12
- File.open(filename,"w") { |f| f.puts text2 }
13
- return true
14
- end
15
- false
16
- end
17
-
18
- def self.copy_if_different(source,destination)
19
- if(!File.exists?(destination))
20
- FileUtils.cp source, destination
21
- else
22
- source_text=IO.read(source)
23
- destination_text=IO.read(destination)
24
- if(source_text != destination_text)
25
- FileUtils.rm destination
26
- FileUtils.cp source, destination
27
- end
28
- end
29
- end
1
+ puts __FILE__ if defined?(DEBUG)
2
+
3
+ class Text
4
+ def self.replace_in_glob(glob,search,replace)
5
+ Dir.glob(glob).each{ |f| replace_in_file(f,search,replace) }
6
+ end
7
+
8
+ def self.replace_in_file(filename,search,replace)
9
+ text1 = IO.read(filename)
10
+ text2 = text1.gsub(search) { |str| str=replace }
11
+ unless text1==text2
12
+ File.open(filename,"w") { |f| f.puts text2 }
13
+ return true
14
+ end
15
+ false
16
+ end
17
+
18
+ def self.copy_if_different(source,destination)
19
+ if(!File.exists?(destination))
20
+ FileUtils.cp source, destination
21
+ else
22
+ source_text=IO.read(source)
23
+ destination_text=IO.read(destination)
24
+ if(source_text != destination_text)
25
+ FileUtils.rm destination
26
+ FileUtils.cp source, destination
27
+ end
28
+ end
29
+ end
30
30
  end
data/lib/base/timeout.rb CHANGED
@@ -1,121 +1,121 @@
1
- ############################################################################
2
- # The following code is based on code originally copied from
3
- # https://gist.github.com/lpar/1032297
4
- # Gist title: lpar/timeout.rb
5
- ############################################################################
6
- # Runs a specified shell command in a separate thread.
7
- # If it exceeds the given timeout in seconds, kills it.
8
- # Returns any output produced by the command (stdout or stderr) as a String.
9
- # Uses Kernel.select to wait up to the tick length (in seconds) between
10
- # checks on the command's status
11
- #
12
- # If you've got a cleaner way of doing this, I'd be interested to see it.
13
- # If you think you can do it with Ruby's Timeout module, think again.
14
- def run_with_timeout(directory,command, timeout, tick)
15
- output = ''
16
- exit_code=1
17
-
18
- Open3.popen2e(command, :chdir=>directory) { |stdin,stderrout,thread|
19
- pid = thread.pid
20
-
21
- start = Time.now
22
- while (Time.now - start) < timeout and thread.alive?
23
- # Wait up to `tick` seconds for output/error data
24
- Kernel.select([stderrout], nil, nil, tick)
25
- # Try to read the data
26
- begin
27
- output << stderrout.read_nonblock(BUFFER_SIZE)
28
- rescue IO::WaitReadable
29
- # A read would block, so loop around for another select
30
- rescue EOFError
31
- # Command has completed, not really an error...
32
- exit_code=wait_thread.value
33
- break
34
- end
35
-
36
- sleep(0.5)
37
- end
38
-
39
- exit_code=wait_thread.value
40
-
41
- # Give Ruby time to clean up the other thread
42
- sleep 1
43
-
44
- if thread.alive?
45
- # We need to kill the process, because killing the thread leaves
46
- # the process alive but detached, annoyingly enough.
47
- Process.kill("TERM", pid)
48
- exit_code=5
49
- end
50
-
51
-
52
- }
53
-
54
- return [output,exit_code]
55
- end
56
- # begin
57
- # # Start task in another thread, which spawns a process
58
- # stdin, stderrout, thread = Open3.popen2e(command, :chdir=>directory)
59
- # # Get the pid of the spawned process
60
- # pid = thread[:pid]
61
- # start = Time.now
62
- #
63
- # while (Time.now - start) < timeout and thread.alive?
64
- # # Wait up to `tick` seconds for output/error data
65
- # Kernel.select([stderrout], nil, nil, tick)
66
- # # Try to read the data
67
- # begin
68
- # output << stderrout.read_nonblock(BUFFER_SIZE)
69
- # rescue IO::WaitReadable
70
- # # A read would block, so loop around for another select
71
- # rescue EOFError
72
- # # Command has completed, not really an error...
73
- # exit_code=$?.exitstatus
74
- # break
75
- # end
76
- # end
77
- #
78
- # # Give Ruby time to clean up the other thread
79
- # sleep 1
80
-
81
- # if thread.alive?
82
- # We need to kill the process, because killing the thread leaves
83
- # the process alive but detached, annoyingly enough.
84
- # Process.kill("TERM", pid)
85
- # exit_code=5
86
- # else
87
- # sleep 1
88
- # end
89
-
90
- # ensure
91
- # stdin.close if stdin
92
- # stderrout.close if stderrout
93
- # end
94
- # return [output,exit_code]
95
- #end
96
-
97
- require 'timeout'
98
- def run_with_timeout2(directory,command,timeout)
99
- # stdout, stderr pipes
100
- rout, wout = IO.pipe
101
- rerr, werr = IO.pipe
102
- output=''
103
- error=''
104
- exit_code=1
105
- pid = Process.spawn(command, :chdir => directory, :out => wout, :err => werr)
106
- begin
107
- Timeout.timeout(timeout) do
108
- exit_code = Process.wait2(pid)
109
- output = rout.readlines.join("\n")
110
- error = rerr.readlines.join("\n")
111
- end
112
- rescue
113
- Proces.kill('TERM',pid)
114
- output = output + 'timeout occurred.'
115
- ensure
116
- rout.close
117
- rerr.close
118
- end
119
- [output,exit_code]
120
- end
121
-
1
+ ############################################################################
2
+ # The following code is based on code originally copied from
3
+ # https://gist.github.com/lpar/1032297
4
+ # Gist title: lpar/timeout.rb
5
+ ############################################################################
6
+ # Runs a specified shell command in a separate thread.
7
+ # If it exceeds the given timeout in seconds, kills it.
8
+ # Returns any output produced by the command (stdout or stderr) as a String.
9
+ # Uses Kernel.select to wait up to the tick length (in seconds) between
10
+ # checks on the command's status
11
+ #
12
+ # If you've got a cleaner way of doing this, I'd be interested to see it.
13
+ # If you think you can do it with Ruby's Timeout module, think again.
14
+ def run_with_timeout(directory,command, timeout, tick)
15
+ output = ''
16
+ exit_code=1
17
+
18
+ Open3.popen2e(command, :chdir=>directory) { |stdin,stderrout,thread|
19
+ pid = thread.pid
20
+
21
+ start = Time.now
22
+ while (Time.now - start) < timeout and thread.alive?
23
+ # Wait up to `tick` seconds for output/error data
24
+ Kernel.select([stderrout], nil, nil, tick)
25
+ # Try to read the data
26
+ begin
27
+ output << stderrout.read_nonblock(BUFFER_SIZE)
28
+ rescue IO::WaitReadable
29
+ # A read would block, so loop around for another select
30
+ rescue EOFError
31
+ # Command has completed, not really an error...
32
+ exit_code=wait_thread.value
33
+ break
34
+ end
35
+
36
+ sleep(0.5)
37
+ end
38
+
39
+ exit_code=wait_thread.value
40
+
41
+ # Give Ruby time to clean up the other thread
42
+ sleep 1
43
+
44
+ if thread.alive?
45
+ # We need to kill the process, because killing the thread leaves
46
+ # the process alive but detached, annoyingly enough.
47
+ Process.kill("TERM", pid)
48
+ exit_code=5
49
+ end
50
+
51
+
52
+ }
53
+
54
+ return [output,exit_code]
55
+ end
56
+ # begin
57
+ # # Start task in another thread, which spawns a process
58
+ # stdin, stderrout, thread = Open3.popen2e(command, :chdir=>directory)
59
+ # # Get the pid of the spawned process
60
+ # pid = thread[:pid]
61
+ # start = Time.now
62
+ #
63
+ # while (Time.now - start) < timeout and thread.alive?
64
+ # # Wait up to `tick` seconds for output/error data
65
+ # Kernel.select([stderrout], nil, nil, tick)
66
+ # # Try to read the data
67
+ # begin
68
+ # output << stderrout.read_nonblock(BUFFER_SIZE)
69
+ # rescue IO::WaitReadable
70
+ # # A read would block, so loop around for another select
71
+ # rescue EOFError
72
+ # # Command has completed, not really an error...
73
+ # exit_code=$?.exitstatus
74
+ # break
75
+ # end
76
+ # end
77
+ #
78
+ # # Give Ruby time to clean up the other thread
79
+ # sleep 1
80
+
81
+ # if thread.alive?
82
+ # We need to kill the process, because killing the thread leaves
83
+ # the process alive but detached, annoyingly enough.
84
+ # Process.kill("TERM", pid)
85
+ # exit_code=5
86
+ # else
87
+ # sleep 1
88
+ # end
89
+
90
+ # ensure
91
+ # stdin.close if stdin
92
+ # stderrout.close if stderrout
93
+ # end
94
+ # return [output,exit_code]
95
+ #end
96
+
97
+ require 'timeout'
98
+ def run_with_timeout2(directory,command,timeout)
99
+ # stdout, stderr pipes
100
+ rout, wout = IO.pipe
101
+ rerr, werr = IO.pipe
102
+ output=''
103
+ error=''
104
+ exit_code=1
105
+ pid = Process.spawn(command, :chdir => directory, :out => wout, :err => werr)
106
+ begin
107
+ Timeout.timeout(timeout) do
108
+ exit_code = Process.wait2(pid)
109
+ output = rout.readlines.join("\n")
110
+ error = rerr.readlines.join("\n")
111
+ end
112
+ rescue
113
+ Proces.kill('TERM',pid)
114
+ output = output + 'timeout occurred.'
115
+ ensure
116
+ rout.close
117
+ rerr.close
118
+ end
119
+ [output,exit_code]
120
+ end
121
+
data/lib/base/timer.rb CHANGED
@@ -1,45 +1,45 @@
1
- puts __FILE__ if defined?(DEBUG)
2
-
3
- class Timer
4
- attr_accessor :start_time
5
-
6
- def initialize
7
- @start_time=Time.now
8
- end
9
-
10
- def elapsed # in seconds
11
- return Time.now-@start_time
12
- end
13
-
14
- def elapsed_str
15
- elapsed_str="[" + "%.0f" %(elapsed) + "s]"
16
- end
17
-
18
- def self.elapsed_exceeds?(name,duration_seconds)
19
- if(Timer.get_elapsed(name).nil? || Timer.get_elapsed(name) > duration_seconds)
20
- return true
21
- end
22
- return false
23
- end
24
-
25
- def self.get_elapsed(name)
26
- timestamp=get_timestamp(name)
27
- return Time.now-timestamp if(!timestamp.nil?)
28
- nil
29
- end
30
-
31
- def self.get_timestamp(name)
32
- dir=Rake.application.original_dir
33
- if(File.exists?("#{DEV[:dev_root]}/log/#{name}.timestamp"))
34
- return Time.parse(File.read("#{DEV[:dev_root]}/log/#{name}.timestamp").strip)
35
- end
36
- nil
37
- end
38
-
39
- def self.set_timestamp(name)
40
- Dir.mkdir("#{DEV_TASKS[:dev_root]}/log") if(!Dir.exists?("#{DEV_TASKS[:dev_root]}/log"))
41
- File.open("#{DEV_TASKS[:dev_root]}/log/#{name}.timestamp",'w'){|f|f.puts(Time.now.to_s)}
42
- end
43
- end
44
-
1
+ puts __FILE__ if defined?(DEBUG)
2
+
3
+ class Timer
4
+ attr_accessor :start_time
5
+
6
+ def initialize
7
+ @start_time=Time.now
8
+ end
9
+
10
+ def elapsed # in seconds
11
+ return Time.now-@start_time
12
+ end
13
+
14
+ def elapsed_str
15
+ elapsed_str="[" + "%.0f" %(elapsed) + "s]"
16
+ end
17
+
18
+ def self.elapsed_exceeds?(name,duration_seconds)
19
+ if(Timer.get_elapsed(name).nil? || Timer.get_elapsed(name) > duration_seconds)
20
+ return true
21
+ end
22
+ return false
23
+ end
24
+
25
+ def self.get_elapsed(name)
26
+ timestamp=get_timestamp(name)
27
+ return Time.now-timestamp if(!timestamp.nil?)
28
+ nil
29
+ end
30
+
31
+ def self.get_timestamp(name)
32
+ dir=Rake.application.original_dir
33
+ if(File.exists?("#{DEV[:dev_root]}/log/#{name}.timestamp"))
34
+ return Time.parse(File.read("#{DEV[:dev_root]}/log/#{name}.timestamp").strip)
35
+ end
36
+ nil
37
+ end
38
+
39
+ def self.set_timestamp(name)
40
+ Dir.mkdir("#{DEV_TASKS[:dev_root]}/log") if(!Dir.exists?("#{DEV_TASKS[:dev_root]}/log"))
41
+ File.open("#{DEV_TASKS[:dev_root]}/log/#{name}.timestamp",'w'){|f|f.puts(Time.now.to_s)}
42
+ end
43
+ end
44
+
45
45
  TIMER=Timer.new
data/lib/base/version.rb CHANGED
@@ -1,83 +1,83 @@
1
- class Version
2
- def self.extract text
3
- [/VERSION\s*=\s*['"]([\d.]+)['"]/,
4
- /[Vv]ersion\s*=\s*['"]([\d.]+)['"]/,
5
- /Version\(\s*"([\d.]+)"\s*\)/].each{|regex|
6
- scan=text.scan(regex)
7
- if(!scan.nil?)
8
- return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
9
- end
10
- }
11
- nil
12
- end
13
-
14
- def self.extract_from_file filename
15
- Version.extract IO.read(filename)
16
- end
17
-
18
- def self.extract_from_filelist filelist
19
- version=nil
20
- filelist.each{|f|
21
- version=extract_from_file f
22
- return version if !version.nil?
23
- }
24
- nil
25
- end
26
-
27
- def self.update_text text, version
28
- text=text.gsub(/version\s*=\s*'[\d.]+'/,"version='#{version}'")
29
- text=text.gsub(/VERSION\s*=\s*'[\d.]+'/,"VERSION='#{version}'")
30
- text=text.gsub(/version\s*=\s*"[\d.]+"/,"version=\"#{version}\"")
31
- text=text.gsub(/Version\s*=\s*'[\d.]+'/,"Version='#{version}'")
32
- text=text.gsub(/Version\s*=\s*"[\d.]+"/,"Version=\"#{version}\"")
33
- text=text.gsub(/Version\(\s*"[\d.]+"\s*\)/,"Version(\"#{version}\")")
34
- text=text.gsub(/Name\s*=\s*"Version"\s*Value\s*=\s*"[\d.]+"/,"Name=\"Version\" Value=\"#{version}\"")
35
- end
36
-
37
- def self.update_file filename, version
38
- if(File.exists?(filename))
39
- orig=IO.read(filename)
40
- text=Version.update_text orig,version
41
- File.open(filename,'w'){|f|f.write(text)} if(orig!=text)
42
- end
43
- end
44
-
45
- def self.update_filelist filelist,version
46
- filelist.each{|f|
47
- Version.update_file f,version
48
- }
49
- end
50
-
51
- def self.read filename
52
- return "#{Gem::Specification.load(filename).version.to_s}" if filename.include?('.gemspec')
53
- if filename.include?('AssemblyInfo.cs')
54
- scan=IO.read(filename).scan(/Version\(\"([\d.]+)\"\)/)
55
- if(!scan.nil?)
56
- return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
57
- end
58
- #return IO.read(filename).scan(/Version\(\"([\d.]+)\"\)/)[0][0]
59
- scan=IO.read(filename).scan(/Version=\"([\d.]+)\"/)
60
- if(!scan.nil?)
61
- return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
62
- end
63
- end
64
- '0.0'
65
- end
66
-
67
- def self.get_version
68
- Dir.glob('**/*.gemspec').each{|gemspec|
69
- return Version.read gemspec
70
- }
71
- Dir.glob('**/AssemblyInfo.cs').each{|assemblyInfo|
72
- return Version.read assemblyInfo
73
- }
74
- Dir.glob('**/*.wxs').each{|wxs|
75
- return Version.read wxs
76
- }
77
- '0.0'
78
- end
79
- end
80
-
81
- if(!defined?(VERSION))
82
- VERSION=Version.get_version
1
+ class Version
2
+ def self.extract text
3
+ [/VERSION\s*=\s*['"]([\d.]+)['"]/,
4
+ /[Vv]ersion\s*=\s*['"]([\d.]+)['"]/,
5
+ /Version\(\s*"([\d.]+)"\s*\)/].each{|regex|
6
+ scan=text.scan(regex)
7
+ if(!scan.nil?)
8
+ return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
9
+ end
10
+ }
11
+ nil
12
+ end
13
+
14
+ def self.extract_from_file filename
15
+ Version.extract IO.read(filename)
16
+ end
17
+
18
+ def self.extract_from_filelist filelist
19
+ version=nil
20
+ filelist.each{|f|
21
+ version=extract_from_file f
22
+ return version if !version.nil?
23
+ }
24
+ nil
25
+ end
26
+
27
+ def self.update_text text, version
28
+ text=text.gsub(/version\s*=\s*'[\d.]+'/,"version='#{version}'")
29
+ text=text.gsub(/VERSION\s*=\s*'[\d.]+'/,"VERSION='#{version}'")
30
+ text=text.gsub(/version\s*=\s*"[\d.]+"/,"version=\"#{version}\"")
31
+ text=text.gsub(/Version\s*=\s*'[\d.]+'/,"Version='#{version}'")
32
+ text=text.gsub(/Version\s*=\s*"[\d.]+"/,"Version=\"#{version}\"")
33
+ text=text.gsub(/Version\(\s*"[\d.]+"\s*\)/,"Version(\"#{version}\")")
34
+ text=text.gsub(/Name\s*=\s*"Version"\s*Value\s*=\s*"[\d.]+"/,"Name=\"Version\" Value=\"#{version}\"")
35
+ end
36
+
37
+ def self.update_file filename, version
38
+ if(File.exists?(filename))
39
+ orig=IO.read(filename)
40
+ text=Version.update_text orig,version
41
+ File.open(filename,'w'){|f|f.write(text)} if(orig!=text)
42
+ end
43
+ end
44
+
45
+ def self.update_filelist filelist,version
46
+ filelist.each{|f|
47
+ Version.update_file f,version
48
+ }
49
+ end
50
+
51
+ def self.read filename
52
+ return "#{Gem::Specification.load(filename).version.to_s}" if filename.include?('.gemspec')
53
+ if filename.include?('AssemblyInfo.cs')
54
+ scan=IO.read(filename).scan(/Version\(\"([\d.]+)\"\)/)
55
+ if(!scan.nil?)
56
+ return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
57
+ end
58
+ #return IO.read(filename).scan(/Version\(\"([\d.]+)\"\)/)[0][0]
59
+ scan=IO.read(filename).scan(/Version=\"([\d.]+)\"/)
60
+ if(!scan.nil?)
61
+ return scan[0][0] if(scan.length > 0 && !scan[0].nil? && scan[0].length > 0)
62
+ end
63
+ end
64
+ '0.0'
65
+ end
66
+
67
+ def self.get_version
68
+ Dir.glob('**/*.gemspec').each{|gemspec|
69
+ return Version.read gemspec
70
+ }
71
+ Dir.glob('**/AssemblyInfo.cs').each{|assemblyInfo|
72
+ return Version.read assemblyInfo
73
+ }
74
+ Dir.glob('**/*.wxs').each{|wxs|
75
+ return Version.read wxs
76
+ }
77
+ '0.0'
78
+ end
79
+ end
80
+
81
+ if(!defined?(VERSION))
82
+ VERSION=Version.get_version
83
83
  end