win32-pipe 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.2.2 - 19-Mar-2012
2
+ * Added test-unit 2.x as a development dependency.
3
+ * Refactored some tests to use features of test-unit 2.x.
4
+ * Refactored the Rakefile.
5
+
1
6
  == 0.2.1 - 9-Aug-2009
2
7
  * License changed to Artistic 2.0.
3
8
  * Test and example files renamed.
data/Rakefile CHANGED
@@ -1,48 +1,48 @@
1
1
  require 'rake'
2
2
  require 'rake/clean'
3
3
  require 'rake/testtask'
4
- require 'rbconfig'
5
- include Config
6
4
 
7
- desc 'Install the win32-pipe library (non-gem)'
8
- task :install do
9
- sitelibdir = CONFIG['sitelibdir']
5
+ CLEAN.include("**/*.gem")
10
6
 
11
- pipe_installdir = File.join(sitelibdir, 'win32')
12
- sub_installdir = File.join(sitelibdir, 'win32', 'pipe')
7
+ namespace :gem do
8
+ desc 'Create the win32-pipe gem'
9
+ task :create => [:clean] do
10
+ spec = eval(IO.read('win32-pipe.gemspec'))
11
+ Gem::Builder.new(spec).build
12
+ end
13
13
 
14
- pipe_file = File.join('lib', 'win32', 'pipe.rb')
15
- client_file = File.join('lib', 'win32', 'pipe', 'client.rb')
16
- server_file = File.join('lib', 'win32', 'pipe', 'server.rb')
17
-
18
- FileUtils.mkdir_p(sub_installdir)
19
-
20
- FileUtils.cp(pipe_file, pipe_installdir, :verbose => true)
21
- FileUtils.cp(client_file, sub_installdir, :verbose => true)
22
- FileUtils.cp(server_file, sub_installdir, :verbose => true)
23
- end
24
-
25
- desc 'Run the asynchronous client example program'
26
- task :example_async_client do
27
- ruby '-Ilib examples/example_client_async.rb'
28
- end
29
-
30
- desc 'Run the client example program'
31
- task :example_client do
32
- ruby '-Ilib examples/example_client.rb'
33
- end
34
-
35
- desc 'Run the asynchronous server example program'
36
- task :example_async_server do
37
- ruby '-Ilib examples/example_server_async.rb'
14
+ desc 'Install the win32-pipe gem'
15
+ task :install => [:create] do
16
+ file = Dir['*.gem'].first
17
+ sh "gem install #{file}"
18
+ end
38
19
  end
39
20
 
40
- desc 'Run the server example program'
41
- task :example_server do
42
- ruby '-Ilib examples/example_server.rb'
21
+ namespace :example do
22
+ desc 'Run the asynchronous client example program'
23
+ task :async_client do
24
+ ruby '-Ilib examples/example_client_async.rb'
25
+ end
26
+
27
+ desc 'Run the client example program'
28
+ task :client do
29
+ ruby '-Ilib examples/example_client.rb'
30
+ end
31
+
32
+ desc 'Run the asynchronous server example program'
33
+ task :async_server do
34
+ ruby '-Ilib examples/example_server_async.rb'
35
+ end
36
+
37
+ desc 'Run the server example program'
38
+ task :server do
39
+ ruby '-Ilib examples/example_server.rb'
40
+ end
43
41
  end
44
42
 
45
43
  Rake::TestTask.new do |test|
46
- test.warning = true
47
- test.verbose = true
44
+ test.warning = true
45
+ test.verbose = true
48
46
  end
47
+
48
+ task :default => :test
data/lib/win32/pipe.rb CHANGED
@@ -20,7 +20,7 @@ module Win32
20
20
  class Error < StandardError; end
21
21
 
22
22
  # The version of this library
23
- VERSION = '0.2.1'
23
+ VERSION = '0.2.2'
24
24
 
25
25
  PIPE_BUFFER_SIZE = 512 #:nodoc:
26
26
  PIPE_TIMEOUT = 5000 #:nodoc:
@@ -1,49 +1,65 @@
1
1
  # The Win32 module serves as a namespace only
2
2
  module Win32
3
- # The Pipe::Client class encapsulates the client side of a named pipe
4
- # connection.
5
- #
6
- class Pipe::Client < Pipe
7
- # Create and return a new Pipe::Client instance.
8
- #
9
- # The default pipe mode is PIPE_WAIT.
10
- #
11
- # The default open mode is FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH.
12
- #--
13
- # 2147483776 is FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH
14
- def initialize(name, pipe_mode = DEFAULT_PIPE_MODE, open_mode = DEFAULT_OPEN_MODE)
15
- super(name, pipe_mode, open_mode)
3
+
4
+ # The Pipe::Client class encapsulates the client side of a named pipe
5
+ # connection.
6
+ #
7
+ class Pipe::Client < Pipe
8
+
9
+ # Create and return a new Pipe::Client instance. The +name+, +pipe_mode+,
10
+ # and +open_mode+ are passed to the Win32::Pipe superclass.
11
+ #
12
+ # The default +pipe_mode+ is NOWAIT.
13
+ #
14
+ # The default +open_mode+ is FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH.
15
+ #
16
+ # In block form the client object is yield, and is automatically
17
+ # disconnected and closed at the end of the block.
18
+ #
19
+ # Example:
20
+ #
21
+ # require 'win32/pipe'
22
+ #
23
+ # Pipe::Client.new('foo') do |pipe|
24
+ # puts "Connected..."
25
+ # pipe.write("Ruby rocks!")
26
+ # data = pipe.read
27
+ # puts "Got [#{data}] back from pipe server"
28
+ # end
29
+ #
30
+ def initialize(name, pipe_mode = DEFAULT_PIPE_MODE, open_mode = DEFAULT_OPEN_MODE)
31
+ super(name, pipe_mode, open_mode)
16
32
 
17
- @pipe = CreateFile(
18
- @name,
19
- GENERIC_READ | GENERIC_WRITE,
20
- FILE_SHARE_READ | FILE_SHARE_WRITE,
21
- nil,
22
- OPEN_EXISTING,
23
- @open_mode,
24
- nil
25
- )
33
+ @pipe = CreateFile(
34
+ @name,
35
+ GENERIC_READ | GENERIC_WRITE,
36
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
37
+ nil,
38
+ OPEN_EXISTING,
39
+ @open_mode,
40
+ nil
41
+ )
26
42
 
27
- error = GetLastError()
43
+ error = GetLastError()
28
44
 
29
- if error == ERROR_PIPE_BUSY
30
- unless WaitNamedPipe(@name, NMPWAIT_WAIT_FOREVER)
31
- raise Error, get_last_error
32
- end
33
- end
45
+ if error == ERROR_PIPE_BUSY
46
+ unless WaitNamedPipe(@name, NMPWAIT_WAIT_FOREVER)
47
+ raise Error, get_last_error
48
+ end
49
+ end
34
50
 
35
- if @pipe == INVALID_HANDLE_VALUE
36
- raise Error, get_last_error
37
- end
51
+ if @pipe == INVALID_HANDLE_VALUE
52
+ raise Error, get_last_error
53
+ end
38
54
 
39
- if block_given?
40
- begin
41
- yield self
42
- ensure
43
- disconnect
44
- close
45
- end
46
- end
55
+ if block_given?
56
+ begin
57
+ yield self
58
+ ensure
59
+ disconnect
60
+ close
61
+ end
47
62
  end
48
- end
63
+ end
64
+ end
49
65
  end
@@ -4,119 +4,123 @@
4
4
  # Test suite for the win32-pipe library. This test suite should be run
5
5
  # via the 'rake test' task.
6
6
  ##########################################################################
7
+ require 'rubygems'
8
+ gem 'test-unit'
7
9
  require 'test/unit'
10
+
8
11
  require 'win32/pipe'
9
12
  include Win32
10
13
 
11
14
  class TC_Win32_Pipe < Test::Unit::TestCase
12
- def setup
13
- @pipe = Pipe.new('foo')
14
- end
15
+ def setup
16
+ @pipe = Pipe.new('foo')
17
+ end
15
18
 
16
- def test_version
17
- assert_equal('0.2.1', Pipe::VERSION)
18
- end
19
+ def test_version
20
+ assert_equal('0.2.2', Pipe::VERSION)
21
+ end
19
22
 
20
- def test_name
21
- assert_respond_to(@pipe, :name)
22
- assert_nothing_raised{ @pipe.name }
23
- assert_equal("\\\\.\\pipe\\foo", @pipe.name)
24
- end
23
+ def test_name
24
+ assert_respond_to(@pipe, :name)
25
+ assert_nothing_raised{ @pipe.name }
26
+ assert_equal("\\\\.\\pipe\\foo", @pipe.name)
27
+ end
25
28
 
26
- def test_pipe_mode
27
- assert_respond_to(@pipe, :pipe_mode)
28
- assert_nothing_raised{ @pipe.pipe_mode }
29
- assert_equal(Pipe::DEFAULT_PIPE_MODE, @pipe.pipe_mode)
30
- end
29
+ def test_pipe_mode
30
+ assert_respond_to(@pipe, :pipe_mode)
31
+ assert_nothing_raised{ @pipe.pipe_mode }
32
+ assert_equal(Pipe::DEFAULT_PIPE_MODE, @pipe.pipe_mode)
33
+ end
31
34
 
32
- def test_open_mode
33
- assert_respond_to(@pipe, :open_mode)
34
- assert_nothing_raised{ @pipe.open_mode }
35
- assert_equal(Pipe::DEFAULT_OPEN_MODE, @pipe.open_mode)
36
- end
37
-
38
- def test_buffer
39
- assert_respond_to(@pipe, :buffer)
40
- assert_nothing_raised{ @pipe.buffer }
41
- end
42
-
43
- def test_size
44
- assert_respond_to(@pipe, :size)
45
- assert_nothing_raised{ @pipe.size }
46
- end
47
-
48
- def test_length_alias
49
- assert_respond_to(@pipe, :length)
50
- assert_equal(true, @pipe.method(:length) == @pipe.method(:size))
51
- end
52
-
53
- def test_pending
54
- assert_respond_to(@pipe, :pending?)
55
- assert_nothing_raised{ @pipe.pending? }
56
- assert_equal(false, @pipe.pending?)
57
- end
35
+ def test_open_mode
36
+ assert_respond_to(@pipe, :open_mode)
37
+ assert_nothing_raised{ @pipe.open_mode }
38
+ assert_equal(Pipe::DEFAULT_OPEN_MODE, @pipe.open_mode)
39
+ end
40
+
41
+ def test_buffer
42
+ assert_respond_to(@pipe, :buffer)
43
+ assert_nothing_raised{ @pipe.buffer }
44
+ end
45
+
46
+ def test_size
47
+ assert_respond_to(@pipe, :size)
48
+ assert_nothing_raised{ @pipe.size }
49
+ end
50
+
51
+ def test_length_alias
52
+ assert_respond_to(@pipe, :length)
53
+ assert_true(@pipe.method(:length) == @pipe.method(:size))
54
+ assert_alias_method(@pipe, :length, :size)
55
+ end
56
+
57
+ def test_pending
58
+ assert_respond_to(@pipe, :pending?)
59
+ assert_nothing_raised{ @pipe.pending? }
60
+ assert_false(@pipe.pending?)
61
+ end
58
62
 
59
- def test_asynchronous
60
- assert_respond_to(@pipe, :asynchronous?)
61
- assert_nothing_raised{ @pipe.asynchronous? }
62
- assert_equal(false, @pipe.asynchronous?)
63
- end
64
-
65
- def test_read
66
- assert_respond_to(@pipe, :read)
67
- assert_raises(Pipe::Error){ @pipe.read } # Nothing to read
68
- end
69
-
70
- def test_transferred
71
- assert_respond_to(@pipe, :transferred)
72
- assert_nothing_raised{ @pipe.transferred }
73
- end
74
-
75
- def test_wait
76
- assert_respond_to(@pipe, :wait)
77
- assert_raises(Pipe::Error){ @pipe.wait } # Can't wait in blocking mode
78
- end
79
-
80
- def test_write
81
- assert_respond_to(@pipe, :write)
82
- assert_raises(ArgumentError){ @pipe.write } # Must have 1 argument
83
- assert_raises(Pipe::Error){ @pipe.write("foo") } # Nothing to write to
84
- end
63
+ def test_asynchronous
64
+ assert_respond_to(@pipe, :asynchronous?)
65
+ assert_nothing_raised{ @pipe.asynchronous? }
66
+ assert_false(@pipe.asynchronous?)
67
+ end
68
+
69
+ def test_read
70
+ assert_respond_to(@pipe, :read)
71
+ assert_raises(Pipe::Error){ @pipe.read } # Nothing to read
72
+ end
73
+
74
+ def test_transferred
75
+ assert_respond_to(@pipe, :transferred)
76
+ assert_nothing_raised{ @pipe.transferred }
77
+ end
78
+
79
+ def test_wait
80
+ assert_respond_to(@pipe, :wait)
81
+ assert_raises(Pipe::Error){ @pipe.wait } # Can't wait in blocking mode
82
+ end
83
+
84
+ def test_write
85
+ assert_respond_to(@pipe, :write)
86
+ assert_raises(ArgumentError){ @pipe.write } # Must have 1 argument
87
+ assert_raises(Pipe::Error){ @pipe.write("foo") } # Nothing to write to
88
+ end
85
89
 
86
- def test_disconnect
87
- assert_respond_to(@pipe, :disconnect)
88
- assert_nothing_raised{ @pipe.disconnect }
89
- end
90
+ def test_disconnect
91
+ assert_respond_to(@pipe, :disconnect)
92
+ assert_nothing_raised{ @pipe.disconnect }
93
+ end
90
94
 
91
- def test_close
92
- assert_respond_to(@pipe, :close)
93
- assert_nothing_raised{ @pipe.close }
94
- end
95
-
96
- def test_pipe_mode_constants
97
- assert_not_nil(Pipe::WAIT)
98
- assert_not_nil(Pipe::NOWAIT)
99
- assert_not_nil(Pipe::TYPE_BYTE)
100
- assert_not_nil(Pipe::TYPE_MESSAGE)
101
- assert_not_nil(Pipe::READMODE_BYTE)
102
- assert_not_nil(Pipe::READMODE_MESSAGE)
103
- end
95
+ def test_close
96
+ assert_respond_to(@pipe, :close)
97
+ assert_nothing_raised{ @pipe.close }
98
+ end
99
+
100
+ def test_pipe_mode_constants
101
+ assert_not_nil(Pipe::WAIT)
102
+ assert_not_nil(Pipe::NOWAIT)
103
+ assert_not_nil(Pipe::TYPE_BYTE)
104
+ assert_not_nil(Pipe::TYPE_MESSAGE)
105
+ assert_not_nil(Pipe::READMODE_BYTE)
106
+ assert_not_nil(Pipe::READMODE_MESSAGE)
107
+ end
104
108
 
105
- def test_open_mode_constants
106
- assert_not_nil(Pipe::ACCESS_DUPLEX)
107
- assert_not_nil(Pipe::ACCESS_INBOUND)
108
- assert_not_nil(Pipe::ACCESS_OUTBOUND)
109
- assert_not_nil(Pipe::FIRST_PIPE_INSTANCE)
110
- assert_not_nil(Pipe::WRITE_THROUGH)
111
- assert_not_nil(Pipe::OVERLAPPED)
112
- end
109
+ def test_open_mode_constants
110
+ assert_not_nil(Pipe::ACCESS_DUPLEX)
111
+ assert_not_nil(Pipe::ACCESS_INBOUND)
112
+ assert_not_nil(Pipe::ACCESS_OUTBOUND)
113
+ assert_not_nil(Pipe::FIRST_PIPE_INSTANCE)
114
+ assert_not_nil(Pipe::WRITE_THROUGH)
115
+ assert_not_nil(Pipe::OVERLAPPED)
116
+ end
113
117
 
114
- def test_other_constants
115
- assert_not_nil(Pipe::INFINITE)
116
- end
117
-
118
- def teardown
119
- @pipe.close
120
- @pipe = nil
121
- end
118
+ def test_other_constants
119
+ assert_not_nil(Pipe::INFINITE)
120
+ end
121
+
122
+ def teardown
123
+ @pipe.close
124
+ @pipe = nil
125
+ end
122
126
  end
@@ -6,23 +6,55 @@
6
6
  ##########################################################################
7
7
  require 'test/unit'
8
8
  require 'win32/pipe'
9
- include Win32
10
9
 
11
10
  class TC_Win32_Pipe_Client < Test::Unit::TestCase
12
- def setup
13
- @pipe = nil
14
- end
15
-
16
- def test_constructor_basic
17
- assert_respond_to(Pipe::Client, :new)
18
- end
19
-
20
- def test_constructor_expected_errors
21
- assert_raise(ArgumentError){ Pipe::Client.new }
22
- assert_raise(TypeError){ Pipe::Client.new(1) }
23
- end
24
-
25
- def teardown
26
- @pipe = nil
27
- end
11
+ def setup
12
+ @server = Win32::Pipe::Server.new('test')
13
+ @pipe = nil
14
+ @name = 'test'
15
+ @pmode = Win32::Pipe::PIPE_NOWAIT
16
+ @omode = Win32::Pipe::DEFAULT_OPEN_MODE
17
+ end
18
+
19
+ test "constructor basic functionality" do
20
+ assert_respond_to(Win32::Pipe::Client, :new)
21
+ assert_nothing_raised{ @pipe = Win32::Pipe::Client.new(@name) }
22
+ end
23
+
24
+ test "constructor accepts an optional pipe mode" do
25
+ assert_nothing_raised{ @pipe = Win32::Pipe::Client.new(@name, @pmode) }
26
+ end
27
+
28
+ test "constructor accepts an optional open mode" do
29
+ assert_nothing_raised{ @pipe = Win32::Pipe::Client.new(@name, @pmode, @omode) }
30
+ end
31
+
32
+ test "constructor requires a pipe name" do
33
+ assert_raise(ArgumentError){ Win32::Pipe::Client.new }
34
+ end
35
+
36
+ test "pipe name must be a string" do
37
+ assert_raise(TypeError){ Win32::Pipe::Client.new(1) }
38
+ end
39
+
40
+ test "an error is raised if the named pipe cannot be found" do
41
+ assert_raise(Win32::Pipe::Error){ Win32::Pipe::Client.new('bogus') }
42
+ end
43
+
44
+ def teardown
45
+ if @pipe
46
+ @pipe.disconnect
47
+ @pipe.close
48
+ end
49
+
50
+ if @server
51
+ @server.disconnect
52
+ @server.close
53
+ end
54
+
55
+ @pmode = nil
56
+ @omode = nil
57
+ @pipe = nil
58
+ @server = nil
59
+ end
28
60
  end
@@ -15,7 +15,7 @@ class TC_Win32_Pipe_Server < Test::Unit::TestCase
15
15
 
16
16
  def test_constructor_basic
17
17
  assert_respond_to(Pipe::Server, :new)
18
- assert_nothing_raised{ Pipe::Server.new('foo') }
18
+ assert_nothing_raised{ @pipe = Pipe::Server.new('foo') }
19
19
  end
20
20
 
21
21
  def test_connect
data/win32-pipe.gemspec CHANGED
@@ -1,28 +1,25 @@
1
1
  require 'rubygems'
2
2
 
3
- spec = Gem::Specification.new do |gem|
4
- gem.name = 'win32-pipe'
5
- gem.version = '0.2.1'
6
- gem.author = 'Daniel J. Berger'
7
- gem.license = 'Artistic 2.0'
8
- gem.email = 'djberg96@gmail.com'
9
- gem.homepage = 'http://www.rubyforge.org/projects/win32utils'
10
- gem.platform = Gem::Platform::RUBY
11
- gem.summary = 'An interface for named pipes on MS Windows'
12
- gem.test_files = Dir['test/test_*.rb']
13
- gem.has_rdoc = true
14
- gem.files = Dir['**/*'].reject{ |f| f.include?('CVS') }
3
+ Gem::Specification.new do |spec|
4
+ spec.name = 'win32-pipe'
5
+ spec.version = '0.2.2'
6
+ spec.author = 'Daniel J. Berger'
7
+ spec.license = 'Artistic 2.0'
8
+ spec.email = 'djberg96@gmail.com'
9
+ spec.homepage = 'http://www.rubyforge.org/projects/win32utils'
10
+ spec.summary = 'An interface for named pipes on MS Windows'
11
+ spec.test_files = Dir['test/test_*.rb']
12
+ spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
15
13
 
16
- gem.rubyforge_project = 'win32utils'
17
- gem.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST']
14
+ spec.rubyforge_project = 'win32utils'
15
+ spec.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST']
18
16
 
19
- gem.add_dependency('windows-pr', '>= 1.0.6')
17
+ spec.add_dependency('windows-pr', '>= 1.0.6')
18
+ spec.add_development_dependency('test-unit', '>= 2.1.0')
20
19
 
21
- gem.description = <<-EOF
22
- The win32-pipe library provides an interface for named pipes on Windows.
23
- A named pipe is a named, one-way or duplex pipe for communication
24
- between the pipe server and one or more pipe clients.
25
- EOF
20
+ spec.description = <<-EOF
21
+ The win32-pipe library provides an interface for named pipes on Windows.
22
+ A named pipe is a named, one-way or duplex pipe for communication
23
+ between the pipe server and one or more pipe clients.
24
+ EOF
26
25
  end
27
-
28
- Gem::Builder.new(spec).build
metadata CHANGED
@@ -1,38 +1,49 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: win32-pipe
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Daniel J. Berger
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2009-08-09 00:00:00 -06:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-03-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: windows-pr
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
16
+ requirement: &21666690 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
23
21
  version: 1.0.6
24
- version:
25
- description: " The win32-pipe library provides an interface for named pipes on Windows.\n A named pipe is a named, one-way or duplex pipe for communication\n between the pipe server and one or more pipe clients. \n"
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *21666690
25
+ - !ruby/object:Gem::Dependency
26
+ name: test-unit
27
+ requirement: &21666430 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 2.1.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *21666430
36
+ description: ! " The win32-pipe library provides an interface for named pipes on
37
+ Windows.\n A named pipe is a named, one-way or duplex pipe for communication\n
38
+ \ between the pipe server and one or more pipe clients. \n"
26
39
  email: djberg96@gmail.com
27
40
  executables: []
28
-
29
41
  extensions: []
30
-
31
- extra_rdoc_files:
42
+ extra_rdoc_files:
32
43
  - CHANGES
33
44
  - README
34
45
  - MANIFEST
35
- files:
46
+ files:
36
47
  - CHANGES
37
48
  - examples/example_client.rb
38
49
  - examples/example_client_async.rb
@@ -48,35 +59,32 @@ files:
48
59
  - test/test_win32_pipe_client.rb
49
60
  - test/test_win32_pipe_server.rb
50
61
  - win32-pipe.gemspec
51
- has_rdoc: true
52
62
  homepage: http://www.rubyforge.org/projects/win32utils
53
- licenses:
63
+ licenses:
54
64
  - Artistic 2.0
55
65
  post_install_message:
56
66
  rdoc_options: []
57
-
58
- require_paths:
67
+ require_paths:
59
68
  - lib
60
- required_ruby_version: !ruby/object:Gem::Requirement
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: "0"
65
- version:
66
- required_rubygems_version: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: "0"
71
- version:
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
72
81
  requirements: []
73
-
74
82
  rubyforge_project: win32utils
75
- rubygems_version: 1.3.5
83
+ rubygems_version: 1.8.11
76
84
  signing_key:
77
85
  specification_version: 3
78
86
  summary: An interface for named pipes on MS Windows
79
- test_files:
87
+ test_files:
80
88
  - test/test_win32_pipe.rb
81
89
  - test/test_win32_pipe_client.rb
82
90
  - test/test_win32_pipe_server.rb