ruby_expect 1.5 → 1.6.0
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.
- checksums.yaml +4 -4
- data/lib/ruby_expect/expect.rb +40 -0
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64ab7f0e6b76231b1d7d190291a40dc31cc2f7c9
|
4
|
+
data.tar.gz: 57c2411697a5f8360015d23906403a2f56094090
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c0e90e541aaab4c945292ba687d1dc416ea5453ee3746aff47cd23054fe43f80744f12f0579ac8f0f0f3908f6751d161b22ae0ac52c8fc4fd18ec836c1a4d7b
|
7
|
+
data.tar.gz: b45370d25213967730c4e023b7e87747f9296bfe11776174eaf5c7feeef57f2d5eddb8d94e7590e481f36b734742f2358a0745f3a100821eaa26b706bdfc1255
|
data/lib/ruby_expect/expect.rb
CHANGED
@@ -17,6 +17,7 @@
|
|
17
17
|
require 'thread'
|
18
18
|
require 'ruby_expect/procedure'
|
19
19
|
require 'pty'
|
20
|
+
require 'io/console'
|
20
21
|
|
21
22
|
#####
|
22
23
|
#
|
@@ -276,7 +277,46 @@ module RubyExpect
|
|
276
277
|
return true
|
277
278
|
end
|
278
279
|
|
280
|
+
###
|
281
|
+
# Provides the ability to hand control back to the user and
|
282
|
+
# allow them to interact with the spawned process.
|
283
|
+
def interact
|
284
|
+
if ($stdin.tty?)
|
285
|
+
$stdin.raw do |stdin|
|
286
|
+
interact_loop(stdin)
|
287
|
+
end
|
288
|
+
else
|
289
|
+
interact_loop($stdin)
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
279
293
|
private
|
294
|
+
def interact_loop stdin
|
295
|
+
done = false
|
296
|
+
while (! done)
|
297
|
+
avail = IO.select([@read_fh, stdin])
|
298
|
+
avail[0].each do |fh|
|
299
|
+
if (fh == stdin)
|
300
|
+
if (stdin.eof?)
|
301
|
+
done = true
|
302
|
+
else
|
303
|
+
c = stdin.read_nonblock(1)
|
304
|
+
$stdout.flush
|
305
|
+
@write_fh.write(c)
|
306
|
+
@write_fh.flush
|
307
|
+
end
|
308
|
+
elsif (fh == @read_fh)
|
309
|
+
if (@read_fh.eof?)
|
310
|
+
done = true
|
311
|
+
else
|
312
|
+
$stdout.write(@read_fh.read_nonblock(1024))
|
313
|
+
$stdout.flush
|
314
|
+
end
|
315
|
+
end
|
316
|
+
end
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
280
320
|
def read_proc
|
281
321
|
begin
|
282
322
|
ready = IO.select([@read_fh], nil, nil, 1)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_expect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Bates
|
@@ -9,7 +9,21 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2014-10-27 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.3'
|
13
27
|
description: Ruby implementation for send/expect interaction
|
14
28
|
email: abates@omeganetserv.com
|
15
29
|
executables: []
|
@@ -28,12 +42,12 @@ require_paths:
|
|
28
42
|
- lib
|
29
43
|
required_ruby_version: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- -
|
45
|
+
- - '>='
|
32
46
|
- !ruby/object:Gem::Version
|
33
47
|
version: '0'
|
34
48
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
49
|
requirements:
|
36
|
-
- -
|
50
|
+
- - '>='
|
37
51
|
- !ruby/object:Gem::Version
|
38
52
|
version: '0'
|
39
53
|
requirements: []
|