em-systemcommand 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
data/lib/em-systemcommand.rb
CHANGED
@@ -89,7 +89,7 @@ module EventMachine
|
|
89
89
|
##
|
90
90
|
# Returns the status object of the popen4 call.
|
91
91
|
def status
|
92
|
-
Process.waitpid2(pid)[1]
|
92
|
+
@status ||= Process.waitpid2(pid)[1]
|
93
93
|
end
|
94
94
|
|
95
95
|
alias_method :success, :callback
|
@@ -100,6 +100,9 @@ module EventMachine
|
|
100
100
|
def unbind name
|
101
101
|
pipes.delete name
|
102
102
|
if pipes.empty?
|
103
|
+
exit_callbacks.each do |cb|
|
104
|
+
cb.call status
|
105
|
+
end
|
103
106
|
if status.exitstatus == 0
|
104
107
|
succeed self
|
105
108
|
else
|
@@ -118,5 +121,18 @@ module EventMachine
|
|
118
121
|
@stderr.close
|
119
122
|
val
|
120
123
|
end
|
124
|
+
|
125
|
+
##
|
126
|
+
# A method to add a callback for when the process unbinds.
|
127
|
+
def exit &block
|
128
|
+
exit_callbacks << block
|
129
|
+
end
|
130
|
+
|
131
|
+
##
|
132
|
+
# An array of exit callbacks, being called with `status` as
|
133
|
+
# parameter when the process is unbound.
|
134
|
+
def exit_callbacks
|
135
|
+
@exit_callbacks ||= []
|
136
|
+
end
|
121
137
|
end
|
122
138
|
end
|
@@ -2,6 +2,24 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe EM::SystemCommand do
|
4
4
|
|
5
|
+
it 'should call an exit callback when process is unbound' do
|
6
|
+
called = false
|
7
|
+
exitstatus = nil
|
8
|
+
EM.run do
|
9
|
+
EM::SystemCommand.execute 'exit 0;' do |on|
|
10
|
+
on.exit do |status|
|
11
|
+
called = true
|
12
|
+
exitstatus = status.exitstatus
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
EM.assertions do
|
17
|
+
called.should == true
|
18
|
+
exitstatus.should == 0
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
5
23
|
it 'should call a success callback when process succeeds' do
|
6
24
|
called = false
|
7
25
|
EM.run do
|
@@ -110,13 +128,13 @@ describe EM::SystemCommand do
|
|
110
128
|
it 'should pass multiple command executions' do
|
111
129
|
counter = 0
|
112
130
|
EM.run do
|
113
|
-
|
131
|
+
10.times do
|
114
132
|
EM::SystemCommand.execute 'ls' do |on|
|
115
133
|
on.success do
|
116
|
-
|
134
|
+
10.times do
|
117
135
|
EM::SystemCommand.execute 'ls' do |on2|
|
118
136
|
on2.success do
|
119
|
-
if counter >=
|
137
|
+
if counter >= 99
|
120
138
|
EM.stop_event_loop
|
121
139
|
else
|
122
140
|
counter += 1
|
@@ -124,7 +142,7 @@ describe EM::SystemCommand do
|
|
124
142
|
end
|
125
143
|
|
126
144
|
on2.failure do
|
127
|
-
if counter >=
|
145
|
+
if counter >= 99
|
128
146
|
EM.stop_event_loop
|
129
147
|
else
|
130
148
|
counter += 1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: em-systemcommand
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -147,7 +147,7 @@ files:
|
|
147
147
|
- lib/em-systemcommand/version.rb
|
148
148
|
- spec/em-systemcommand/builder_spec.rb
|
149
149
|
- spec/em-systemcommand/pipe_spec.rb
|
150
|
-
- spec/em-
|
150
|
+
- spec/em-systemcommand_spec.rb
|
151
151
|
- spec/spec_helper.rb
|
152
152
|
homepage: http://leoc.github.com/em-systemcommand/
|
153
153
|
licenses: []
|
@@ -163,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
163
|
version: '0'
|
164
164
|
segments:
|
165
165
|
- 0
|
166
|
-
hash:
|
166
|
+
hash: -3989779150220825362
|
167
167
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
168
|
none: false
|
169
169
|
requirements:
|
@@ -172,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
172
|
version: '0'
|
173
173
|
segments:
|
174
174
|
- 0
|
175
|
-
hash:
|
175
|
+
hash: -3989779150220825362
|
176
176
|
requirements: []
|
177
177
|
rubyforge_project:
|
178
178
|
rubygems_version: 1.8.24
|
@@ -182,5 +182,5 @@ summary: Sweeter popen3 for EventMachine.
|
|
182
182
|
test_files:
|
183
183
|
- spec/em-systemcommand/builder_spec.rb
|
184
184
|
- spec/em-systemcommand/pipe_spec.rb
|
185
|
-
- spec/em-
|
185
|
+
- spec/em-systemcommand_spec.rb
|
186
186
|
- spec/spec_helper.rb
|