win32-open3 0.3.1-x86-mswin32-60 → 0.3.2-x86-mswin32-60

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/CHANGES CHANGED
@@ -1,75 +1,81 @@
1
- == 0.3.1 - 23-Jun-2009
2
- * Updated the license to Artistic 2.0
3
- * Set the license in the gemspec.
4
- * Added note regarding 1.9.x in the open3.txt file.
5
-
6
- == 0.3.0 - 22-Jun-2009
7
- * Fixed an issue where the block form of the Open3.popen3 method did not
8
- return the exit value.
9
- * Fixed the version number.
10
- * Added a test to validate the exit value in block form.
11
- * Updated the gemspec description.
12
-
13
- == 0.2.9 - 8-Mar-2009
14
- * Fixed a bug within an internal function that could cause an exception.
15
- Thanks go to Ross Bunker for the spot and patch.
16
- * Fixed the release dates for 0.2.7 and 0.2.8 (2009, not 2008).
17
-
18
- == 0.2.8 - 27-Feb-2009
19
- * Fixed a potential bug where nil might be returned instead of an actual
20
- Process::Status object. Thanks go to Benny Bach for the spot.
21
- * The 'test' Rake task now runs the 'clean' task after the fact.
22
- * Some updates to the README about precompiled binaries.
23
-
24
- == 0.2.7 - 11-Jan-2009
25
- * Fixed a bug that could cause exitstatus to return bogus information. Thanks
26
- go to Roman Zawada for the spot.
27
- * Added a 'build_binary_gem' Rake task.
28
- * Updates to the gemspec, including the addition of Park Heesob as the primary
29
- author in the gemspec.
30
- * Renamed the test file and the example file.
31
-
32
- == 0.2.6 - 1-June-2007
33
- * Fixed RubyForge bug #20455 (closed IO stream). Thanks go an anonymous user
34
- for the spot.
35
- * Added a Rakefile with tasks for building, testing and installation.
36
- * Minor updates to the test file.
37
- * Some minor rdoc improvements.
38
-
39
- == 0.2.5 - 8-Dec-2006
40
- * Added a WIN32_OPEN3_VERSION constant.
41
- * Fixes and updates to the gemspec.
42
- * Some internal reorganization.
43
- * Minor documentation updates and corrections.
44
-
45
- == 0.2.4 - 4-Jun-2006
46
- * Applied a patch for Windows 2000. Thanks again to John-Mason Shackelford
47
- for the patch.
48
- * Fixed the version number for the last release.
49
-
50
- == 0.2.3 - 3-Jun-2006
51
- * Now sets Process::Status when the block form is used. Thanks go to
52
- Samuel Tesla and John-Mason Shackelford for their patches.
53
- * Improved error messages.
54
- * Documentation updated with regards to the block form of the method calls.
55
- * Some internal reorganization that you don't care about.
56
-
57
- == 0.2.2 - 10-Feb-2006
58
- * Methods now support block form, and all handles are automatically closed
59
- at the end of the block (via ensure).
60
-
61
- == 0.2.1 - 27-Oct-2005
62
- * Added a type check in the extconf.rb file and did some type mangling in
63
- order to handle rb_pid_t in a backwards compatible way. In other words,
64
- you need this version to work with 1.8.3 or later.
65
-
66
- == 0.2.0 - 9-Jan-2005
67
- * Added the Open4 module and popen4 method. Thanks go to Aslak Hellesoy for
68
- the patch.
69
- * Added an optional 3rd parameter - the "show" flag. See docs for details.
70
- * Made some documentation more rdoc friendly.
71
- * Moved the "examples" directory to the toplevel directory.
72
- * Added some information to the README file about possible compiler problems.
73
-
74
- == 0.1.0 - 8-Oct-2004
75
- * Initial release
1
+ == 0.3.2 - 23-Jan-2010
2
+ * Updated the gemspec. The required version is now any version less
3
+ than 1.9.x. This library is for the 1.8.x branch only.
4
+ * The Rakefile now handles the gem building and installation and some
5
+ existing tasks were refactored.
6
+
7
+ == 0.3.1 - 23-Jun-2009
8
+ * Updated the license to Artistic 2.0
9
+ * Set the license in the gemspec.
10
+ * Added note regarding 1.9.x in the open3.txt file.
11
+
12
+ == 0.3.0 - 22-Jun-2009
13
+ * Fixed an issue where the block form of the Open3.popen3 method did not
14
+ return the exit value.
15
+ * Fixed the version number.
16
+ * Added a test to validate the exit value in block form.
17
+ * Updated the gemspec description.
18
+
19
+ == 0.2.9 - 8-Mar-2009
20
+ * Fixed a bug within an internal function that could cause an exception.
21
+ Thanks go to Ross Bunker for the spot and patch.
22
+ * Fixed the release dates for 0.2.7 and 0.2.8 (2009, not 2008).
23
+
24
+ == 0.2.8 - 27-Feb-2009
25
+ * Fixed a potential bug where nil might be returned instead of an actual
26
+ Process::Status object. Thanks go to Benny Bach for the spot.
27
+ * The 'test' Rake task now runs the 'clean' task after the fact.
28
+ * Some updates to the README about precompiled binaries.
29
+
30
+ == 0.2.7 - 11-Jan-2009
31
+ * Fixed a bug that could cause exitstatus to return bogus information. Thanks
32
+ go to Roman Zawada for the spot.
33
+ * Added a 'build_binary_gem' Rake task.
34
+ * Updates to the gemspec, including the addition of Park Heesob as the primary
35
+ author in the gemspec.
36
+ * Renamed the test file and the example file.
37
+
38
+ == 0.2.6 - 1-June-2007
39
+ * Fixed RubyForge bug #20455 (closed IO stream). Thanks go an anonymous user
40
+ for the spot.
41
+ * Added a Rakefile with tasks for building, testing and installation.
42
+ * Minor updates to the test file.
43
+ * Some minor rdoc improvements.
44
+
45
+ == 0.2.5 - 8-Dec-2006
46
+ * Added a WIN32_OPEN3_VERSION constant.
47
+ * Fixes and updates to the gemspec.
48
+ * Some internal reorganization.
49
+ * Minor documentation updates and corrections.
50
+
51
+ == 0.2.4 - 4-Jun-2006
52
+ * Applied a patch for Windows 2000. Thanks again to John-Mason Shackelford
53
+ for the patch.
54
+ * Fixed the version number for the last release.
55
+
56
+ == 0.2.3 - 3-Jun-2006
57
+ * Now sets Process::Status when the block form is used. Thanks go to
58
+ Samuel Tesla and John-Mason Shackelford for their patches.
59
+ * Improved error messages.
60
+ * Documentation updated with regards to the block form of the method calls.
61
+ * Some internal reorganization that you don't care about.
62
+
63
+ == 0.2.2 - 10-Feb-2006
64
+ * Methods now support block form, and all handles are automatically closed
65
+ at the end of the block (via ensure).
66
+
67
+ == 0.2.1 - 27-Oct-2005
68
+ * Added a type check in the extconf.rb file and did some type mangling in
69
+ order to handle rb_pid_t in a backwards compatible way. In other words,
70
+ you need this version to work with 1.8.3 or later.
71
+
72
+ == 0.2.0 - 9-Jan-2005
73
+ * Added the Open4 module and popen4 method. Thanks go to Aslak Hellesoy for
74
+ the patch.
75
+ * Added an optional 3rd parameter - the "show" flag. See docs for details.
76
+ * Made some documentation more rdoc friendly.
77
+ * Moved the "examples" directory to the toplevel directory.
78
+ * Added some information to the README file about possible compiler problems.
79
+
80
+ == 0.1.0 - 8-Oct-2004
81
+ * Initial release
data/MANIFEST CHANGED
@@ -1,11 +1,11 @@
1
- * CHANGES
2
- * MANIFEST
3
- * README
4
- * Rakefile
5
- * win32-open3.gemspec
6
- * doc/open3.txt
7
- * examples/open3_test.rb
8
- * ext/extconf.rb
9
- * ext/win32/open3.c
10
- * ext/win32/open3.h
1
+ * CHANGES
2
+ * MANIFEST
3
+ * README
4
+ * Rakefile
5
+ * win32-open3.gemspec
6
+ * doc/open3.txt
7
+ * examples/open3_test.rb
8
+ * ext/extconf.rb
9
+ * ext/win32/open3.c
10
+ * ext/win32/open3.h
11
11
  * test/test_win32_open3.rb
data/README CHANGED
@@ -1,62 +1,64 @@
1
- = Description
2
- This library provides an Open3.popen3 implementation for MS Windows.
3
-
4
- = Prerequisites
5
- Ruby 1.8.2 or later
6
- C++ compiler (if building from source).
7
-
8
- = Installation
9
- rake test (optional)
10
- rake install (non-gem) or rake install_gem (gem)
11
-
12
- = Synopsis
13
- require 'win32/open3'
14
-
15
- Open3.popen3('ver'){ |io_in, io_out, io_err|
16
- error = io_err.gets
17
- if error
18
- puts "Error: " + error.chomp
19
- exit
20
- end
21
- puts "Result: " + io_out.readlines.last.chomp
22
- }
23
-
24
- = Notes
25
- This library is not supported on Windows 95, 98, or ME.
26
- This is a stripped down version of Park Heesob's win32_popen library.
27
-
28
- = Developer's Notes
29
- This is a repackaging of Heesob's win32_popen module. The purpose of the
30
- repackaging was to create a unified API between the existing Ruby open3
31
- library and this library.
32
-
33
- The popen2 and posix_popen methods are not included in this release. They
34
- were originally part of the win32_popen module, but have been left out.
35
- They may be added back in at a later date.
36
-
37
- There are a couple of differences in the Windows version for open3 (which
38
- also apply to Open4.popen4) - the mode flag and the show flag. For the
39
- mode, you can specify either 't' (text, the default) or 'b' (binary) as a
40
- second argument. For the show flag, you can specify either true or false,
41
- which will show the console window, or not, depending on the value you
42
- pass. The default is false.
43
-
44
- = Known Issues
45
- I have noticed that this library (and others) may segfault if you are using
46
- the latest version of the Ruby one-click installer and VC++ 7.0 or later.
47
- This appears to be an issue between VC++ 6 (which the installer was built
48
- with) and VC++ 7.0. Your best solution is to either upgrade your C
49
- compiler or to rebuild Ruby from scratch rather than using the installer.
50
-
51
- = Precompiled binaries
52
-
53
- If you do a typical "gem install win32-open3" you will get a precompiled
54
- binary appropriate for your platform. If you want to build from source,
55
- go the project page and download, download the .zip file, and run the
56
- 'install' Rake task from the command line.
57
-
58
- = Future Plans
59
- Replace the current implementation with a pure Ruby version.
60
-
61
- = More Documentation
62
- See the doc/open3.txt file for more details.
1
+ = Description
2
+ This library provides an Open3.popen3 implementation for MS Windows for
3
+ the Ruby 1.8.x branch.
4
+
5
+ = Prerequisites
6
+ Ruby 1.8.x branch only
7
+ C++ compiler (if building from source)
8
+
9
+ = Installation
10
+ gem install win32-open3 # Build and install from source
11
+ gem install win32-open3 --platform x86-mingw32 # Install the binary gem
12
+
13
+ = Synopsis
14
+ require 'win32/open3'
15
+
16
+ Open3.popen3('ver'){ |io_in, io_out, io_err|
17
+ error = io_err.gets
18
+
19
+ if error
20
+ puts "Error: " + error.chomp
21
+ exit
22
+ end
23
+
24
+ puts "Result: " + io_out.readlines.last.chomp
25
+ }
26
+
27
+ = Notes
28
+ This library is not supported on Windows 95, 98, or ME.
29
+ This is a stripped down version of Park Heesob's win32_popen library.
30
+
31
+ = Developer's Notes
32
+ This is a repackaging of Heesob's win32_popen module. The purpose of the
33
+ repackaging was to create a unified API between the existing Ruby open3
34
+ library and this library.
35
+
36
+ The popen2 and posix_popen methods are not included in this release. They
37
+ were originally part of the win32_popen module, but have been left out.
38
+ They may be added back in at a later date.
39
+
40
+ There are a couple of differences in the Windows version for open3 (which
41
+ also apply to Open4.popen4) - the mode flag and the show flag. For the
42
+ mode, you can specify either 't' (text, the default) or 'b' (binary) as a
43
+ second argument. For the show flag, you can specify either true or false,
44
+ which will show the console window, or not, depending on the value you
45
+ pass. The default is false.
46
+
47
+ = Known Issues
48
+ I have noticed that this library (and others) may segfault if you are using
49
+ the latest version of the Ruby one-click installer and VC++ 7.0 or later.
50
+ This appears to be an issue between VC++ 6 (which the installer was built
51
+ with) and VC++ 7.0. Your best solution is to either upgrade your C
52
+ compiler or to rebuild Ruby from scratch rather than using the installer.
53
+
54
+ = Precompiled binaries
55
+ If you do a typical "gem install win32-open3" you will get a precompiled
56
+ binary appropriate for your platform. If you want to build from source,
57
+ go the project page and download, download the .zip file, and run the
58
+ 'install' Rake task from the command line.
59
+
60
+ = Future Plans
61
+ Replace the current implementation with a pure Ruby version, if possible.
62
+
63
+ = More Documentation
64
+ See the doc/open3.txt file for more details.
data/Rakefile ADDED
@@ -0,0 +1,98 @@
1
+ require 'rake'
2
+ require 'rake/clean'
3
+ require 'rake/testtask'
4
+ require 'rbconfig'
5
+ include Config
6
+
7
+ make = CONFIG['MAKEFILES'].nil? ? 'nmake' : 'make'
8
+
9
+ desc 'Install the win32-open3 library'
10
+ task :install => [:build] do
11
+ Dir.chdir('ext'){
12
+ sh "#{make} install"
13
+ }
14
+ end
15
+
16
+ desc "Clean any build files for win32-open3"
17
+ task :clean do
18
+ Dir.chdir('ext') do
19
+ if File.exists?('open3.so') || File.exists?('win32/open3.so')
20
+ sh "#{make} distclean"
21
+ rm 'win32/open3.so' if File.exists?('win32/open3.so')
22
+ end
23
+ end
24
+ rm_rf 'lib'
25
+ end
26
+
27
+ desc "Build win32-open3 (but don't install it)"
28
+ task :build => [:clean] do
29
+ Dir.chdir('ext') do
30
+ ruby 'extconf.rb'
31
+ sh make
32
+ mv 'open3.so', 'win32' # For the test suite
33
+ end
34
+ end
35
+
36
+ desc "Run the sample program"
37
+ task :example => [:build] do |t|
38
+ Dir.chdir('examples'){
39
+ sh 'ruby -I../ext open3_test.rb'
40
+ }
41
+ end
42
+
43
+ namespace 'gem' do
44
+ desc 'Clean any build files and remove the .gem file'
45
+ task :clean do
46
+ Dir["*.gem"].each{ |f| File.delete(f) }
47
+ Dir.chdir('ext') do
48
+ if File.exists?('open3.so') || File.exists?('win32/open3.so')
49
+ sh "#{make} distclean"
50
+ rm 'win32/open3.so' if File.exists?('win32/open3.so')
51
+ end
52
+ end
53
+ end
54
+
55
+ desc 'Build the gem'
56
+ task :build => [:clean] do
57
+ spec = eval(IO.read('win32-open3.gemspec'))
58
+ Gem::Builder.new(spec).build
59
+ end
60
+
61
+ desc 'Install the win32-open3 library as a gem'
62
+ task :install => [:build] do
63
+ file = Dir["*.gem"].first
64
+ sh "gem install #{file}"
65
+ end
66
+
67
+ desc 'Build a binary gem'
68
+ task :binary => [:clean] do
69
+ Dir.chdir('ext') do
70
+ ruby 'extconf.rb'
71
+ sh make
72
+ end
73
+
74
+ mkdir_p 'lib/win32'
75
+ mv 'ext/open3.so', 'lib/win32'
76
+
77
+ spec = eval(IO.read('win32-open3.gemspec'))
78
+ spec.extensions = nil
79
+ spec.platform = Gem::Platform::CURRENT
80
+
81
+ spec.files = Dir['**/*'].reject{ |file|
82
+ file.include?('ext') || file.include?('git')
83
+ }
84
+
85
+ Gem::Builder.new(spec).build
86
+ end
87
+ end
88
+
89
+ Rake::TestTask.new('test') do |test|
90
+ task :test => [:build]
91
+ test.libs << 'ext'
92
+ test.warning = true
93
+ test.verbose = true
94
+ end
95
+
96
+ task :test do
97
+ Rake.application[:clean].execute
98
+ end
data/doc/open3.txt CHANGED
@@ -1,79 +1,79 @@
1
- = Description
2
- An open3 library for MS Windows.
3
-
4
- = Synopsis
5
- require 'win32/open3'
6
-
7
- Open3.popen3('ver'){ |io_in, io_out, io_err|
8
- error = io_err.gets
9
- if error
10
- puts "Error: " + error.chomp
11
- exit
12
- end
13
- puts "Result: " + io_out.readlines.last.chomp
14
- }
15
-
16
- = Module functions
17
- Open3.popen3(command, mode='t', show=false)
18
-
19
- Open3.popen3(command, mode='t', show=false){ |io_in, io_out, io_err| ... }
20
-
21
- Executes 'command', returning an array of three IO handles representing
22
- STDIN, STDOUT and STDERR, respectively. In block form these IO handles
23
- are yielded back to the block and automatically closed at the end of the
24
- block.
25
-
26
- You may optionally pass a mode flag of 't' (text, the default) or 'b'
27
- (binary) to this method.
28
-
29
- If the 'show' variable is set to true, then a console window is shown.
30
-
31
- Open4.popen4(command, mode='t', show=false)
32
-
33
- Open4.popen4(command, mode='t', show=false){ |io_in, io_out, io_err, pid| ... }
34
-
35
- Executes 'command', returning an array consisting of three IO handles,
36
- representing STDIN, STDOUT and STDERR, respectively, as well as the PID
37
- of the newly generated process. In block form these IO handles and pid
38
- are yielded back to the block and automatically closed at the end of the
39
- block.
40
-
41
- You may optionally pass a mode flag of 't' (text, the default) or 'b'
42
- (binary) to this method.
43
-
44
- If the 'show' variable is set to true, then a console window is shown.
45
-
46
- = Notes
47
- This is a remake of Park Heesob's win32_popen package. It has been reworked
48
- in order to make the API (nearly) identical to the Open3 package currently
49
- included in the Ruby standard library.
50
-
51
- For now only the popen3 and popen4 methods have been included. In later
52
- releases we will probably add the popen2 and posix_popen methods back in.
53
-
54
- Ruby 1.9.x users will not generally need this library because of its support
55
- for native threads. That means you can use the open3 library that ships as
56
- part of the standard library.
57
-
58
- = Acknowledgements
59
- Thanks go to Samuel Tesla and John-Mason Shackelford for their patches that
60
- enabled us to set Process::Status.
61
-
62
- = Known Bugs
63
- None that I know of. Please log any other bug reports on the RubyForge
64
- project page at http://www.rubyforge.net/projects/win32utils.
65
-
66
- = License
67
- Artistic 2.0
68
-
69
- = Copyright
70
- (C) 2003-2009 Daniel J. Berger, All Rights Reserved .
71
-
72
- = Warranty
73
- This package is provided "as is" and without any express or
74
- implied warranties, including, without limitation, the implied
75
- warranties of merchantability and fitness for a particular purpose.
76
-
77
- = Authors
78
- Park Heesob
79
- Daniel J. Berger
1
+ = Description
2
+ An open3 library for MS Windows for the Ruby 1.8.x branch.
3
+
4
+ = Synopsis
5
+ require 'win32/open3'
6
+
7
+ Open3.popen3('ver'){ |io_in, io_out, io_err|
8
+ error = io_err.gets
9
+ if error
10
+ puts "Error: " + error.chomp
11
+ exit
12
+ end
13
+ puts "Result: " + io_out.readlines.last.chomp
14
+ }
15
+
16
+ = Module functions
17
+ Open3.popen3(command, mode='t', show=false)
18
+
19
+ Open3.popen3(command, mode='t', show=false){ |io_in, io_out, io_err| ... }
20
+
21
+ Executes 'command', returning an array of three IO handles representing
22
+ STDIN, STDOUT and STDERR, respectively. In block form these IO handles
23
+ are yielded back to the block and automatically closed at the end of the
24
+ block.
25
+
26
+ You may optionally pass a mode flag of 't' (text, the default) or 'b'
27
+ (binary) to this method.
28
+
29
+ If the 'show' variable is set to true, then a console window is shown.
30
+
31
+ Open4.popen4(command, mode='t', show=false)
32
+
33
+ Open4.popen4(command, mode='t', show=false){ |io_in, io_out, io_err, pid| ... }
34
+
35
+ Executes 'command', returning an array consisting of three IO handles,
36
+ representing STDIN, STDOUT and STDERR, respectively, as well as the PID
37
+ of the newly generated process. In block form these IO handles and pid
38
+ are yielded back to the block and automatically closed at the end of the
39
+ block.
40
+
41
+ You may optionally pass a mode flag of 't' (text, the default) or 'b'
42
+ (binary) to this method.
43
+
44
+ If the 'show' variable is set to true, then a console window is shown.
45
+
46
+ = Notes
47
+ This is a remake of Park Heesob's win32_popen package. It has been reworked
48
+ in order to make the API (nearly) identical to the Open3 package currently
49
+ included in the Ruby standard library.
50
+
51
+ For now only the popen3 and popen4 methods have been included. In later
52
+ releases we will probably add the popen2 and posix_popen methods back in.
53
+
54
+ Ruby 1.9.x users will not generally need this library because of its support
55
+ for native threads. That means you can use the open3 library that ships as
56
+ part of the standard library.
57
+
58
+ = Acknowledgements
59
+ Thanks go to Samuel Tesla and John-Mason Shackelford for their patches that
60
+ enabled us to set Process::Status.
61
+
62
+ = Known Bugs
63
+ None that I know of. Please log any other bug reports on the RubyForge
64
+ project page at http://www.rubyforge.net/projects/win32utils.
65
+
66
+ = License
67
+ Artistic 2.0
68
+
69
+ = Copyright
70
+ (C) 2003-2010 Daniel J. Berger, All Rights Reserved .
71
+
72
+ = Warranty
73
+ This package is provided "as is" and without any express or
74
+ implied warranties, including, without limitation, the implied
75
+ warranties of merchantability and fitness for a particular purpose.
76
+
77
+ = Authors
78
+ Park Heesob
79
+ Daniel J. Berger