adhearsion 2.0.0.alpha1 → 2.0.0.alpha2

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.
Files changed (57) hide show
  1. data/.gitignore +2 -0
  2. data/.travis.yml +12 -0
  3. data/CHANGELOG.md +17 -0
  4. data/adhearsion.gemspec +4 -3
  5. data/features/app_generator.feature +3 -1
  6. data/features/cli.feature +7 -7
  7. data/features/support/env.rb +46 -0
  8. data/lib/adhearsion.rb +1 -2
  9. data/lib/adhearsion/call.rb +59 -19
  10. data/lib/adhearsion/call_controller.rb +20 -24
  11. data/lib/adhearsion/call_controller/dial.rb +18 -18
  12. data/lib/adhearsion/cli_commands.rb +26 -9
  13. data/lib/adhearsion/configuration.rb +39 -10
  14. data/lib/adhearsion/console.rb +61 -42
  15. data/lib/adhearsion/foundation/libc.rb +13 -0
  16. data/lib/adhearsion/generators/app/app_generator.rb +4 -1
  17. data/lib/adhearsion/generators/app/templates/{Gemfile → Gemfile.erb} +1 -1
  18. data/lib/adhearsion/generators/app/templates/Rakefile +3 -22
  19. data/lib/adhearsion/generators/app/templates/gitignore +7 -0
  20. data/lib/adhearsion/generators/app/templates/lib/simon_game.rb +1 -0
  21. data/lib/adhearsion/generators/app/templates/script/ahn +1 -0
  22. data/lib/adhearsion/initializer.rb +24 -12
  23. data/lib/adhearsion/linux_proc_name.rb +41 -0
  24. data/lib/adhearsion/outbound_call.rb +10 -5
  25. data/lib/adhearsion/plugin.rb +29 -132
  26. data/lib/adhearsion/process.rb +4 -1
  27. data/lib/adhearsion/punchblock_plugin.rb +14 -5
  28. data/lib/adhearsion/punchblock_plugin/initializer.rb +8 -1
  29. data/lib/adhearsion/router/route.rb +1 -3
  30. data/lib/adhearsion/tasks.rb +6 -12
  31. data/lib/adhearsion/tasks/configuration.rb +7 -24
  32. data/lib/adhearsion/tasks/environment.rb +12 -0
  33. data/lib/adhearsion/tasks/plugins.rb +9 -14
  34. data/lib/adhearsion/version.rb +1 -1
  35. data/spec/adhearsion/call_controller/dial_spec.rb +46 -22
  36. data/spec/adhearsion/call_controller_spec.rb +48 -13
  37. data/spec/adhearsion/call_spec.rb +144 -23
  38. data/spec/adhearsion/calls_spec.rb +8 -4
  39. data/spec/adhearsion/console_spec.rb +24 -0
  40. data/spec/adhearsion/initializer/logging_spec.rb +0 -3
  41. data/spec/adhearsion/initializer_spec.rb +52 -37
  42. data/spec/adhearsion/logging_spec.rb +0 -3
  43. data/spec/adhearsion/outbound_call_spec.rb +12 -2
  44. data/spec/adhearsion/plugin_spec.rb +74 -184
  45. data/spec/adhearsion/process_spec.rb +59 -26
  46. data/spec/adhearsion/punchblock_plugin/initializer_spec.rb +3 -4
  47. data/spec/adhearsion/punchblock_plugin_spec.rb +11 -0
  48. data/spec/adhearsion/router/route_spec.rb +37 -6
  49. data/spec/adhearsion_spec.rb +31 -8
  50. data/spec/spec_helper.rb +14 -0
  51. data/spec/support/call_controller_test_helpers.rb +2 -2
  52. data/spec/support/logging_helpers.rb +2 -0
  53. metadata +85 -68
  54. data/lib/adhearsion/dialplan_controller.rb +0 -9
  55. data/lib/adhearsion/foundation/synchronized_hash.rb +0 -93
  56. data/lib/adhearsion/plugin/methods_container.rb +0 -6
  57. data/spec/adhearsion/dialplan_controller_spec.rb +0 -26
@@ -1,34 +1,67 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Adhearsion::Process do
4
- before :each do
5
- Adhearsion::Process.reset
6
- end
3
+ module Adhearsion
4
+ describe Adhearsion::Process do
5
+ before :each do
6
+ Adhearsion::Process.reset
7
+ end
7
8
 
8
- it 'should trigger :stop_requested events on #shutdown' do
9
- flexmock(Adhearsion::Events).should_receive(:trigger_immediately).once.with(:stop_requested)
10
- Adhearsion::Process.booted
11
- Adhearsion::Process.shutdown
12
- end
9
+ it 'should trigger :stop_requested events on #shutdown' do
10
+ flexmock(Events).should_receive(:trigger_immediately).once.with(:stop_requested)
11
+ Adhearsion::Process.booted
12
+ Adhearsion::Process.shutdown
13
+ end
13
14
 
14
- it '#stop_when_zero_calls should wait until the list of active calls reaches 0' do
15
- pending
16
- calls = ThreadSafeArray.new
17
- 3.times do
18
- fake_call = Object.new
19
- flexmock(fake_call).should_receive(:hangup).once
20
- calls << fake_call
15
+ it '#stop_when_zero_calls should wait until the list of active calls reaches 0' do
16
+ pending
17
+ calls = ThreadSafeArray.new
18
+ 3.times do
19
+ fake_call = Object.new
20
+ flexmock(fake_call).should_receive(:hangup).once
21
+ calls << fake_call
22
+ end
23
+ flexmock(Adhearsion).should_receive(:active_calls).and_return calls
24
+ flexmock(Adhearsion::Process.instance).should_receive(:final_shutdown).once
25
+ calls = []
26
+ 3.times { calls << Thread.new { sleep 1; calls.pop } }
27
+ Adhearsion::Process.stop_when_zero_calls
28
+ calls.each { |thread| thread.join }
21
29
  end
22
- flexmock(Adhearsion).should_receive(:active_calls).and_return calls
23
- flexmock(Adhearsion::Process.instance).should_receive(:final_shutdown).once
24
- calls = []
25
- 3.times { calls << Thread.new { sleep 1; calls.pop } }
26
- Adhearsion::Process.stop_when_zero_calls
27
- calls.each { |thread| thread.join }
28
- end
29
30
 
30
- it 'should terminate the process immediately on #force_stop' do
31
- flexmock(::Process).should_receive(:exit).with(1).once.and_return true
32
- Adhearsion::Process.force_stop
31
+ it 'should terminate the process immediately on #force_stop' do
32
+ flexmock(::Process).should_receive(:exit).with(1).once.and_return true
33
+ Adhearsion::Process.force_stop
34
+ end
35
+
36
+ describe "#final_shutdown" do
37
+ it "should hang up active calls" do
38
+ 3.times do
39
+ fake_call = flexmock Object.new, :id => rand
40
+ flexmock(fake_call).should_receive(:hangup).once
41
+ Adhearsion.active_calls << fake_call
42
+ end
43
+
44
+ Adhearsion::Process.final_shutdown
45
+
46
+ Adhearsion.active_calls.clear!
47
+ end
48
+
49
+ it "should trigger shutdown handlers synchronously" do
50
+ shutdown_value = []
51
+
52
+ Events.shutdown { shutdown_value << :foo }
53
+ Events.shutdown { shutdown_value << :bar }
54
+ Events.shutdown { shutdown_value << :baz }
55
+
56
+ Adhearsion::Process.final_shutdown
57
+
58
+ shutdown_value.should == [:foo, :bar, :baz]
59
+ end
60
+
61
+ it "should stop the console" do
62
+ flexmock(Console).should_receive(:stop).once
63
+ Adhearsion::Process.final_shutdown
64
+ end
65
+ end
33
66
  end
34
67
  end
@@ -45,10 +45,9 @@ module Adhearsion
45
45
  Events.refresh!
46
46
  end
47
47
 
48
- let(:call_id) { rand }
49
- let(:offer) { ::Punchblock::Event::Offer.new.tap { |o| o.call_id = call_id } }
50
- let(:mock_call) { flexmock('Call', :id => call_id).tap { |call| call.should_ignore_missing } }
51
- let(:mock_manager) { flexmock 'a mock dialplan manager' }
48
+ let(:call_id) { rand }
49
+ let(:offer) { ::Punchblock::Event::Offer.new.tap { |o| o.call_id = call_id } }
50
+ let(:mock_call) { flexmock('Call', :id => call_id).tap { |call| call.should_ignore_missing } }
52
51
 
53
52
  describe "starts the client with the default values" do
54
53
  subject { initialize_punchblock }
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ module Adhearsion
4
+ describe PunchblockPlugin do
5
+ it "should make the client accessible from the Initializer" do
6
+ PunchblockPlugin::Initializer.client = :foo
7
+ PunchblockPlugin.client.should be :foo
8
+ PunchblockPlugin::Initializer.client = nil
9
+ end
10
+ end
11
+ end
@@ -49,18 +49,49 @@ module Adhearsion
49
49
  ]
50
50
  end
51
51
 
52
+ let :offer do
53
+ Punchblock::Event::Offer.new :to => to, :from => from
54
+ end
55
+
56
+ let(:call) { Adhearsion::Call.new offer }
57
+
52
58
  context "with a call from fred to paul" do
53
- let(:call) { flexmock 'Adhearsion::Call', :from => 'fred', :to => 'paul' }
59
+ let(:from) { 'fred' }
60
+ let(:to) { 'paul' }
54
61
  it { should_match_the_call }
55
62
  end
56
63
 
57
64
  context "with a call from fred to frank" do
58
- let(:call) { flexmock 'Adhearsion::Call', :from => 'fred', :to => 'frank' }
65
+ let(:from) { 'fred' }
66
+ let(:to) { 'frank' }
59
67
  it { should_not_match_the_call }
60
68
  end
61
69
 
62
70
  context "with a call from frank to paul" do
63
- let(:call) { flexmock 'Adhearsion::Call', :from => 'frank', :to => 'paul' }
71
+ let(:from) { 'frank' }
72
+ let(:to) { 'paul' }
73
+ it { should_not_match_the_call }
74
+ end
75
+ end
76
+
77
+ describe "matching calls with the variable :foo=:bar" do
78
+ let :guards do
79
+ [[:[], :foo] => :bar]
80
+ end
81
+
82
+ let(:call) { Adhearsion::Call.new }
83
+
84
+ context "with :foo=:bar" do
85
+ before { call[:foo] = :bar }
86
+ it { should_match_the_call }
87
+ end
88
+
89
+ context "with :foo=:baz" do
90
+ before { call[:foo] = :baz }
91
+ it { should_not_match_the_call }
92
+ end
93
+
94
+ context "with :foo unset" do
64
95
  it { should_not_match_the_call }
65
96
  end
66
97
  end
@@ -86,9 +117,9 @@ module Adhearsion
86
117
  end
87
118
  end
88
119
 
89
- it "should instruct the call to use an instance of DialplanController with the correct block" do
90
- flexmock(call).should_receive(:execute_controller).once.with(DialplanController).and_return do |controller|
91
- controller.dialplan.call.should == :foobar
120
+ it "should instruct the call to use a CallController with the correct block" do
121
+ flexmock(call).should_receive(:execute_controller).once.with(CallController).and_return do |controller|
122
+ controller.block.call.should == :foobar
92
123
  end
93
124
  route.dispatcher.call call
94
125
  end
@@ -1,7 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Adhearsion do
4
- describe "while accessing the config method" do
4
+ describe "#ahn_root=" do
5
+ it "should update properly the config root variable" do
6
+ Adhearsion.ahn_root = "./"
7
+ Adhearsion.config[:platform].root.should == Dir.getwd
8
+ end
9
+
10
+ it "should update properly the config root variable when path is nil" do
11
+ Adhearsion.ahn_root = nil
12
+ Adhearsion.config[:platform].root.should be_nil
13
+ end
14
+ end
15
+
16
+ describe "#config" do
5
17
  it "should return a Configuration instance" do
6
18
  subject.config.should be_instance_of Adhearsion::Configuration
7
19
  end
@@ -15,6 +27,13 @@ describe Adhearsion do
15
27
  end
16
28
  end
17
29
 
30
+ describe "#environments" do
31
+ it "should be the collection of valid environments" do
32
+ Adhearsion.config.valid_environments << :foo
33
+ Adhearsion.environments.should include :foo
34
+ end
35
+ end
36
+
18
37
  describe "#router" do
19
38
  its(:router) { should be_a Adhearsion::Router }
20
39
 
@@ -32,15 +51,19 @@ describe Adhearsion do
32
51
  end
33
52
  end
34
53
 
35
- describe "while accessing the ahn_root= method" do
36
- it "should update properly the config root variable" do
37
- Adhearsion.ahn_root = "./"
38
- Adhearsion.config[:platform].root.should == Dir.getwd
54
+ describe "#active_calls" do
55
+ it "should be a calls collection" do
56
+ Adhearsion.active_calls.should be_a Adhearsion::Calls
39
57
  end
40
58
 
41
- it "should update properly the config root variable when path is nil" do
42
- Adhearsion.ahn_root = nil
43
- Adhearsion.config[:platform].root.should be_nil
59
+ it "should return the same instance each time" do
60
+ Adhearsion.active_calls.should be Adhearsion.active_calls
61
+ end
62
+ end
63
+
64
+ describe "#status" do
65
+ it "should be the process status name" do
66
+ Adhearsion.status.should == :booting
44
67
  end
45
68
  end
46
69
  end
@@ -45,3 +45,17 @@ Adhearsion::Events.exeption do |e|
45
45
  end
46
46
 
47
47
  Adhearsion::Logging.silence!
48
+
49
+
50
+ # Test modules for #mixin methods
51
+ module TestBiscuit
52
+ def throwadogabone
53
+ true
54
+ end
55
+ end
56
+
57
+ module MarmaladeIsBetterThanJam
58
+ def sobittersweet
59
+ true
60
+ end
61
+ end
@@ -4,6 +4,7 @@ module CallControllerTestHelpers
4
4
  def self.included(test_case)
5
5
  test_case.let(:call_id) { rand }
6
6
  test_case.let(:call) { Adhearsion::Call.new }
7
+ test_case.let(:block) { nil }
7
8
 
8
9
  test_case.subject do
9
10
  case test_case.describes
@@ -11,11 +12,10 @@ module CallControllerTestHelpers
11
12
  test_case.describes
12
13
  when Module
13
14
  Class.new Adhearsion::CallController
14
- end.new call, :doo => :dah
15
+ end.new call, :doo => :dah, &block
15
16
  end
16
17
 
17
18
  test_case.before do
18
- flexmock Adhearsion::Plugin, :methods_scope => {:dialplan => Module.new { def foo; end}}
19
19
  flexmock subject
20
20
  flexmock call, :write_command => true, :id => call_id
21
21
  end
@@ -0,0 +1,2 @@
1
+ Foo = Class.new
2
+ Foo::Bar = Class.new Foo
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adhearsion
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.alpha1
4
+ version: 2.0.0.alpha2
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -12,11 +12,11 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-01-17 00:00:00.000000000 Z
15
+ date: 2012-01-30 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: bundler
19
- requirement: &2157338940 !ruby/object:Gem::Requirement
19
+ requirement: &2156512600 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ! '>='
@@ -24,21 +24,21 @@ dependencies:
24
24
  version: 1.0.10
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *2157338940
27
+ version_requirements: *2156512600
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: punchblock
30
- requirement: &2157338400 !ruby/object:Gem::Requirement
30
+ requirement: &2156510520 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - ! '>='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.8.3
35
+ version: 0.9.1
36
36
  type: :runtime
37
37
  prerelease: false
38
- version_requirements: *2157338400
38
+ version_requirements: *2156510520
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: logging
41
- requirement: &2157337900 !ruby/object:Gem::Requirement
41
+ requirement: &2156507840 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ! '>='
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: 1.6.1
47
47
  type: :runtime
48
48
  prerelease: false
49
- version_requirements: *2157337900
49
+ version_requirements: *2156507840
50
50
  - !ruby/object:Gem::Dependency
51
- name: loquacious
52
- requirement: &2157337400 !ruby/object:Gem::Requirement
51
+ name: adhearsion-loquacious
52
+ requirement: &2156520680 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: 1.9.0
58
58
  type: :runtime
59
59
  prerelease: false
60
- version_requirements: *2157337400
60
+ version_requirements: *2156520680
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: activesupport
63
- requirement: &2157336880 !ruby/object:Gem::Requirement
63
+ requirement: &2156519300 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ! '>='
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: 3.0.10
69
69
  type: :runtime
70
70
  prerelease: false
71
- version_requirements: *2157336880
71
+ version_requirements: *2156519300
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: i18n
74
- requirement: &2157336420 !ruby/object:Gem::Requirement
74
+ requirement: &2156517360 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ! '>='
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: 0.5.0
80
80
  type: :runtime
81
81
  prerelease: false
82
- version_requirements: *2157336420
82
+ version_requirements: *2156517360
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: json
85
- requirement: &2157336020 !ruby/object:Gem::Requirement
85
+ requirement: &2156515880 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ! '>='
@@ -90,10 +90,10 @@ dependencies:
90
90
  version: '0'
91
91
  type: :runtime
92
92
  prerelease: false
93
- version_requirements: *2157336020
93
+ version_requirements: *2156515880
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: thor
96
- requirement: &2157335540 !ruby/object:Gem::Requirement
96
+ requirement: &2156515300 !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ! '>='
@@ -101,10 +101,10 @@ dependencies:
101
101
  version: '0'
102
102
  type: :runtime
103
103
  prerelease: false
104
- version_requirements: *2157335540
104
+ version_requirements: *2156515300
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: rake
107
- requirement: &2157335120 !ruby/object:Gem::Requirement
107
+ requirement: &2156513900 !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements:
110
110
  - - ! '>='
@@ -112,10 +112,10 @@ dependencies:
112
112
  version: '0'
113
113
  type: :runtime
114
114
  prerelease: false
115
- version_requirements: *2157335120
115
+ version_requirements: *2156513900
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: pry
118
- requirement: &2157334680 !ruby/object:Gem::Requirement
118
+ requirement: &2156526580 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
121
  - - ! '>='
@@ -123,10 +123,10 @@ dependencies:
123
123
  version: '0'
124
124
  type: :runtime
125
125
  prerelease: false
126
- version_requirements: *2157334680
126
+ version_requirements: *2156526580
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: uuid
129
- requirement: &2157334240 !ruby/object:Gem::Requirement
129
+ requirement: &2156524260 !ruby/object:Gem::Requirement
130
130
  none: false
131
131
  requirements:
132
132
  - - ! '>='
@@ -134,10 +134,10 @@ dependencies:
134
134
  version: '0'
135
135
  type: :runtime
136
136
  prerelease: false
137
- version_requirements: *2157334240
137
+ version_requirements: *2156524260
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: future-resource
140
- requirement: &2157333700 !ruby/object:Gem::Requirement
140
+ requirement: &2156522060 !ruby/object:Gem::Requirement
141
141
  none: false
142
142
  requirements:
143
143
  - - ! '>='
@@ -145,10 +145,10 @@ dependencies:
145
145
  version: 0.0.2
146
146
  type: :runtime
147
147
  prerelease: false
148
- version_requirements: *2157333700
148
+ version_requirements: *2156522060
149
149
  - !ruby/object:Gem::Dependency
150
150
  name: ruby_speech
151
- requirement: &2157333160 !ruby/object:Gem::Requirement
151
+ requirement: &2156535940 !ruby/object:Gem::Requirement
152
152
  none: false
153
153
  requirements:
154
154
  - - ! '>='
@@ -156,10 +156,10 @@ dependencies:
156
156
  version: 0.4.0
157
157
  type: :runtime
158
158
  prerelease: false
159
- version_requirements: *2157333160
159
+ version_requirements: *2156535940
160
160
  - !ruby/object:Gem::Dependency
161
161
  name: countdownlatch
162
- requirement: &2157332780 !ruby/object:Gem::Requirement
162
+ requirement: &2156531620 !ruby/object:Gem::Requirement
163
163
  none: false
164
164
  requirements:
165
165
  - - ! '>='
@@ -167,21 +167,21 @@ dependencies:
167
167
  version: '0'
168
168
  type: :runtime
169
169
  prerelease: false
170
- version_requirements: *2157332780
170
+ version_requirements: *2156531620
171
171
  - !ruby/object:Gem::Dependency
172
172
  name: has-guarded-handlers
173
- requirement: &2157332180 !ruby/object:Gem::Requirement
173
+ requirement: &2156548760 !ruby/object:Gem::Requirement
174
174
  none: false
175
175
  requirements:
176
176
  - - ! '>='
177
177
  - !ruby/object:Gem::Version
178
- version: 0.1.1
178
+ version: 1.1.0
179
179
  type: :runtime
180
180
  prerelease: false
181
- version_requirements: *2157332180
181
+ version_requirements: *2156548760
182
182
  - !ruby/object:Gem::Dependency
183
183
  name: girl_friday
184
- requirement: &2157331740 !ruby/object:Gem::Requirement
184
+ requirement: &2156546880 !ruby/object:Gem::Requirement
185
185
  none: false
186
186
  requirements:
187
187
  - - ! '>='
@@ -189,10 +189,21 @@ dependencies:
189
189
  version: '0'
190
190
  type: :runtime
191
191
  prerelease: false
192
- version_requirements: *2157331740
192
+ version_requirements: *2156546880
193
+ - !ruby/object:Gem::Dependency
194
+ name: ffi
195
+ requirement: &2156544980 !ruby/object:Gem::Requirement
196
+ none: false
197
+ requirements:
198
+ - - ! '>='
199
+ - !ruby/object:Gem::Version
200
+ version: 1.0.11
201
+ type: :runtime
202
+ prerelease: false
203
+ version_requirements: *2156544980
193
204
  - !ruby/object:Gem::Dependency
194
205
  name: rspec
195
- requirement: &2157348260 !ruby/object:Gem::Requirement
206
+ requirement: &2156543340 !ruby/object:Gem::Requirement
196
207
  none: false
197
208
  requirements:
198
209
  - - ~>
@@ -200,10 +211,10 @@ dependencies:
200
211
  version: 2.7.0
201
212
  type: :development
202
213
  prerelease: false
203
- version_requirements: *2157348260
214
+ version_requirements: *2156543340
204
215
  - !ruby/object:Gem::Dependency
205
216
  name: flexmock
206
- requirement: &2157347840 !ruby/object:Gem::Requirement
217
+ requirement: &2156557680 !ruby/object:Gem::Requirement
207
218
  none: false
208
219
  requirements:
209
220
  - - ! '>='
@@ -211,10 +222,10 @@ dependencies:
211
222
  version: '0'
212
223
  type: :development
213
224
  prerelease: false
214
- version_requirements: *2157347840
225
+ version_requirements: *2156557680
215
226
  - !ruby/object:Gem::Dependency
216
227
  name: activerecord
217
- requirement: &2157347260 !ruby/object:Gem::Requirement
228
+ requirement: &2156555880 !ruby/object:Gem::Requirement
218
229
  none: false
219
230
  requirements:
220
231
  - - ! '>='
@@ -222,10 +233,10 @@ dependencies:
222
233
  version: 3.0.10
223
234
  type: :development
224
235
  prerelease: false
225
- version_requirements: *2157347260
236
+ version_requirements: *2156555880
226
237
  - !ruby/object:Gem::Dependency
227
238
  name: simplecov
228
- requirement: &2157346840 !ruby/object:Gem::Requirement
239
+ requirement: &2156554720 !ruby/object:Gem::Requirement
229
240
  none: false
230
241
  requirements:
231
242
  - - ! '>='
@@ -233,10 +244,10 @@ dependencies:
233
244
  version: '0'
234
245
  type: :development
235
246
  prerelease: false
236
- version_requirements: *2157346840
247
+ version_requirements: *2156554720
237
248
  - !ruby/object:Gem::Dependency
238
249
  name: simplecov-rcov
239
- requirement: &2157346360 !ruby/object:Gem::Requirement
250
+ requirement: &2156553700 !ruby/object:Gem::Requirement
240
251
  none: false
241
252
  requirements:
242
253
  - - ! '>='
@@ -244,10 +255,10 @@ dependencies:
244
255
  version: '0'
245
256
  type: :development
246
257
  prerelease: false
247
- version_requirements: *2157346360
258
+ version_requirements: *2156553700
248
259
  - !ruby/object:Gem::Dependency
249
260
  name: ci_reporter
250
- requirement: &2157345940 !ruby/object:Gem::Requirement
261
+ requirement: &2156551580 !ruby/object:Gem::Requirement
251
262
  none: false
252
263
  requirements:
253
264
  - - ! '>='
@@ -255,10 +266,10 @@ dependencies:
255
266
  version: '0'
256
267
  type: :development
257
268
  prerelease: false
258
- version_requirements: *2157345940
269
+ version_requirements: *2156551580
259
270
  - !ruby/object:Gem::Dependency
260
271
  name: yard
261
- requirement: &2157345500 !ruby/object:Gem::Requirement
272
+ requirement: &2156550720 !ruby/object:Gem::Requirement
262
273
  none: false
263
274
  requirements:
264
275
  - - ! '>='
@@ -266,10 +277,10 @@ dependencies:
266
277
  version: '0'
267
278
  type: :development
268
279
  prerelease: false
269
- version_requirements: *2157345500
280
+ version_requirements: *2156550720
270
281
  - !ruby/object:Gem::Dependency
271
282
  name: guard-rspec
272
- requirement: &2157345080 !ruby/object:Gem::Requirement
283
+ requirement: &2156568080 !ruby/object:Gem::Requirement
273
284
  none: false
274
285
  requirements:
275
286
  - - ! '>='
@@ -277,10 +288,10 @@ dependencies:
277
288
  version: '0'
278
289
  type: :development
279
290
  prerelease: false
280
- version_requirements: *2157345080
291
+ version_requirements: *2156568080
281
292
  - !ruby/object:Gem::Dependency
282
293
  name: guard-cucumber
283
- requirement: &2157344660 !ruby/object:Gem::Requirement
294
+ requirement: &2156562800 !ruby/object:Gem::Requirement
284
295
  none: false
285
296
  requirements:
286
297
  - - ! '>='
@@ -288,10 +299,10 @@ dependencies:
288
299
  version: '0'
289
300
  type: :development
290
301
  prerelease: false
291
- version_requirements: *2157344660
302
+ version_requirements: *2156562800
292
303
  - !ruby/object:Gem::Dependency
293
304
  name: ruby_gntp
294
- requirement: &2157344220 !ruby/object:Gem::Requirement
305
+ requirement: &2156587720 !ruby/object:Gem::Requirement
295
306
  none: false
296
307
  requirements:
297
308
  - - ! '>='
@@ -299,10 +310,10 @@ dependencies:
299
310
  version: '0'
300
311
  type: :development
301
312
  prerelease: false
302
- version_requirements: *2157344220
313
+ version_requirements: *2156587720
303
314
  - !ruby/object:Gem::Dependency
304
315
  name: cucumber
305
- requirement: &2157343800 !ruby/object:Gem::Requirement
316
+ requirement: &2156585660 !ruby/object:Gem::Requirement
306
317
  none: false
307
318
  requirements:
308
319
  - - ! '>='
@@ -310,10 +321,10 @@ dependencies:
310
321
  version: '0'
311
322
  type: :development
312
323
  prerelease: false
313
- version_requirements: *2157343800
324
+ version_requirements: *2156585660
314
325
  - !ruby/object:Gem::Dependency
315
326
  name: aruba
316
- requirement: &2157343380 !ruby/object:Gem::Requirement
327
+ requirement: &2156584040 !ruby/object:Gem::Requirement
317
328
  none: false
318
329
  requirements:
319
330
  - - ! '>='
@@ -321,7 +332,7 @@ dependencies:
321
332
  version: '0'
322
333
  type: :development
323
334
  prerelease: false
324
- version_requirements: *2157343380
335
+ version_requirements: *2156584040
325
336
  description: Adhearsion is an open-source telephony development framework
326
337
  email: dev&Adhearsion.com
327
338
  executables:
@@ -331,6 +342,7 @@ extra_rdoc_files: []
331
342
  files:
332
343
  - .gitignore
333
344
  - .rspec
345
+ - .travis.yml
334
346
  - CHANGELOG.md
335
347
  - EVENTS
336
348
  - Gemfile
@@ -362,27 +374,28 @@ files:
362
374
  - lib/adhearsion/cli_commands.rb
363
375
  - lib/adhearsion/configuration.rb
364
376
  - lib/adhearsion/console.rb
365
- - lib/adhearsion/dialplan_controller.rb
366
377
  - lib/adhearsion/events.rb
367
378
  - lib/adhearsion/foundation/all.rb
368
379
  - lib/adhearsion/foundation/custom_daemonizer.rb
369
380
  - lib/adhearsion/foundation/exception_handler.rb
381
+ - lib/adhearsion/foundation/libc.rb
370
382
  - lib/adhearsion/foundation/object.rb
371
- - lib/adhearsion/foundation/synchronized_hash.rb
372
383
  - lib/adhearsion/foundation/thread_safety.rb
373
384
  - lib/adhearsion/generators.rb
374
385
  - lib/adhearsion/generators/app/USAGE
375
386
  - lib/adhearsion/generators/app/app_generator.rb
376
- - lib/adhearsion/generators/app/templates/Gemfile
387
+ - lib/adhearsion/generators/app/templates/Gemfile.erb
377
388
  - lib/adhearsion/generators/app/templates/Procfile
378
389
  - lib/adhearsion/generators/app/templates/README.md
379
390
  - lib/adhearsion/generators/app/templates/Rakefile
380
391
  - lib/adhearsion/generators/app/templates/config/adhearsion.rb
381
392
  - lib/adhearsion/generators/app/templates/config/environment.rb
393
+ - lib/adhearsion/generators/app/templates/gitignore
382
394
  - lib/adhearsion/generators/app/templates/lib/simon_game.rb
383
395
  - lib/adhearsion/generators/app/templates/script/ahn
384
396
  - lib/adhearsion/initializer.rb
385
397
  - lib/adhearsion/initializer/logging.rb
398
+ - lib/adhearsion/linux_proc_name.rb
386
399
  - lib/adhearsion/logging.rb
387
400
  - lib/adhearsion/menu_dsl.rb
388
401
  - lib/adhearsion/menu_dsl/calculated_match.rb
@@ -397,7 +410,6 @@ files:
397
410
  - lib/adhearsion/plugin.rb
398
411
  - lib/adhearsion/plugin/collection.rb
399
412
  - lib/adhearsion/plugin/initializer.rb
400
- - lib/adhearsion/plugin/methods_container.rb
401
413
  - lib/adhearsion/process.rb
402
414
  - lib/adhearsion/punchblock_plugin.rb
403
415
  - lib/adhearsion/punchblock_plugin/initializer.rb
@@ -406,6 +418,7 @@ files:
406
418
  - lib/adhearsion/script_ahn_loader.rb
407
419
  - lib/adhearsion/tasks.rb
408
420
  - lib/adhearsion/tasks/configuration.rb
421
+ - lib/adhearsion/tasks/environment.rb
409
422
  - lib/adhearsion/tasks/plugins.rb
410
423
  - lib/adhearsion/tasks/testing.rb
411
424
  - lib/adhearsion/version.rb
@@ -418,7 +431,7 @@ files:
418
431
  - spec/adhearsion/call_spec.rb
419
432
  - spec/adhearsion/calls_spec.rb
420
433
  - spec/adhearsion/configuration_spec.rb
421
- - spec/adhearsion/dialplan_controller_spec.rb
434
+ - spec/adhearsion/console_spec.rb
422
435
  - spec/adhearsion/events_spec.rb
423
436
  - spec/adhearsion/initializer/logging_spec.rb
424
437
  - spec/adhearsion/initializer_spec.rb
@@ -436,12 +449,14 @@ files:
436
449
  - spec/adhearsion/plugin_spec.rb
437
450
  - spec/adhearsion/process_spec.rb
438
451
  - spec/adhearsion/punchblock_plugin/initializer_spec.rb
452
+ - spec/adhearsion/punchblock_plugin_spec.rb
439
453
  - spec/adhearsion/router/route_spec.rb
440
454
  - spec/adhearsion/router_spec.rb
441
455
  - spec/adhearsion_spec.rb
442
456
  - spec/spec_helper.rb
443
457
  - spec/support/call_controller_test_helpers.rb
444
458
  - spec/support/initializer_stubs.rb
459
+ - spec/support/logging_helpers.rb
445
460
  - spec/support/punchblock_mocks.rb
446
461
  homepage: http://adhearsion.com
447
462
  licenses: []
@@ -457,7 +472,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
457
472
  version: '0'
458
473
  segments:
459
474
  - 0
460
- hash: -364475193702133580
475
+ hash: -2359996897687755183
461
476
  required_rubygems_version: !ruby/object:Gem::Requirement
462
477
  none: false
463
478
  requirements:
@@ -487,7 +502,7 @@ test_files:
487
502
  - spec/adhearsion/call_spec.rb
488
503
  - spec/adhearsion/calls_spec.rb
489
504
  - spec/adhearsion/configuration_spec.rb
490
- - spec/adhearsion/dialplan_controller_spec.rb
505
+ - spec/adhearsion/console_spec.rb
491
506
  - spec/adhearsion/events_spec.rb
492
507
  - spec/adhearsion/initializer/logging_spec.rb
493
508
  - spec/adhearsion/initializer_spec.rb
@@ -505,11 +520,13 @@ test_files:
505
520
  - spec/adhearsion/plugin_spec.rb
506
521
  - spec/adhearsion/process_spec.rb
507
522
  - spec/adhearsion/punchblock_plugin/initializer_spec.rb
523
+ - spec/adhearsion/punchblock_plugin_spec.rb
508
524
  - spec/adhearsion/router/route_spec.rb
509
525
  - spec/adhearsion/router_spec.rb
510
526
  - spec/adhearsion_spec.rb
511
527
  - spec/spec_helper.rb
512
528
  - spec/support/call_controller_test_helpers.rb
513
529
  - spec/support/initializer_stubs.rb
530
+ - spec/support/logging_helpers.rb
514
531
  - spec/support/punchblock_mocks.rb
515
532
  has_rdoc: