tty-process-ctl 0.2.0 → 0.3.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.
- data/Gemfile.lock +0 -1
- data/VERSION +1 -1
- data/lib/tty-process-ctl.rb +3 -3
- data/spec/tty-process-ctl_spec.rb +9 -9
- data/tty-process-ctl.gemspec +3 -3
- metadata +16 -46
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/tty-process-ctl.rb
CHANGED
@@ -21,7 +21,7 @@ class TTYProcessCtl
|
|
21
21
|
begin
|
22
22
|
abort_on_exception = true
|
23
23
|
@r.each_line do |line|
|
24
|
-
enqueue_message line
|
24
|
+
enqueue_message line.chop
|
25
25
|
end
|
26
26
|
rescue Errno::EIO
|
27
27
|
ensure
|
@@ -106,8 +106,8 @@ class TTYProcessCtl
|
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
|
-
def dequeue(
|
110
|
-
message = @out_queue.pop(
|
109
|
+
def dequeue(no_block = false)
|
110
|
+
message = @out_queue.pop(no_block)
|
111
111
|
return nil unless message
|
112
112
|
@messages << message
|
113
113
|
@messages.pop while @messages.length > @max_messages
|
@@ -24,7 +24,7 @@ describe TTYProcessCtl do
|
|
24
24
|
|
25
25
|
it 'should be Enumerable' do
|
26
26
|
subject.should respond_to :take
|
27
|
-
subject.take(2).should == ["151 recipes
|
27
|
+
subject.take(2).should == ["151 recipes", "16 achievements"]
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'should return nothing if iterating on dead process' do
|
@@ -33,37 +33,37 @@ describe TTYProcessCtl do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'should allow iteration until pattern is found in message' do
|
36
|
-
subject.each_until(/NOT ENOUGH RAM/).to_a.last.should == "2011-09-10 12:58:55 [WARNING] **** NOT ENOUGH RAM
|
36
|
+
subject.each_until(/NOT ENOUGH RAM/).to_a.last.should == "2011-09-10 12:58:55 [WARNING] **** NOT ENOUGH RAM!"
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'should allow iteration until pattern is found in message excluding that message' do
|
40
|
-
subject.each_until_exclude(/NOT ENOUGH RAM/).to_a.last.should == "2011-09-10 12:58:55 [INFO] Starting minecraft server version Beta 1.7.3
|
40
|
+
subject.each_until_exclude(/NOT ENOUGH RAM/).to_a.last.should == "2011-09-10 12:58:55 [INFO] Starting minecraft server version Beta 1.7.3"
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'should allow waiting for message matching pattern' do
|
44
44
|
subject.wait_until(/NOT ENOUGH RAM/)
|
45
|
-
subject.each.to_a.first.should == "2011-09-10 12:58:55 [WARNING] To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"
|
45
|
+
subject.each.to_a.first.should == "2011-09-10 12:58:55 [WARNING] To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
49
|
describe 'sending commands' do
|
50
50
|
it 'should allow sending commands to controled process' do
|
51
51
|
subject.send_command 'stop'
|
52
|
-
subject.each.to_a.last.should == "2011-09-19 22:12:00 [INFO] Saving chunks
|
52
|
+
subject.each.to_a.last.should == "2011-09-19 22:12:00 [INFO] Saving chunks"
|
53
53
|
end
|
54
54
|
|
55
55
|
it 'should allow sending commands and iterating output' do
|
56
56
|
subject.send_command 'list'
|
57
|
-
subject.each_until(/Connected players/).to_a.last.should == "2011-09-20 14:42:04 [INFO] Connected players: kazuya
|
57
|
+
subject.each_until(/Connected players/).to_a.last.should == "2011-09-20 14:42:04 [INFO] Connected players: kazuya"
|
58
58
|
|
59
59
|
subject.send_command 'stop'
|
60
|
-
subject.each.to_a.last.should == "2011-09-19 22:12:00 [INFO] Saving chunks
|
60
|
+
subject.each.to_a.last.should == "2011-09-19 22:12:00 [INFO] Saving chunks"
|
61
61
|
end
|
62
62
|
|
63
63
|
it 'should echo sent command' do
|
64
64
|
subject.each_until(/Done/).to_a
|
65
65
|
subject.send_command 'stop'
|
66
|
-
subject.each.to_a.first.should == "stop
|
66
|
+
subject.each.to_a.first.should == "stop"
|
67
67
|
end
|
68
68
|
|
69
69
|
it 'should raise error when sending command to dead process' do
|
@@ -98,7 +98,7 @@ describe TTYProcessCtl do
|
|
98
98
|
subject.flush
|
99
99
|
|
100
100
|
subject.send_command 'list'
|
101
|
-
subject.each_until(/Connected players/).to_a.should == ["list
|
101
|
+
subject.each_until(/Connected players/).to_a.should == ["list", "2011-09-20 14:42:04 [INFO] Connected players: kazuya"]
|
102
102
|
|
103
103
|
subject.send_command 'stop'
|
104
104
|
end
|
data/tty-process-ctl.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "tty-process-ctl"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jakub Pastuszek"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-11-18"
|
13
13
|
s.description = "This gem was created to enable control of interactive terminal applications. It is using pseudo tty to communicate with the process via simple API."
|
14
14
|
s.email = "jpastuszek@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
s.homepage = "http://github.com/jpastuszek/tty-process-ctl"
|
38
38
|
s.licenses = ["MIT"]
|
39
39
|
s.require_paths = ["lib"]
|
40
|
-
s.rubygems_version = "1.8.
|
40
|
+
s.rubygems_version = "1.8.15"
|
41
41
|
s.summary = "Control of interactive terminal applications via simple API."
|
42
42
|
|
43
43
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tty-process-ctl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70198123123360 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: '2.8'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.8'
|
24
|
+
version_requirements: *70198123123360
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: rdoc
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &70198123122620 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ~>
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: '3.12'
|
38
33
|
type: :development
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '3.12'
|
35
|
+
version_requirements: *70198123122620
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: bundler
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &70198123122100 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ~>
|
@@ -53,15 +43,10 @@ dependencies:
|
|
53
43
|
version: '1.1'
|
54
44
|
type: :development
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.1'
|
46
|
+
version_requirements: *70198123122100
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: jeweler
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &70198123121460 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ~>
|
@@ -69,15 +54,10 @@ dependencies:
|
|
69
54
|
version: '1.8'
|
70
55
|
type: :development
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '1.8'
|
57
|
+
version_requirements: *70198123121460
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: simplecov
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &70198123120840 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
63
|
- - ! '>='
|
@@ -85,15 +65,10 @@ dependencies:
|
|
85
65
|
version: '0'
|
86
66
|
type: :development
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
68
|
+
version_requirements: *70198123120840
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: cli
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &70198123120200 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
74
|
- - ~>
|
@@ -101,12 +76,7 @@ dependencies:
|
|
101
76
|
version: '1.0'
|
102
77
|
type: :development
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '1.0'
|
79
|
+
version_requirements: *70198123120200
|
110
80
|
description: This gem was created to enable control of interactive terminal applications.
|
111
81
|
It is using pseudo tty to communicate with the process via simple API.
|
112
82
|
email: jpastuszek@gmail.com
|
@@ -147,7 +117,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
147
117
|
version: '0'
|
148
118
|
segments:
|
149
119
|
- 0
|
150
|
-
hash:
|
120
|
+
hash: 3600694926302972229
|
151
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
122
|
none: false
|
153
123
|
requirements:
|
@@ -156,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
126
|
version: '0'
|
157
127
|
requirements: []
|
158
128
|
rubyforge_project:
|
159
|
-
rubygems_version: 1.8.
|
129
|
+
rubygems_version: 1.8.15
|
160
130
|
signing_key:
|
161
131
|
specification_version: 3
|
162
132
|
summary: Control of interactive terminal applications via simple API.
|