ruby_fs 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/CHANGELOG.md +3 -0
- data/lib/ruby_fs/stream.rb +18 -21
- data/lib/ruby_fs/version.rb +1 -1
- data/spec/ruby_fs/stream_spec.rb +19 -38
- metadata +4 -4
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# develop
|
2
2
|
|
3
|
+
# 0.3.0
|
4
|
+
* Feature/Change: Switch command methods from yielding the result asynchronously to returning it synchronously. Allows for better actor usage (async/futures)
|
5
|
+
|
3
6
|
# 0.2.0
|
4
7
|
* Feature: Common command helper methods
|
5
8
|
* Feature: Trace level logging & easy logging override
|
data/lib/ruby_fs/stream.rb
CHANGED
@@ -55,16 +55,17 @@ module RubyFS
|
|
55
55
|
# @param [#to_s] command the command to run
|
56
56
|
# @param [optional, Hash] options the command's options, where keys have _ substituted for -
|
57
57
|
#
|
58
|
-
# @
|
59
|
-
|
60
|
-
|
61
|
-
@command_callbacks << (
|
58
|
+
# @return [RubyFS::Response] response the command's response object
|
59
|
+
def command(command, options = {}, &callback)
|
60
|
+
uuid = SecureRandom.uuid
|
61
|
+
@command_callbacks << (callback || lambda { |reply| signal uuid, reply })
|
62
62
|
string = "#{command}\n"
|
63
63
|
options.each_pair do |key, value|
|
64
64
|
string << "#{key.to_s.gsub '_', '-'}: #{value}\n" if value
|
65
65
|
end
|
66
66
|
string << "\n"
|
67
67
|
send_data string
|
68
|
+
wait uuid unless callback
|
68
69
|
end
|
69
70
|
|
70
71
|
#
|
@@ -72,10 +73,9 @@ module RubyFS
|
|
72
73
|
#
|
73
74
|
# @param [#to_s] action the API action to execute
|
74
75
|
#
|
75
|
-
# @
|
76
|
-
|
77
|
-
|
78
|
-
command "api #{action}", &block
|
76
|
+
# @return [RubyFS::Response] response the command's response object
|
77
|
+
def api(action)
|
78
|
+
command "api #{action}"
|
79
79
|
end
|
80
80
|
|
81
81
|
#
|
@@ -83,10 +83,9 @@ module RubyFS
|
|
83
83
|
#
|
84
84
|
# @param [#to_s] action the API action to execute
|
85
85
|
#
|
86
|
-
# @
|
87
|
-
|
88
|
-
|
89
|
-
command "bgapi #{action}", &block
|
86
|
+
# @return [RubyFS::Response] response the command's response object
|
87
|
+
def bgapi(action)
|
88
|
+
command "bgapi #{action}"
|
90
89
|
end
|
91
90
|
|
92
91
|
#
|
@@ -95,10 +94,9 @@ module RubyFS
|
|
95
94
|
# @param [#to_s] call the call ID to send the message to
|
96
95
|
# @param [optional, Hash] options the message options
|
97
96
|
#
|
98
|
-
# @
|
99
|
-
|
100
|
-
|
101
|
-
command "SendMsg #{call}", options, &block
|
97
|
+
# @return [RubyFS::Response] response the message's response object
|
98
|
+
def sendmsg(call, options = {})
|
99
|
+
command "SendMsg #{call}", options
|
102
100
|
end
|
103
101
|
|
104
102
|
#
|
@@ -108,10 +106,9 @@ module RubyFS
|
|
108
106
|
# @param [#to_s] appname the app to execute
|
109
107
|
# @param [optional, String] options the application options
|
110
108
|
#
|
111
|
-
# @
|
112
|
-
|
113
|
-
|
114
|
-
sendmsg call, :call_command => 'execute', :execute_app_name => appname, :execute_app_arg => options, &block
|
109
|
+
# @return [RubyFS::Response] response the application's response object
|
110
|
+
def application(call, appname, options = nil)
|
111
|
+
sendmsg call, :call_command => 'execute', :execute_app_name => appname, :execute_app_arg => options
|
115
112
|
end
|
116
113
|
|
117
114
|
#
|
@@ -162,7 +159,7 @@ module RubyFS
|
|
162
159
|
@command_callbacks.pop.call CommandReply.new(headers)
|
163
160
|
when 'auth/request'
|
164
161
|
command "auth #{@secret}" do
|
165
|
-
command "event json ALL" if @events
|
162
|
+
command! "event json ALL" if @events
|
166
163
|
end
|
167
164
|
else
|
168
165
|
raise "Unknown request type received (#{headers.inspect})"
|
data/lib/ruby_fs/version.rb
CHANGED
data/spec/ruby_fs/stream_spec.rb
CHANGED
@@ -132,25 +132,11 @@ Content-Type: text/event-json
|
|
132
132
|
]
|
133
133
|
end
|
134
134
|
|
135
|
-
it "can send commands
|
135
|
+
it "can send commands and returns the response" do
|
136
136
|
expect_connected_event
|
137
137
|
expect_disconnected_event
|
138
|
-
|
139
|
-
|
140
|
-
mocked_server(1, lambda { |server| @stream.command('foo') { |reply| handler.call reply } }) do |val, server|
|
141
|
-
val.should == "foo\n\n"
|
142
|
-
server.send_data %Q(
|
143
|
-
Content-Type: command/reply
|
144
|
-
Reply-Text: +OK accepted
|
145
|
-
|
146
|
-
)
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
it "can send commands without response callbacks" do
|
151
|
-
expect_connected_event
|
152
|
-
expect_disconnected_event
|
153
|
-
mocked_server(1, lambda { |server| @stream.command 'foo' }) do |val, server|
|
138
|
+
reply = CommandReply.new(:content_type => 'command/reply', :reply_text => '+OK accepted')
|
139
|
+
mocked_server(1, lambda { |server| @stream.command('foo').should == reply }) do |val, server|
|
154
140
|
val.should == "foo\n\n"
|
155
141
|
server.send_data %Q(
|
156
142
|
Content-Type: command/reply
|
@@ -163,7 +149,7 @@ Reply-Text: +OK accepted
|
|
163
149
|
it "can send commands with options" do
|
164
150
|
expect_connected_event
|
165
151
|
expect_disconnected_event
|
166
|
-
mocked_server(1, lambda { |server| @stream.command 'foo', :one => 1, :foo_bar => :doo_dah }) do |val, server|
|
152
|
+
mocked_server(1, lambda { |server| @stream.command! 'foo', :one => 1, :foo_bar => :doo_dah }) do |val, server|
|
167
153
|
val.should == %Q(foo
|
168
154
|
one: 1
|
169
155
|
foo-bar: doo_dah
|
@@ -172,12 +158,11 @@ foo-bar: doo_dah
|
|
172
158
|
end
|
173
159
|
end
|
174
160
|
|
175
|
-
it "can send API commands
|
161
|
+
it "can send API commands and returns the response" do
|
176
162
|
expect_connected_event
|
177
163
|
expect_disconnected_event
|
178
|
-
|
179
|
-
|
180
|
-
mocked_server(1, lambda { |server| @stream.api('foo') { |reply| handler.call reply } }) do |val, server|
|
164
|
+
reply = CommandReply.new(:content_type => 'command/reply', :reply_text => '+OK accepted')
|
165
|
+
mocked_server(1, lambda { |server| @stream.api('foo').should == reply }) do |val, server|
|
181
166
|
val.should == "api foo\n\n"
|
182
167
|
server.send_data %Q(
|
183
168
|
Content-Type: command/reply
|
@@ -187,12 +172,11 @@ Reply-Text: +OK accepted
|
|
187
172
|
end
|
188
173
|
end
|
189
174
|
|
190
|
-
it "can send background API commands
|
175
|
+
it "can send background API commands and returns the response" do
|
191
176
|
expect_connected_event
|
192
177
|
expect_disconnected_event
|
193
|
-
|
194
|
-
|
195
|
-
mocked_server(1, lambda { |server| @stream.bgapi('foo') { |reply| handler.call reply } }) do |val, server|
|
178
|
+
reply = CommandReply.new(:content_type => 'command/reply', :reply_text => '+OK Job-UUID: 4e8344be-c1fe-11e1-a7bf-cf9911a69d1e', :job_uuid => '4e8344be-c1fe-11e1-a7bf-cf9911a69d1e')
|
179
|
+
mocked_server(1, lambda { |server| @stream.bgapi('foo').should == reply }) do |val, server|
|
196
180
|
val.should == "bgapi foo\n\n"
|
197
181
|
server.send_data %Q(
|
198
182
|
Content-Type: command/reply
|
@@ -203,12 +187,11 @@ Job-UUID: 4e8344be-c1fe-11e1-a7bf-cf9911a69d1e
|
|
203
187
|
end
|
204
188
|
end
|
205
189
|
|
206
|
-
it "can send messages to calls with options and response
|
190
|
+
it "can send messages to calls with options and returns the response" do
|
207
191
|
expect_connected_event
|
208
192
|
expect_disconnected_event
|
209
|
-
|
210
|
-
|
211
|
-
mocked_server(1, lambda { |server| @stream.sendmsg('aUUID', :call_command => 'execute') { |reply| handler.call reply } }) do |val, server|
|
193
|
+
reply = CommandReply.new(:content_type => 'command/reply', :reply_text => '+OK accepted')
|
194
|
+
mocked_server(1, lambda { |server| @stream.sendmsg('aUUID', :call_command => 'execute').should == reply }) do |val, server|
|
212
195
|
val.should == %Q(SendMsg aUUID
|
213
196
|
call-command: execute
|
214
197
|
|
@@ -221,12 +204,11 @@ Reply-Text: +OK accepted
|
|
221
204
|
end
|
222
205
|
end
|
223
206
|
|
224
|
-
it "can execute applications on calls without options
|
207
|
+
it "can execute applications on calls without options and returns the response" do
|
225
208
|
expect_connected_event
|
226
209
|
expect_disconnected_event
|
227
|
-
|
228
|
-
|
229
|
-
mocked_server(1, lambda { |server| @stream.application('aUUID', 'answer') { |reply| handler.call reply } }) do |val, server|
|
210
|
+
reply = CommandReply.new(:content_type => 'command/reply', :reply_text => '+OK accepted')
|
211
|
+
mocked_server(1, lambda { |server| @stream.application('aUUID', 'answer').should == reply }) do |val, server|
|
230
212
|
val.should == %Q(SendMsg aUUID
|
231
213
|
call-command: execute
|
232
214
|
execute-app-name: answer
|
@@ -240,12 +222,11 @@ Reply-Text: +OK accepted
|
|
240
222
|
end
|
241
223
|
end
|
242
224
|
|
243
|
-
it "can execute applications on calls with options and response
|
225
|
+
it "can execute applications on calls with options and returns the response" do
|
244
226
|
expect_connected_event
|
245
227
|
expect_disconnected_event
|
246
|
-
|
247
|
-
|
248
|
-
mocked_server(1, lambda { |server| @stream.application('aUUID', 'playback', '/tmp/test.wav') { |reply| handler.call reply } }) do |val, server|
|
228
|
+
reply = CommandReply.new(:content_type => 'command/reply', :reply_text => '+OK accepted')
|
229
|
+
mocked_server(1, lambda { |server| @stream.application('aUUID', 'playback', '/tmp/test.wav').should == reply }) do |val, server|
|
249
230
|
val.should == %Q(SendMsg aUUID
|
250
231
|
call-command: execute
|
251
232
|
execute-app-name: playback
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_fs
|
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,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: uuidtools
|
@@ -295,7 +295,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
295
295
|
version: '0'
|
296
296
|
segments:
|
297
297
|
- 0
|
298
|
-
hash:
|
298
|
+
hash: 1007735488205713228
|
299
299
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
300
300
|
none: false
|
301
301
|
requirements:
|
@@ -304,7 +304,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
304
304
|
version: '0'
|
305
305
|
segments:
|
306
306
|
- 0
|
307
|
-
hash:
|
307
|
+
hash: 1007735488205713228
|
308
308
|
requirements: []
|
309
309
|
rubyforge_project: ruby_fs
|
310
310
|
rubygems_version: 1.8.24
|