adhearsion 2.3.4 → 2.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ce13923a79ebf09d66a57ac08187110885e8ab19
4
+ data.tar.gz: 893aa45657fc58b288d44693b60afbe493449997
5
+ SHA512:
6
+ metadata.gz: 54bc58e3bef695e4a2edcdc29d15833ce9a5954fc8c0dabab4fd7fc35f3bfac52f74c09ad5ed591242740c53553af1728441288143b7d3028d1edafae7f1629b
7
+ data.tar.gz: 0173249d5786ffdcf9e96884ec6b271e97b3f1cfacfd9c3674b392e0d73edb4379c163ab62d7d29bc03686a71c69a4c677387bc5466b1001b2ce246a4152a96c
@@ -1,5 +1,9 @@
1
1
  # [develop](https://github.com/adhearsion/adhearsion)
2
2
 
3
+ # [2.3.5](https://github.com/adhearsion/adhearsion/compare/v2.3.4...v2.3.5) - [2013-06-06](https://rubygems.org/gems/adhearsion/versions/2.3.5)
4
+ * Bugfix: Fix race conditions in barging in before output start is acknowledged
5
+ * Performance enhancement: Use Celluloid's thread pool for call controller threads to reduce thread setup overhead
6
+
3
7
  # [2.3.4](https://github.com/adhearsion/adhearsion/compare/v2.3.3...v2.3.4) - [2013-05-14](https://rubygems.org/gems/adhearsion/versions/2.3.4)
4
8
  * Bugfix: Process signals safely in the main thread - fixes shutdown on Ruby 2.0
5
9
  * Bugfix: Expose the cert store directory in Punchblock config
@@ -86,7 +86,7 @@ module Adhearsion
86
86
  end
87
87
 
88
88
  def bg_exec(completion_callback = nil)
89
- Thread.new do
89
+ Celluloid::ThreadHandle.new do
90
90
  catching_standard_errors do
91
91
  exec_with_callback completion_callback
92
92
  end
@@ -9,11 +9,14 @@ module Adhearsion
9
9
  # @yields The output component before executing it
10
10
  # @raises [PlaybackError] if (one of) the given argument(s) could not be played
11
11
  #
12
- def output(content, options = {})
12
+ def output(content, options = {}, &block)
13
13
  options.merge! :ssml => content.to_s
14
14
  component = new_output options
15
- yield component if block_given?
16
- controller.execute_component_and_await_completion component
15
+ if block
16
+ controller.execute_component_and_await_completion component, &block
17
+ else
18
+ controller.execute_component_and_await_completion component
19
+ end
17
20
  rescue Call::Hangup
18
21
  raise
19
22
  rescue Adhearsion::Error, Punchblock::ProtocolError => e
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Adhearsion
4
- VERSION = '2.3.4'
4
+ VERSION = '2.3.5'
5
5
  end
@@ -27,12 +27,18 @@ module Adhearsion
27
27
  subject.output content, :start_paused => true
28
28
  end
29
29
 
30
- it "yields the component to the block before executing it" do
31
- component = Punchblock::Component::Output.new :ssml => content, :start_paused => true
32
- expect_component_execution component
30
+ it "yields the component to the block before waiting for it to finish" do
31
+ component = Punchblock::Component::Output.new :ssml => content
32
+
33
+ controller.should_receive(:execute_component_and_await_completion).once.with(component).and_yield(:foo)
34
+
35
+ @foo = nil
36
+
33
37
  subject.output content do |comp|
34
- comp.start_paused = true
38
+ @foo = comp
35
39
  end
40
+
41
+ @foo.should == :foo
36
42
  end
37
43
 
38
44
  it "raises a PlaybackError if the component fails to start" do
@@ -697,9 +697,7 @@ module Adhearsion
697
697
 
698
698
  #test does pass and method works, but not sure if the empty method is a good idea
699
699
  it "plays the correct output" do
700
- def controller.write_and_await_response(input_component)
701
- # it is actually a no-op here
702
- end
700
+ controller.stub(:write_and_await_response)
703
701
 
704
702
  expect_component_complete_event
705
703
  expect_component_execution Punchblock::Component::Output.new(:ssml => ssml.to_s)
@@ -707,22 +705,23 @@ module Adhearsion
707
705
  end
708
706
 
709
707
  it "returns a single digit amongst the allowed when pressed" do
710
- def controller.write_and_await_response(input_component)
708
+ controller.should_receive(:write_and_await_response).with(kind_of(Punchblock::Component::Input)) do |input_component|
711
709
  input_component.trigger_event_handler Punchblock::Event::Complete.new
712
710
  end
713
711
 
714
- expect_component_complete_event
712
+ controller.should_receive(:write_and_await_response).once.with(kind_of(Punchblock::Component::Output))
713
+
715
714
  Punchblock::Component::Output.any_instance.should_receive(:stop!)
716
- expect_component_execution output_component
715
+ Punchblock::Component::Output.any_instance.should_receive(:complete_event).and_return mock('complete', reason: mock('Reason'))
716
+ expect_input_component_complete_event 'dtmf-5'
717
+
717
718
  subject.stream_file(prompt, allowed_digits).should be == '5'
718
719
  end
719
720
 
720
721
  context "with output options passed in" do
721
722
  let(:extra_options) { {renderer: :native } }
722
723
  it "plays the correct output with options" do
723
- def controller.write_and_await_response(input_component)
724
- # it is actually a no-op here
725
- end
724
+ controller.stub(:write_and_await_response)
726
725
 
727
726
  expect_component_complete_event
728
727
  expect_component_execution Punchblock::Component::Output.new({:ssml => ssml.to_s}.merge(extra_options))
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adhearsion
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.4
5
- prerelease:
4
+ version: 2.3.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jay Phillips
@@ -12,12 +11,11 @@ authors:
12
11
  autorequire:
13
12
  bindir: bin
14
13
  cert_chain: []
15
- date: 2013-05-15 00:00:00.000000000 Z
14
+ date: 2013-06-06 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: activesupport
19
18
  requirement: !ruby/object:Gem::Requirement
20
- none: false
21
19
  requirements:
22
20
  - - ~>
23
21
  - !ruby/object:Gem::Version
@@ -25,7 +23,6 @@ dependencies:
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
27
  - - ~>
31
28
  - !ruby/object:Gem::Version
@@ -33,7 +30,6 @@ dependencies:
33
30
  - !ruby/object:Gem::Dependency
34
31
  name: adhearsion-loquacious
35
32
  requirement: !ruby/object:Gem::Requirement
36
- none: false
37
33
  requirements:
38
34
  - - ~>
39
35
  - !ruby/object:Gem::Version
@@ -41,7 +37,6 @@ dependencies:
41
37
  type: :runtime
42
38
  prerelease: false
43
39
  version_requirements: !ruby/object:Gem::Requirement
44
- none: false
45
40
  requirements:
46
41
  - - ~>
47
42
  - !ruby/object:Gem::Version
@@ -49,7 +44,6 @@ dependencies:
49
44
  - !ruby/object:Gem::Dependency
50
45
  name: bundler
51
46
  requirement: !ruby/object:Gem::Requirement
52
- none: false
53
47
  requirements:
54
48
  - - ~>
55
49
  - !ruby/object:Gem::Version
@@ -57,7 +51,6 @@ dependencies:
57
51
  type: :runtime
58
52
  prerelease: false
59
53
  version_requirements: !ruby/object:Gem::Requirement
60
- none: false
61
54
  requirements:
62
55
  - - ~>
63
56
  - !ruby/object:Gem::Version
@@ -65,7 +58,6 @@ dependencies:
65
58
  - !ruby/object:Gem::Dependency
66
59
  name: celluloid
67
60
  requirement: !ruby/object:Gem::Requirement
68
- none: false
69
61
  requirements:
70
62
  - - ~>
71
63
  - !ruby/object:Gem::Version
@@ -73,7 +65,6 @@ dependencies:
73
65
  type: :runtime
74
66
  prerelease: false
75
67
  version_requirements: !ruby/object:Gem::Requirement
76
- none: false
77
68
  requirements:
78
69
  - - ~>
79
70
  - !ruby/object:Gem::Version
@@ -81,39 +72,34 @@ dependencies:
81
72
  - !ruby/object:Gem::Dependency
82
73
  name: countdownlatch
83
74
  requirement: !ruby/object:Gem::Requirement
84
- none: false
85
75
  requirements:
86
- - - ! '>='
76
+ - - '>='
87
77
  - !ruby/object:Gem::Version
88
78
  version: '0'
89
79
  type: :runtime
90
80
  prerelease: false
91
81
  version_requirements: !ruby/object:Gem::Requirement
92
- none: false
93
82
  requirements:
94
- - - ! '>='
83
+ - - '>='
95
84
  - !ruby/object:Gem::Version
96
85
  version: '0'
97
86
  - !ruby/object:Gem::Dependency
98
87
  name: deep_merge
99
88
  requirement: !ruby/object:Gem::Requirement
100
- none: false
101
89
  requirements:
102
- - - ! '>='
90
+ - - '>='
103
91
  - !ruby/object:Gem::Version
104
92
  version: '0'
105
93
  type: :runtime
106
94
  prerelease: false
107
95
  version_requirements: !ruby/object:Gem::Requirement
108
- none: false
109
96
  requirements:
110
- - - ! '>='
97
+ - - '>='
111
98
  - !ruby/object:Gem::Version
112
99
  version: '0'
113
100
  - !ruby/object:Gem::Dependency
114
101
  name: ffi
115
102
  requirement: !ruby/object:Gem::Requirement
116
- none: false
117
103
  requirements:
118
104
  - - ~>
119
105
  - !ruby/object:Gem::Version
@@ -121,7 +107,6 @@ dependencies:
121
107
  type: :runtime
122
108
  prerelease: false
123
109
  version_requirements: !ruby/object:Gem::Requirement
124
- none: false
125
110
  requirements:
126
111
  - - ~>
127
112
  - !ruby/object:Gem::Version
@@ -129,23 +114,20 @@ dependencies:
129
114
  - !ruby/object:Gem::Dependency
130
115
  name: girl_friday
131
116
  requirement: !ruby/object:Gem::Requirement
132
- none: false
133
117
  requirements:
134
- - - ! '>='
118
+ - - '>='
135
119
  - !ruby/object:Gem::Version
136
120
  version: '0'
137
121
  type: :runtime
138
122
  prerelease: false
139
123
  version_requirements: !ruby/object:Gem::Requirement
140
- none: false
141
124
  requirements:
142
- - - ! '>='
125
+ - - '>='
143
126
  - !ruby/object:Gem::Version
144
127
  version: '0'
145
128
  - !ruby/object:Gem::Dependency
146
129
  name: has-guarded-handlers
147
130
  requirement: !ruby/object:Gem::Requirement
148
- none: false
149
131
  requirements:
150
132
  - - ~>
151
133
  - !ruby/object:Gem::Version
@@ -153,7 +135,6 @@ dependencies:
153
135
  type: :runtime
154
136
  prerelease: false
155
137
  version_requirements: !ruby/object:Gem::Requirement
156
- none: false
157
138
  requirements:
158
139
  - - ~>
159
140
  - !ruby/object:Gem::Version
@@ -161,7 +142,6 @@ dependencies:
161
142
  - !ruby/object:Gem::Dependency
162
143
  name: logging
163
144
  requirement: !ruby/object:Gem::Requirement
164
- none: false
165
145
  requirements:
166
146
  - - ~>
167
147
  - !ruby/object:Gem::Version
@@ -169,7 +149,6 @@ dependencies:
169
149
  type: :runtime
170
150
  prerelease: false
171
151
  version_requirements: !ruby/object:Gem::Requirement
172
- none: false
173
152
  requirements:
174
153
  - - ~>
175
154
  - !ruby/object:Gem::Version
@@ -177,23 +156,20 @@ dependencies:
177
156
  - !ruby/object:Gem::Dependency
178
157
  name: pry
179
158
  requirement: !ruby/object:Gem::Requirement
180
- none: false
181
159
  requirements:
182
- - - ! '>='
160
+ - - '>='
183
161
  - !ruby/object:Gem::Version
184
162
  version: '0'
185
163
  type: :runtime
186
164
  prerelease: false
187
165
  version_requirements: !ruby/object:Gem::Requirement
188
- none: false
189
166
  requirements:
190
- - - ! '>='
167
+ - - '>='
191
168
  - !ruby/object:Gem::Version
192
169
  version: '0'
193
170
  - !ruby/object:Gem::Dependency
194
171
  name: punchblock
195
172
  requirement: !ruby/object:Gem::Requirement
196
- none: false
197
173
  requirements:
198
174
  - - ~>
199
175
  - !ruby/object:Gem::Version
@@ -201,7 +177,6 @@ dependencies:
201
177
  type: :runtime
202
178
  prerelease: false
203
179
  version_requirements: !ruby/object:Gem::Requirement
204
- none: false
205
180
  requirements:
206
181
  - - ~>
207
182
  - !ruby/object:Gem::Version
@@ -209,23 +184,20 @@ dependencies:
209
184
  - !ruby/object:Gem::Dependency
210
185
  name: rake
211
186
  requirement: !ruby/object:Gem::Requirement
212
- none: false
213
187
  requirements:
214
- - - ! '>='
188
+ - - '>='
215
189
  - !ruby/object:Gem::Version
216
190
  version: '0'
217
191
  type: :runtime
218
192
  prerelease: false
219
193
  version_requirements: !ruby/object:Gem::Requirement
220
- none: false
221
194
  requirements:
222
- - - ! '>='
195
+ - - '>='
223
196
  - !ruby/object:Gem::Version
224
197
  version: '0'
225
198
  - !ruby/object:Gem::Dependency
226
199
  name: ruby_speech
227
200
  requirement: !ruby/object:Gem::Requirement
228
- none: false
229
201
  requirements:
230
202
  - - ~>
231
203
  - !ruby/object:Gem::Version
@@ -233,7 +205,6 @@ dependencies:
233
205
  type: :runtime
234
206
  prerelease: false
235
207
  version_requirements: !ruby/object:Gem::Requirement
236
- none: false
237
208
  requirements:
238
209
  - - ~>
239
210
  - !ruby/object:Gem::Version
@@ -241,7 +212,6 @@ dependencies:
241
212
  - !ruby/object:Gem::Dependency
242
213
  name: thor
243
214
  requirement: !ruby/object:Gem::Requirement
244
- none: false
245
215
  requirements:
246
216
  - - ~>
247
217
  - !ruby/object:Gem::Version
@@ -249,7 +219,6 @@ dependencies:
249
219
  type: :runtime
250
220
  prerelease: false
251
221
  version_requirements: !ruby/object:Gem::Requirement
252
- none: false
253
222
  requirements:
254
223
  - - ~>
255
224
  - !ruby/object:Gem::Version
@@ -257,7 +226,6 @@ dependencies:
257
226
  - !ruby/object:Gem::Dependency
258
227
  name: aruba
259
228
  requirement: !ruby/object:Gem::Requirement
260
- none: false
261
229
  requirements:
262
230
  - - ~>
263
231
  - !ruby/object:Gem::Version
@@ -265,7 +233,6 @@ dependencies:
265
233
  type: :development
266
234
  prerelease: false
267
235
  version_requirements: !ruby/object:Gem::Requirement
268
- none: false
269
236
  requirements:
270
237
  - - ~>
271
238
  - !ruby/object:Gem::Version
@@ -273,71 +240,62 @@ dependencies:
273
240
  - !ruby/object:Gem::Dependency
274
241
  name: ci_reporter
275
242
  requirement: !ruby/object:Gem::Requirement
276
- none: false
277
243
  requirements:
278
- - - ! '>='
244
+ - - '>='
279
245
  - !ruby/object:Gem::Version
280
246
  version: '0'
281
247
  type: :development
282
248
  prerelease: false
283
249
  version_requirements: !ruby/object:Gem::Requirement
284
- none: false
285
250
  requirements:
286
- - - ! '>='
251
+ - - '>='
287
252
  - !ruby/object:Gem::Version
288
253
  version: '0'
289
254
  - !ruby/object:Gem::Dependency
290
255
  name: cucumber
291
256
  requirement: !ruby/object:Gem::Requirement
292
- none: false
293
257
  requirements:
294
- - - ! '>='
258
+ - - '>='
295
259
  - !ruby/object:Gem::Version
296
260
  version: '0'
297
261
  type: :development
298
262
  prerelease: false
299
263
  version_requirements: !ruby/object:Gem::Requirement
300
- none: false
301
264
  requirements:
302
- - - ! '>='
265
+ - - '>='
303
266
  - !ruby/object:Gem::Version
304
267
  version: '0'
305
268
  - !ruby/object:Gem::Dependency
306
269
  name: guard-cucumber
307
270
  requirement: !ruby/object:Gem::Requirement
308
- none: false
309
271
  requirements:
310
- - - ! '>='
272
+ - - '>='
311
273
  - !ruby/object:Gem::Version
312
274
  version: '0'
313
275
  type: :development
314
276
  prerelease: false
315
277
  version_requirements: !ruby/object:Gem::Requirement
316
- none: false
317
278
  requirements:
318
- - - ! '>='
279
+ - - '>='
319
280
  - !ruby/object:Gem::Version
320
281
  version: '0'
321
282
  - !ruby/object:Gem::Dependency
322
283
  name: guard-rspec
323
284
  requirement: !ruby/object:Gem::Requirement
324
- none: false
325
285
  requirements:
326
- - - ! '>='
286
+ - - '>='
327
287
  - !ruby/object:Gem::Version
328
288
  version: '0'
329
289
  type: :development
330
290
  prerelease: false
331
291
  version_requirements: !ruby/object:Gem::Requirement
332
- none: false
333
292
  requirements:
334
- - - ! '>='
293
+ - - '>='
335
294
  - !ruby/object:Gem::Version
336
295
  version: '0'
337
296
  - !ruby/object:Gem::Dependency
338
297
  name: rspec
339
298
  requirement: !ruby/object:Gem::Requirement
340
- none: false
341
299
  requirements:
342
300
  - - ~>
343
301
  - !ruby/object:Gem::Version
@@ -345,7 +303,6 @@ dependencies:
345
303
  type: :development
346
304
  prerelease: false
347
305
  version_requirements: !ruby/object:Gem::Requirement
348
- none: false
349
306
  requirements:
350
307
  - - ~>
351
308
  - !ruby/object:Gem::Version
@@ -353,65 +310,57 @@ dependencies:
353
310
  - !ruby/object:Gem::Dependency
354
311
  name: ruby_gntp
355
312
  requirement: !ruby/object:Gem::Requirement
356
- none: false
357
313
  requirements:
358
- - - ! '>='
314
+ - - '>='
359
315
  - !ruby/object:Gem::Version
360
316
  version: '0'
361
317
  type: :development
362
318
  prerelease: false
363
319
  version_requirements: !ruby/object:Gem::Requirement
364
- none: false
365
320
  requirements:
366
- - - ! '>='
321
+ - - '>='
367
322
  - !ruby/object:Gem::Version
368
323
  version: '0'
369
324
  - !ruby/object:Gem::Dependency
370
325
  name: simplecov
371
326
  requirement: !ruby/object:Gem::Requirement
372
- none: false
373
327
  requirements:
374
- - - ! '>='
328
+ - - '>='
375
329
  - !ruby/object:Gem::Version
376
330
  version: '0'
377
331
  type: :development
378
332
  prerelease: false
379
333
  version_requirements: !ruby/object:Gem::Requirement
380
- none: false
381
334
  requirements:
382
- - - ! '>='
335
+ - - '>='
383
336
  - !ruby/object:Gem::Version
384
337
  version: '0'
385
338
  - !ruby/object:Gem::Dependency
386
339
  name: simplecov-rcov
387
340
  requirement: !ruby/object:Gem::Requirement
388
- none: false
389
341
  requirements:
390
- - - ! '>='
342
+ - - '>='
391
343
  - !ruby/object:Gem::Version
392
344
  version: '0'
393
345
  type: :development
394
346
  prerelease: false
395
347
  version_requirements: !ruby/object:Gem::Requirement
396
- none: false
397
348
  requirements:
398
- - - ! '>='
349
+ - - '>='
399
350
  - !ruby/object:Gem::Version
400
351
  version: '0'
401
352
  - !ruby/object:Gem::Dependency
402
353
  name: yard
403
354
  requirement: !ruby/object:Gem::Requirement
404
- none: false
405
355
  requirements:
406
- - - ! '>='
356
+ - - '>='
407
357
  - !ruby/object:Gem::Version
408
358
  version: '0'
409
359
  type: :development
410
360
  prerelease: false
411
361
  version_requirements: !ruby/object:Gem::Requirement
412
- none: false
413
362
  requirements:
414
- - - ! '>='
363
+ - - '>='
415
364
  - !ruby/object:Gem::Version
416
365
  version: '0'
417
366
  description: Adhearsion is an open-source telephony development framework
@@ -586,33 +535,26 @@ files:
586
535
  - spec/support/punchblock_mocks.rb
587
536
  homepage: http://adhearsion.com
588
537
  licenses: []
538
+ metadata: {}
589
539
  post_install_message:
590
540
  rdoc_options: []
591
541
  require_paths:
592
542
  - lib
593
543
  required_ruby_version: !ruby/object:Gem::Requirement
594
- none: false
595
544
  requirements:
596
- - - ! '>='
545
+ - - '>='
597
546
  - !ruby/object:Gem::Version
598
547
  version: '0'
599
- segments:
600
- - 0
601
- hash: 1745862243148562605
602
548
  required_rubygems_version: !ruby/object:Gem::Requirement
603
- none: false
604
549
  requirements:
605
- - - ! '>='
550
+ - - '>='
606
551
  - !ruby/object:Gem::Version
607
552
  version: '0'
608
- segments:
609
- - 0
610
- hash: 1745862243148562605
611
553
  requirements: []
612
554
  rubyforge_project:
613
- rubygems_version: 1.8.25
555
+ rubygems_version: 2.0.3
614
556
  signing_key:
615
- specification_version: 3
557
+ specification_version: 4
616
558
  summary: Adhearsion, open-source telephony development framework
617
559
  test_files:
618
560
  - features/app_generator.feature