punchblock 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/CHANGELOG.md +4 -0
  2. data/lib/punchblock/command/dial.rb +1 -1
  3. data/lib/punchblock/command/join.rb +4 -4
  4. data/lib/punchblock/command/unjoin.rb +4 -4
  5. data/lib/punchblock/command_node.rb +6 -2
  6. data/lib/punchblock/component/component_node.rb +2 -2
  7. data/lib/punchblock/component/output.rb +7 -7
  8. data/lib/punchblock/component/record.rb +2 -2
  9. data/lib/punchblock/connection/xmpp.rb +18 -9
  10. data/lib/punchblock/core_ext/blather/stanza.rb +1 -1
  11. data/lib/punchblock/event/active_speaker.rb +3 -3
  12. data/lib/punchblock/event/complete.rb +2 -2
  13. data/lib/punchblock/event/joined.rb +3 -3
  14. data/lib/punchblock/event/offer.rb +1 -1
  15. data/lib/punchblock/event/unjoined.rb +3 -3
  16. data/lib/punchblock/rayo_node.rb +3 -3
  17. data/lib/punchblock/translator/asterisk.rb +5 -5
  18. data/lib/punchblock/translator/asterisk/call.rb +8 -8
  19. data/lib/punchblock/translator/asterisk/component.rb +2 -2
  20. data/lib/punchblock/version.rb +1 -1
  21. data/spec/punchblock/command/dial_spec.rb +2 -2
  22. data/spec/punchblock/command/join_spec.rb +9 -9
  23. data/spec/punchblock/command/unjoin_spec.rb +5 -5
  24. data/spec/punchblock/command_node_spec.rb +3 -3
  25. data/spec/punchblock/component/input_spec.rb +3 -3
  26. data/spec/punchblock/component/output_spec.rb +17 -17
  27. data/spec/punchblock/component/record_spec.rb +7 -7
  28. data/spec/punchblock/connection/asterisk_spec.rb +1 -1
  29. data/spec/punchblock/connection/xmpp_spec.rb +45 -16
  30. data/spec/punchblock/event/complete_spec.rb +6 -6
  31. data/spec/punchblock/event/joined_spec.rb +6 -6
  32. data/spec/punchblock/event/started_speaking_spec.rb +4 -4
  33. data/spec/punchblock/event/stopped_speaking_spec.rb +4 -4
  34. data/spec/punchblock/event/unjoined_spec.rb +6 -6
  35. data/spec/punchblock/translator/asterisk/call_spec.rb +30 -30
  36. data/spec/punchblock/translator/asterisk/component/input_spec.rb +2 -2
  37. data/spec/punchblock/translator/asterisk/component_spec.rb +1 -1
  38. data/spec/punchblock/translator/asterisk_spec.rb +2 -2
  39. data/spec/spec_helper.rb +2 -2
  40. metadata +39 -39
@@ -12,17 +12,17 @@ module Punchblock
12
12
  describe "comparing for equality" do
13
13
  subject do
14
14
  Complete.new.tap do |c|
15
- c.reason = Complete::Stop.new
16
- c.call_id = '1234'
17
- c.component_id = 'abcd'
15
+ c.reason = Complete::Stop.new
16
+ c.target_call_id = '1234'
17
+ c.component_id = 'abcd'
18
18
  end
19
19
  end
20
20
 
21
21
  let :other_complete do
22
22
  Complete.new.tap do |c|
23
- c.reason = reason
24
- c.call_id = call_id
25
- c.component_id = component_id
23
+ c.reason = reason
24
+ c.target_call_id = call_id
25
+ c.component_id = component_id
26
26
  end
27
27
  end
28
28
 
@@ -18,16 +18,16 @@ module Punchblock
18
18
 
19
19
  it_should_behave_like 'event'
20
20
 
21
- its(:other_call_id) { should be == 'b' }
22
- its(:mixer_name) { should be == 'm' }
23
- its(:xmlns) { should be == 'urn:xmpp:rayo:1' }
21
+ its(:call_id) { should be == 'b' }
22
+ its(:mixer_name) { should be == 'm' }
23
+ its(:xmlns) { should be == 'urn:xmpp:rayo:1' }
24
24
  end
25
25
 
26
26
  describe "when setting options in initializer" do
27
- subject { Joined.new :other_call_id => 'abc123', :mixer_name => 'blah' }
27
+ subject { Joined.new :call_id => 'abc123', :mixer_name => 'blah' }
28
28
 
29
- its(:other_call_id) { should be == 'abc123' }
30
- its(:mixer_name) { should be == 'blah' }
29
+ its(:call_id) { should be == 'abc123' }
30
+ its(:mixer_name) { should be == 'blah' }
31
31
  end
32
32
  end
33
33
  end
@@ -20,16 +20,16 @@ module Punchblock
20
20
 
21
21
  it_should_behave_like 'event'
22
22
 
23
- its(:other_call_id) { should be == "x0yz4ye-lx7-6ai9njwvw8nsb" }
24
- its(:xmlns) { should be == 'urn:xmpp:rayo:1' }
23
+ its(:call_id) { should be == "x0yz4ye-lx7-6ai9njwvw8nsb" }
24
+ its(:xmlns) { should be == 'urn:xmpp:rayo:1' }
25
25
  end
26
26
 
27
27
  describe "when setting options in initializer" do
28
28
  subject do
29
- StartedSpeaking.new :other_call_id => 'abc123'
29
+ StartedSpeaking.new :call_id => 'abc123'
30
30
  end
31
31
 
32
- its(:other_call_id) { should be == 'abc123' }
32
+ its(:call_id) { should be == 'abc123' }
33
33
  end
34
34
  end
35
35
  end
@@ -20,16 +20,16 @@ module Punchblock
20
20
 
21
21
  it_should_behave_like 'event'
22
22
 
23
- its(:other_call_id) { should be == "x0yz4ye-lx7-6ai9njwvw8nsb" }
24
- its(:xmlns) { should be == 'urn:xmpp:rayo:1' }
23
+ its(:call_id) { should be == "x0yz4ye-lx7-6ai9njwvw8nsb" }
24
+ its(:xmlns) { should be == 'urn:xmpp:rayo:1' }
25
25
  end
26
26
 
27
27
  describe "when setting options in initializer" do
28
28
  subject do
29
- StoppedSpeaking.new :other_call_id => 'abc123'
29
+ StoppedSpeaking.new :call_id => 'abc123'
30
30
  end
31
31
 
32
- its(:other_call_id) { should be == 'abc123' }
32
+ its(:call_id) { should be == 'abc123' }
33
33
  end
34
34
  end
35
35
  end
@@ -18,16 +18,16 @@ module Punchblock
18
18
 
19
19
  it_should_behave_like 'event'
20
20
 
21
- its(:other_call_id) { should be == 'b' }
22
- its(:mixer_name) { should be == 'm' }
23
- its(:xmlns) { should be == 'urn:xmpp:rayo:1' }
21
+ its(:call_id) { should be == 'b' }
22
+ its(:mixer_name) { should be == 'm' }
23
+ its(:xmlns) { should be == 'urn:xmpp:rayo:1' }
24
24
  end
25
25
 
26
26
  describe "when setting options in initializer" do
27
- subject { Unjoined.new :other_call_id => 'abc123', :mixer_name => 'blah' }
27
+ subject { Unjoined.new :call_id => 'abc123', :mixer_name => 'blah' }
28
28
 
29
- its(:other_call_id) { should be == 'abc123' }
30
- its(:mixer_name) { should be == 'blah' }
29
+ its(:call_id) { should be == 'abc123' }
30
+ its(:mixer_name) { should be == 'blah' }
31
31
  end
32
32
  end
33
33
  end
@@ -84,7 +84,7 @@ module Punchblock
84
84
 
85
85
  describe '#send_offer' do
86
86
  it 'sends an offer to the translator' do
87
- expected_offer = Punchblock::Event::Offer.new :call_id => subject.id,
87
+ expected_offer = Punchblock::Event::Offer.new :target_call_id => subject.id,
88
88
  :to => '1000',
89
89
  :from => 'sip:5678',
90
90
  :headers => sip_headers
@@ -101,7 +101,7 @@ module Punchblock
101
101
  end
102
102
 
103
103
  describe '#answer_if_not_answered' do
104
- let(:answer_command) { Command::Answer.new }
104
+ let(:answer_command) { Command::Answer.new.tap { |a| a.request! } }
105
105
 
106
106
  context "with a call that is already answered" do
107
107
  it 'should not answer the call' do
@@ -153,7 +153,7 @@ module Punchblock
153
153
  before { dial_command.request! }
154
154
 
155
155
  it 'sends an Originate AMI action' do
156
- expected_action = Punchblock::Component::Asterisk::AMI::Action.new :name => 'Originate',
156
+ expected_action = Punchblock::Component::Asterisk::AMI::Action.new(:name => 'Originate',
157
157
  :params => {
158
158
  :async => true,
159
159
  :application => 'AGI',
@@ -161,7 +161,7 @@ module Punchblock
161
161
  :channel => 'SIP/1234',
162
162
  :callerid => 'sip:foo@bar.com',
163
163
  :variable => "punchblock_call_id=#{subject.id}"
164
- }
164
+ }).tap { |a| a.request! }
165
165
 
166
166
  translator.expects(:execute_global_command!).once.with expected_action
167
167
  subject.dial dial_command
@@ -173,7 +173,7 @@ module Punchblock
173
173
  end
174
174
 
175
175
  it 'includes the timeout in the Originate AMI action' do
176
- expected_action = Punchblock::Component::Asterisk::AMI::Action.new :name => 'Originate',
176
+ expected_action = Punchblock::Component::Asterisk::AMI::Action.new(:name => 'Originate',
177
177
  :params => {
178
178
  :async => true,
179
179
  :application => 'AGI',
@@ -182,7 +182,7 @@ module Punchblock
182
182
  :callerid => 'sip:foo@bar.com',
183
183
  :variable => "punchblock_call_id=#{subject.id}",
184
184
  :timeout => 10000
185
- }
185
+ }).tap { |a| a.request! }
186
186
 
187
187
  translator.expects(:execute_global_command!).once.with expected_action
188
188
  subject.dial dial_command
@@ -192,7 +192,7 @@ module Punchblock
192
192
  it 'sends the call ID as a response to the Dial' do
193
193
  subject.dial dial_command
194
194
  dial_command.response
195
- dial_command.call_id.should be == subject.id
195
+ dial_command.target_call_id.should be == subject.id
196
196
  end
197
197
 
198
198
  it 'should make the call identify as outbound' do
@@ -241,7 +241,7 @@ module Punchblock
241
241
 
242
242
  it 'should send an end (hangup) event to the translator' do
243
243
  expected_end_event = Punchblock::Event::End.new :reason => :hangup,
244
- :call_id => subject.id
244
+ :target_call_id => subject.id
245
245
  translator.expects(:handle_pb_event!).with expected_end_event
246
246
  subject.process_ami_event ami_event
247
247
  end
@@ -253,7 +253,7 @@ module Punchblock
253
253
 
254
254
  it 'should send an end (hangup) event to the translator' do
255
255
  expected_end_event = Punchblock::Event::End.new :reason => :hangup,
256
- :call_id => subject.id
256
+ :target_call_id => subject.id
257
257
  translator.expects(:handle_pb_event!).with expected_end_event
258
258
  subject.process_ami_event ami_event
259
259
  end
@@ -265,7 +265,7 @@ module Punchblock
265
265
 
266
266
  it 'should send an end (busy) event to the translator' do
267
267
  expected_end_event = Punchblock::Event::End.new :reason => :busy,
268
- :call_id => subject.id
268
+ :target_call_id => subject.id
269
269
  translator.expects(:handle_pb_event!).with expected_end_event
270
270
  subject.process_ami_event ami_event
271
271
  end
@@ -281,7 +281,7 @@ module Punchblock
281
281
 
282
282
  it 'should send an end (timeout) event to the translator' do
283
283
  expected_end_event = Punchblock::Event::End.new :reason => :timeout,
284
- :call_id => subject.id
284
+ :target_call_id => subject.id
285
285
  translator.expects(:handle_pb_event!).with expected_end_event
286
286
  subject.process_ami_event ami_event
287
287
  end
@@ -299,7 +299,7 @@ module Punchblock
299
299
 
300
300
  it 'should send an end (reject) event to the translator' do
301
301
  expected_end_event = Punchblock::Event::End.new :reason => :reject,
302
- :call_id => subject.id
302
+ :target_call_id => subject.id
303
303
  translator.expects(:handle_pb_event!).with expected_end_event
304
304
  subject.process_ami_event ami_event
305
305
  end
@@ -351,7 +351,7 @@ module Punchblock
351
351
 
352
352
  it 'should send an end (error) event to the translator' do
353
353
  expected_end_event = Punchblock::Event::End.new :reason => :error,
354
- :call_id => subject.id
354
+ :target_call_id => subject.id
355
355
  translator.expects(:handle_pb_event!).with expected_end_event
356
356
  subject.process_ami_event ami_event
357
357
  end
@@ -406,7 +406,7 @@ module Punchblock
406
406
 
407
407
  it 'should send a ringing event' do
408
408
  expected_ringing = Punchblock::Event::Ringing.new
409
- expected_ringing.call_id = subject.id
409
+ expected_ringing.target_call_id = subject.id
410
410
  translator.expects(:handle_pb_event!).with expected_ringing
411
411
  subject.process_ami_event ami_event
412
412
  end
@@ -423,7 +423,7 @@ module Punchblock
423
423
 
424
424
  it 'should send a ringing event' do
425
425
  expected_answered = Punchblock::Event::Answered.new
426
- expected_answered.call_id = subject.id
426
+ expected_answered.target_call_id = subject.id
427
427
  translator.expects(:handle_pb_event!).with expected_answered
428
428
  subject.process_ami_event ami_event
429
429
  end
@@ -470,7 +470,7 @@ module Punchblock
470
470
  let(:other_channel) { 'SIP/5678-00000000' }
471
471
  let(:other_call_id) { 'def567' }
472
472
  let :command do
473
- Punchblock::Command::Join.new :other_call_id => other_call_id
473
+ Punchblock::Command::Join.new :call_id => other_call_id
474
474
  end
475
475
 
476
476
  before do
@@ -530,8 +530,8 @@ module Punchblock
530
530
 
531
531
  let :expected_joined do
532
532
  Punchblock::Event::Joined.new.tap do |joined|
533
- joined.call_id = subject.id
534
- joined.other_call_id = other_call_id
533
+ joined.target_call_id = subject.id
534
+ joined.call_id = other_call_id
535
535
  end
536
536
  end
537
537
 
@@ -551,8 +551,8 @@ module Punchblock
551
551
 
552
552
  let :expected_unjoined do
553
553
  Punchblock::Event::Unjoined.new.tap do |joined|
554
- joined.call_id = subject.id
555
- joined.other_call_id = other_call_id
554
+ joined.target_call_id = subject.id
555
+ joined.call_id = other_call_id
556
556
  end
557
557
  end
558
558
 
@@ -607,8 +607,8 @@ module Punchblock
607
607
 
608
608
  let :expected_unjoined do
609
609
  Punchblock::Event::Unjoined.new.tap do |joined|
610
- joined.call_id = subject.id
611
- joined.other_call_id = other_call_id
610
+ joined.target_call_id = subject.id
611
+ joined.call_id = other_call_id
612
612
  end
613
613
  end
614
614
 
@@ -762,16 +762,16 @@ module Punchblock
762
762
  end
763
763
 
764
764
  context "with a join command" do
765
- let(:other_call_id) { "abc123" }
766
- let(:other_channel) { 'SIP/bar' }
767
- let(:other_translator) { stub_everything 'Translator::Asterisk' }
765
+ let(:other_call_id) { "abc123" }
766
+ let(:other_channel) { 'SIP/bar' }
767
+ let(:other_translator) { stub_everything 'Translator::Asterisk' }
768
768
 
769
769
  let :other_call do
770
770
  Call.new other_channel, other_translator
771
771
  end
772
772
 
773
773
  let :command do
774
- Punchblock::Command::Join.new :other_call_id => other_call_id
774
+ Punchblock::Command::Join.new :call_id => other_call_id
775
775
  end
776
776
 
777
777
  it "executes the proper dialplan Bridge application" do
@@ -790,15 +790,15 @@ module Punchblock
790
790
  end
791
791
 
792
792
  context "with an unjoin command" do
793
- let(:other_call_id) { "abc123" }
794
- let(:other_channel) { 'SIP/bar' }
793
+ let(:other_call_id) { "abc123" }
794
+ let(:other_channel) { 'SIP/bar' }
795
795
 
796
796
  let :other_call do
797
797
  Call.new other_channel, translator
798
798
  end
799
799
 
800
800
  let :command do
801
- Punchblock::Command::Unjoin.new :other_call_id => other_call_id
801
+ Punchblock::Command::Unjoin.new :call_id => other_call_id
802
802
  end
803
803
 
804
804
  it "executes the unjoin through redirection" do
@@ -864,7 +864,7 @@ module Punchblock
864
864
  ami_action.headers['Priority'].should be == Punchblock::Translator::Asterisk::REDIRECT_PRIORITY
865
865
  ami_action.headers['Context'].should be == Punchblock::Translator::Asterisk::REDIRECT_CONTEXT
866
866
  end
867
-
867
+
868
868
  it "executes the proper AMI action with another call specified" do
869
869
  subject.redirect_back other_call
870
870
  ami_action = subject.wrapped_object.instance_variable_get(:'@current_ami_action')
@@ -96,7 +96,7 @@ module Punchblock
96
96
  :utterance => '12',
97
97
  :interpretation => 'dtmf-1 dtmf-2',
98
98
  :component_id => subject.id,
99
- :call_id => call.id
99
+ :target_call_id => call.id
100
100
  end
101
101
 
102
102
  it "should send a success complete event with the relevant data" do
@@ -112,7 +112,7 @@ module Punchblock
112
112
 
113
113
  let :expected_event do
114
114
  Punchblock::Component::Input::Complete::NoMatch.new :component_id => subject.id,
115
- :call_id => call.id
115
+ :target_call_id => call.id
116
116
  end
117
117
 
118
118
  it "should send a nomatch complete event" do
@@ -29,7 +29,7 @@ module Punchblock
29
29
 
30
30
  let :expected_event do
31
31
  Punchblock::Event::Complete.new.tap do |e|
32
- e.call_id = call.id
32
+ e.target_call_id = call.id
33
33
  e.component_id = subject.id
34
34
  end
35
35
  end
@@ -50,7 +50,7 @@ module Punchblock
50
50
  it 'executes the call command' do
51
51
  subject.wrapped_object.expects(:execute_call_command).with do |c|
52
52
  c.should be command
53
- c.call_id.should be == call_id
53
+ c.target_call_id.should be == call_id
54
54
  end
55
55
  subject.execute_command command, :call_id => call_id
56
56
  end
@@ -111,7 +111,7 @@ module Punchblock
111
111
  describe '#execute_call_command' do
112
112
  let(:call_id) { 'abc123' }
113
113
  let(:call) { Translator::Asterisk::Call.new 'SIP/foo', subject }
114
- let(:command) { Command::Answer.new.tap { |c| c.call_id = call_id } }
114
+ let(:command) { Command::Answer.new.tap { |c| c.target_call_id = call_id } }
115
115
 
116
116
  before do
117
117
  command.request!
data/spec/spec_helper.rb CHANGED
@@ -33,8 +33,8 @@ end
33
33
 
34
34
  # FIXME: change this to rayo_event? It can be ambigous
35
35
  shared_examples_for 'event' do
36
- its(:call_id) { should be == '9f00061' }
37
- its(:component_id) { should be == '1' }
36
+ its(:target_call_id) { should be == '9f00061' }
37
+ its(:component_id) { should be == '1' }
38
38
  end
39
39
 
40
40
  shared_examples_for 'command_headers' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: punchblock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-03-29 00:00:00.000000000 Z
14
+ date: 2012-03-30 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: niceogiri
18
- requirement: &2151904540 !ruby/object:Gem::Requirement
18
+ requirement: &2151918560 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: 0.0.4
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *2151904540
26
+ version_requirements: *2151918560
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: blather
29
- requirement: &2151919620 !ruby/object:Gem::Requirement
29
+ requirement: &2151917300 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ! '>='
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: 0.5.12
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *2151919620
37
+ version_requirements: *2151917300
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: activesupport
40
- requirement: &2151917060 !ruby/object:Gem::Requirement
40
+ requirement: &2151916200 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: 2.1.0
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *2151917060
48
+ version_requirements: *2151916200
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: state_machine
51
- requirement: &2151913560 !ruby/object:Gem::Requirement
51
+ requirement: &2151915240 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: 1.0.1
57
57
  type: :runtime
58
58
  prerelease: false
59
- version_requirements: *2151913560
59
+ version_requirements: *2151915240
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: future-resource
62
- requirement: &2151923540 !ruby/object:Gem::Requirement
62
+ requirement: &2151926340 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: 0.0.2
68
68
  type: :runtime
69
69
  prerelease: false
70
- version_requirements: *2151923540
70
+ version_requirements: *2151926340
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: has-guarded-handlers
73
- requirement: &2151933680 !ruby/object:Gem::Requirement
73
+ requirement: &2151923420 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: 0.1.0
79
79
  type: :runtime
80
80
  prerelease: false
81
- version_requirements: *2151933680
81
+ version_requirements: *2151923420
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: celluloid
84
- requirement: &2151938780 !ruby/object:Gem::Requirement
84
+ requirement: &2151921440 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ! '>='
@@ -89,10 +89,10 @@ dependencies:
89
89
  version: 0.9.0
90
90
  type: :runtime
91
91
  prerelease: false
92
- version_requirements: *2151938780
92
+ version_requirements: *2151921440
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: ruby_ami
95
- requirement: &2152114920 !ruby/object:Gem::Requirement
95
+ requirement: &2151932640 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ! '>='
@@ -100,10 +100,10 @@ dependencies:
100
100
  version: 0.1.3
101
101
  type: :runtime
102
102
  prerelease: false
103
- version_requirements: *2152114920
103
+ version_requirements: *2151932640
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: ruby_speech
106
- requirement: &2152144720 !ruby/object:Gem::Requirement
106
+ requirement: &2155995300 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ! '>='
@@ -111,10 +111,10 @@ dependencies:
111
111
  version: 0.5.1
112
112
  type: :runtime
113
113
  prerelease: false
114
- version_requirements: *2152144720
114
+ version_requirements: *2155995300
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: bundler
117
- requirement: &2152162740 !ruby/object:Gem::Requirement
117
+ requirement: &2155999080 !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
120
120
  - - ! '>='
@@ -122,10 +122,10 @@ dependencies:
122
122
  version: 1.0.0
123
123
  type: :development
124
124
  prerelease: false
125
- version_requirements: *2152162740
125
+ version_requirements: *2155999080
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: rspec
128
- requirement: &2152170960 !ruby/object:Gem::Requirement
128
+ requirement: &2156017820 !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
131
  - - ~>
@@ -133,10 +133,10 @@ dependencies:
133
133
  version: 2.7.0
134
134
  type: :development
135
135
  prerelease: false
136
- version_requirements: *2152170960
136
+ version_requirements: *2156017820
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: ci_reporter
139
- requirement: &2152169100 !ruby/object:Gem::Requirement
139
+ requirement: &2156036260 !ruby/object:Gem::Requirement
140
140
  none: false
141
141
  requirements:
142
142
  - - ! '>='
@@ -144,10 +144,10 @@ dependencies:
144
144
  version: 1.6.3
145
145
  type: :development
146
146
  prerelease: false
147
- version_requirements: *2152169100
147
+ version_requirements: *2156036260
148
148
  - !ruby/object:Gem::Dependency
149
149
  name: yard
150
- requirement: &2152166660 !ruby/object:Gem::Requirement
150
+ requirement: &2156029000 !ruby/object:Gem::Requirement
151
151
  none: false
152
152
  requirements:
153
153
  - - ~>
@@ -155,10 +155,10 @@ dependencies:
155
155
  version: 0.6.0
156
156
  type: :development
157
157
  prerelease: false
158
- version_requirements: *2152166660
158
+ version_requirements: *2156029000
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: rake
161
- requirement: &2152021340 !ruby/object:Gem::Requirement
161
+ requirement: &2156042480 !ruby/object:Gem::Requirement
162
162
  none: false
163
163
  requirements:
164
164
  - - ! '>='
@@ -166,10 +166,10 @@ dependencies:
166
166
  version: '0'
167
167
  type: :development
168
168
  prerelease: false
169
- version_requirements: *2152021340
169
+ version_requirements: *2156042480
170
170
  - !ruby/object:Gem::Dependency
171
171
  name: mocha
172
- requirement: &2152018180 !ruby/object:Gem::Requirement
172
+ requirement: &2156036860 !ruby/object:Gem::Requirement
173
173
  none: false
174
174
  requirements:
175
175
  - - ! '>='
@@ -177,10 +177,10 @@ dependencies:
177
177
  version: '0'
178
178
  type: :development
179
179
  prerelease: false
180
- version_requirements: *2152018180
180
+ version_requirements: *2156036860
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: i18n
183
- requirement: &2152015600 !ruby/object:Gem::Requirement
183
+ requirement: &2155891280 !ruby/object:Gem::Requirement
184
184
  none: false
185
185
  requirements:
186
186
  - - ! '>='
@@ -188,10 +188,10 @@ dependencies:
188
188
  version: '0'
189
189
  type: :development
190
190
  prerelease: false
191
- version_requirements: *2152015600
191
+ version_requirements: *2155891280
192
192
  - !ruby/object:Gem::Dependency
193
193
  name: countdownlatch
194
- requirement: &2152176560 !ruby/object:Gem::Requirement
194
+ requirement: &2155887920 !ruby/object:Gem::Requirement
195
195
  none: false
196
196
  requirements:
197
197
  - - ! '>='
@@ -199,10 +199,10 @@ dependencies:
199
199
  version: '0'
200
200
  type: :development
201
201
  prerelease: false
202
- version_requirements: *2152176560
202
+ version_requirements: *2155887920
203
203
  - !ruby/object:Gem::Dependency
204
204
  name: guard-rspec
205
- requirement: &2152174900 !ruby/object:Gem::Requirement
205
+ requirement: &2156050140 !ruby/object:Gem::Requirement
206
206
  none: false
207
207
  requirements:
208
208
  - - ! '>='
@@ -210,7 +210,7 @@ dependencies:
210
210
  version: '0'
211
211
  type: :development
212
212
  prerelease: false
213
- version_requirements: *2152174900
213
+ version_requirements: *2156050140
214
214
  description: Like Rack is to Rails and Sinatra, Punchblock provides a consistent API
215
215
  on top of several underlying third-party call control protocols.
216
216
  email: punchblock@adhearsion.com
@@ -359,7 +359,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
359
359
  version: '0'
360
360
  segments:
361
361
  - 0
362
- hash: 115218676843076240
362
+ hash: -3649265375268061365
363
363
  required_rubygems_version: !ruby/object:Gem::Requirement
364
364
  none: false
365
365
  requirements: