adhearsion 2.0.0.alpha2 → 2.0.0.alpha3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +16 -14
- data/CHANGELOG.md +17 -1
- data/adhearsion.gemspec +14 -13
- data/features/cli_basic.feature +30 -0
- data/features/cli_create.feature +24 -0
- data/features/cli_daemon.feature +21 -0
- data/features/cli_generate.feature +9 -0
- data/features/cli_start.feature +33 -0
- data/features/cli_stop.feature +38 -0
- data/features/controller_generator.feature +19 -0
- data/features/plugin_generator.feature +55 -0
- data/lib/adhearsion.rb +5 -1
- data/lib/adhearsion/call.rb +57 -51
- data/lib/adhearsion/call_controller.rb +4 -20
- data/lib/adhearsion/call_controller/dial.rb +34 -4
- data/lib/adhearsion/calls.rb +4 -1
- data/lib/adhearsion/cli_commands.rb +31 -6
- data/lib/adhearsion/configuration.rb +2 -6
- data/lib/adhearsion/console.rb +56 -17
- data/lib/adhearsion/generators.rb +53 -2
- data/lib/adhearsion/generators/app/app_generator.rb +2 -24
- data/lib/adhearsion/generators/app/templates/config/adhearsion.rb +1 -1
- data/lib/adhearsion/generators/controller/controller_generator.rb +18 -0
- data/lib/adhearsion/generators/controller/templates/lib/controller.rb +4 -0
- data/lib/adhearsion/generators/controller/templates/spec/controller_spec.rb +3 -0
- data/lib/adhearsion/generators/generator.rb +77 -0
- data/lib/adhearsion/generators/plugin/plugin_generator.rb +33 -0
- data/lib/adhearsion/generators/plugin/templates/.gitignore +9 -0
- data/lib/adhearsion/generators/plugin/templates/Gemfile.tt +4 -0
- data/lib/adhearsion/generators/plugin/templates/README.md.tt +2 -0
- data/lib/adhearsion/generators/plugin/templates/Rakefile.tt +1 -0
- data/lib/adhearsion/generators/plugin/templates/lib/plugin-template.rb.tt +5 -0
- data/lib/adhearsion/generators/plugin/templates/lib/plugin-template/controller_methods.rb.tt +10 -0
- data/lib/adhearsion/generators/plugin/templates/lib/plugin-template/plugin.rb.tt +29 -0
- data/lib/adhearsion/generators/plugin/templates/lib/plugin-template/version.rb.tt +3 -0
- data/lib/adhearsion/generators/plugin/templates/plugin-template.gemspec.tt +35 -0
- data/lib/adhearsion/generators/plugin/templates/spec/plugin-template/controller_methods_spec.rb.tt +26 -0
- data/lib/adhearsion/generators/plugin/templates/spec/spec_helper.rb.tt +13 -0
- data/lib/adhearsion/initializer.rb +14 -22
- data/lib/adhearsion/logging.rb +25 -16
- data/lib/adhearsion/outbound_call.rb +3 -3
- data/lib/adhearsion/plugin.rb +14 -0
- data/lib/adhearsion/punchblock_plugin.rb +6 -1
- data/lib/adhearsion/punchblock_plugin/initializer.rb +8 -8
- data/lib/adhearsion/tasks/configuration.rb +1 -1
- data/lib/adhearsion/version.rb +1 -1
- data/spec/adhearsion/call_controller/dial_spec.rb +108 -17
- data/spec/adhearsion/call_controller_spec.rb +7 -64
- data/spec/adhearsion/call_spec.rb +48 -29
- data/spec/adhearsion/calls_spec.rb +7 -0
- data/spec/adhearsion/configuration_spec.rb +14 -14
- data/spec/adhearsion/console_spec.rb +124 -4
- data/spec/adhearsion/generators_spec.rb +17 -0
- data/spec/adhearsion/initializer_spec.rb +22 -18
- data/spec/adhearsion/logging_spec.rb +78 -48
- data/spec/adhearsion/outbound_call_spec.rb +6 -15
- data/spec/adhearsion/plugin_spec.rb +18 -0
- data/spec/adhearsion/process_spec.rb +10 -1
- data/spec/adhearsion/punchblock_plugin/initializer_spec.rb +8 -6
- data/spec/spec_helper.rb +5 -2
- data/spec/support/call_controller_test_helpers.rb +1 -1
- data/spec/support/initializer_stubs.rb +1 -1
- metadata +106 -66
- data/features/cli.feature +0 -108
- data/lib/adhearsion/initializer/logging.rb +0 -33
- data/spec/adhearsion/initializer/logging_spec.rb +0 -55
@@ -10,7 +10,7 @@ describe Adhearsion::Initializer do
|
|
10
10
|
describe "#start" do
|
11
11
|
before do
|
12
12
|
Adhearsion::Logging.reset
|
13
|
-
flexmock(Adhearsion::
|
13
|
+
flexmock(Adhearsion::Logging).should_receive(:start).once.and_return('')
|
14
14
|
flexmock(::Logging::Appenders::File).should_receive(:assert_valid_logfile).and_return(true)
|
15
15
|
flexmock(::Logging::Appenders).should_receive(:file).and_return(nil)
|
16
16
|
Adhearsion.config = nil
|
@@ -22,7 +22,7 @@ describe Adhearsion::Initializer do
|
|
22
22
|
|
23
23
|
after :all do
|
24
24
|
Adhearsion::Logging.reset
|
25
|
-
Adhearsion::
|
25
|
+
Adhearsion::Logging.start
|
26
26
|
Adhearsion::Logging.silence!
|
27
27
|
end
|
28
28
|
|
@@ -145,7 +145,7 @@ describe Adhearsion::Initializer do
|
|
145
145
|
|
146
146
|
after :all do
|
147
147
|
Adhearsion::Logging.reset
|
148
|
-
Adhearsion::
|
148
|
+
Adhearsion::Logging.start
|
149
149
|
Adhearsion::Logging.silence!
|
150
150
|
Adhearsion::Events.reinitialize_queue!
|
151
151
|
end
|
@@ -153,7 +153,7 @@ describe Adhearsion::Initializer do
|
|
153
153
|
it "should start logging with valid parameters" do
|
154
154
|
stub_behavior_for_initializer_with_no_path_changing_behavior do
|
155
155
|
flexmock(File).should_receive(:open).with(File.join(path, 'adhearsion.pid'), 'w', Proc).at_least.once
|
156
|
-
flexmock(Adhearsion::
|
156
|
+
flexmock(Adhearsion::Logging).should_receive(:start).once.with(Array, :info, nil).and_return('')
|
157
157
|
Adhearsion::Initializer.start :pid_file => true
|
158
158
|
end
|
159
159
|
end
|
@@ -192,7 +192,7 @@ describe "Updating RAILS_ENV variable" do
|
|
192
192
|
|
193
193
|
before do
|
194
194
|
Adhearsion::Logging.reset
|
195
|
-
flexmock(Adhearsion::
|
195
|
+
flexmock(Adhearsion::Logging).should_receive(:start).once.and_return('')
|
196
196
|
flexmock(::Logging::Appenders::File).should_receive(:assert_valid_logfile).and_return(true)
|
197
197
|
flexmock(::Logging::Appenders).should_receive(:file).and_return(nil)
|
198
198
|
Adhearsion.config = nil
|
@@ -227,23 +227,27 @@ describe "Updating RAILS_ENV variable" do
|
|
227
227
|
ENV['RAILS_ENV'] = "test"
|
228
228
|
end
|
229
229
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
ahn =
|
230
|
+
context "if AHN_ENV is set" do
|
231
|
+
it "should preserve the RAILS_ENV value" do
|
232
|
+
ENV['AHN_ENV'] = "production"
|
233
|
+
ahn = nil
|
234
|
+
stub_behavior_for_initializer_with_no_path_changing_behavior do
|
235
|
+
ahn = Adhearsion::Initializer.start
|
236
|
+
end
|
237
|
+
ahn.update_rails_env_var
|
238
|
+
ENV['RAILS_ENV'].should == "test"
|
234
239
|
end
|
235
|
-
ahn.update_rails_env_var
|
236
|
-
ENV['RAILS_ENV'].should == "test"
|
237
240
|
end
|
238
241
|
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
242
|
+
context "if AHN_ENV is unset" do
|
243
|
+
it "should preserve the RAILS_ENV value" do
|
244
|
+
ahn = nil
|
245
|
+
stub_behavior_for_initializer_with_no_path_changing_behavior do
|
246
|
+
ahn = Adhearsion::Initializer.start
|
247
|
+
end
|
248
|
+
ahn.update_rails_env_var
|
249
|
+
ENV['RAILS_ENV'].should == "test"
|
244
250
|
end
|
245
|
-
ahn.update_rails_env_var
|
246
|
-
ENV['RAILS_ENV'].should == "production"
|
247
251
|
end
|
248
252
|
end
|
249
253
|
|
@@ -2,9 +2,18 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Adhearsion::Logging do
|
4
4
|
|
5
|
+
before :all do
|
6
|
+
::Logging.shutdown
|
7
|
+
Adhearsion::Logging.reset
|
8
|
+
Adhearsion::Logging.init
|
9
|
+
end
|
10
|
+
|
5
11
|
before do
|
6
|
-
|
7
|
-
Adhearsion::
|
12
|
+
Adhearsion::Logging.start
|
13
|
+
Adhearsion::Logging.silence!
|
14
|
+
end
|
15
|
+
|
16
|
+
after :all do
|
8
17
|
Adhearsion::Logging.silence!
|
9
18
|
end
|
10
19
|
|
@@ -12,12 +21,12 @@ describe Adhearsion::Logging do
|
|
12
21
|
Foo.should respond_to(:logger)
|
13
22
|
end
|
14
23
|
|
15
|
-
it 'should
|
16
|
-
|
24
|
+
it 'should be added to any Object instance' do
|
25
|
+
Foo.new.should respond_to :logger
|
17
26
|
end
|
18
27
|
|
19
|
-
it 'should
|
20
|
-
|
28
|
+
it 'should create the predefined set of log levels' do
|
29
|
+
::Logging::LEVELS.keys.should == Adhearsion::Logging::LOG_LEVELS.map(&:downcase)
|
21
30
|
end
|
22
31
|
|
23
32
|
it "should log to the Object logger when given arguments" do
|
@@ -41,60 +50,81 @@ describe Adhearsion::Logging do
|
|
41
50
|
::Logging::Repository.instance[FooBar].should_not be_nil
|
42
51
|
end
|
43
52
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
describe 'Logger level changing' do
|
48
|
-
|
49
|
-
before do
|
50
|
-
defined?(Logging) and Logging.reset
|
51
|
-
Adhearsion::Initializer::Logging.start
|
53
|
+
it "initializes properly a Logging object" do
|
54
|
+
::Logging.logger.root.appenders.length.should eql(1)
|
55
|
+
::Logging.logger.root.appenders.select{|a| a.is_a?(::Logging::Appenders::Stdout)}.length.should eql(1)
|
52
56
|
end
|
53
57
|
|
54
|
-
|
55
|
-
Adhearsion::Logging.
|
58
|
+
it "initializes properly a Logging object with appenders as parameter" do
|
59
|
+
Adhearsion::Logging.start([::Logging.appenders.stdout, ::Logging.appenders.file('example.log')])
|
60
|
+
::Logging.logger.root.appenders.length.should eql(2)
|
61
|
+
::Logging.logger.root.appenders.select{|a| a.is_a?(::Logging::Appenders::Stdout)}.length.should eql(1)
|
62
|
+
::Logging.logger.root.appenders.select{|a| a.is_a?(::Logging::Appenders::File)}.length.should eql(1)
|
56
63
|
end
|
57
64
|
|
58
|
-
|
59
|
-
Adhearsion::Logging.
|
65
|
+
it "initializes properly a Logging object with appenders and log level as parameter" do
|
66
|
+
Adhearsion::Logging.start([::Logging.appenders.stdout, ::Logging.appenders.file('example.log')], :debug)
|
67
|
+
::Logging.logger.root.appenders.length.should eql(2)
|
68
|
+
::Logging.logger.root.appenders.select{|a| a.is_a?(::Logging::Appenders::Stdout)}.length.should eql(1)
|
69
|
+
::Logging.logger.root.appenders.select{|a| a.is_a?(::Logging::Appenders::File)}.length.should eql(1)
|
70
|
+
::Logging.logger.root.level.should eql(::Logging::LEVELS["debug"])
|
60
71
|
end
|
61
72
|
|
62
|
-
it
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
loggers.map(&:level).should == [::Logging::LEVELS["warn"]] * 2
|
73
|
+
it "should create only a Logging object per Class (reuse per all the instances)" do
|
74
|
+
_logger = Foo.new.logger
|
75
|
+
10.times do
|
76
|
+
Foo.new.logger.object_id.should eql(_logger.object_id)
|
77
|
+
end
|
68
78
|
end
|
69
79
|
|
70
|
-
it
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
Adhearsion::Logging.level = :warn
|
75
|
-
loggers.map(&:level).should == [::Logging::LEVELS["warn"]] * 2
|
80
|
+
it "should reuse a Logging instance in all Class instances but not with child instances" do
|
81
|
+
_foo_logger = Foo.new.logger
|
82
|
+
_bar_logger = Foo::Bar.new.logger
|
83
|
+
_foo_logger.object_id.should_not eql(_bar_logger)
|
76
84
|
end
|
77
85
|
|
78
|
-
|
79
|
-
Foo.logger.level.should be Adhearsion::Logging::INFO
|
80
|
-
Adhearsion::Logging.logging_level = :fatal
|
81
|
-
Foo.logger.level.should be Adhearsion::Logging::FATAL
|
82
|
-
end
|
86
|
+
describe 'level changing' do
|
83
87
|
|
84
|
-
|
85
|
-
|
86
|
-
Adhearsion::Logging.logging_level = :fatal
|
87
|
-
Foo::Bar.logger.level.should be Adhearsion::Logging::FATAL
|
88
|
-
end
|
88
|
+
before { Adhearsion::Logging.unsilence! }
|
89
|
+
after { Adhearsion::Logging.unsilence! }
|
89
90
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
91
|
+
it 'changing the logging level should affect all loggers' do
|
92
|
+
loggers = [::Foo.logger, ::Foo::Bar.logger]
|
93
|
+
loggers.map(&:level).should_not == [Adhearsion::Logging::DEBUG] * 2
|
94
|
+
loggers.map(&:level).should == [Adhearsion::Logging::INFO] * 2
|
95
|
+
Adhearsion::Logging.logging_level = :warn
|
96
|
+
loggers.map(&:level).should == [Adhearsion::Logging::WARN] * 2
|
97
|
+
end
|
94
98
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
+
it 'changing the logging level, using level=, should affect all loggers' do
|
100
|
+
loggers = [Foo.logger, ::Foo::Bar.logger]
|
101
|
+
loggers.map(&:level).should_not == [::Logging::LEVELS["debug"]] * 2
|
102
|
+
loggers.map(&:level).should == [::Logging::LEVELS["info"]] * 2
|
103
|
+
Adhearsion::Logging.level = :warn
|
104
|
+
loggers.map(&:level).should == [::Logging::LEVELS["warn"]] * 2
|
105
|
+
end
|
99
106
|
|
107
|
+
it 'should change all the Logger instance level' do
|
108
|
+
Foo.logger.level.should be Adhearsion::Logging::INFO
|
109
|
+
Adhearsion::Logging.logging_level = :fatal
|
110
|
+
Foo.logger.level.should be Adhearsion::Logging::FATAL
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'a new logger should have the :root logging level' do
|
114
|
+
Foo.logger.level.should be Adhearsion::Logging::INFO
|
115
|
+
Adhearsion::Logging.logging_level = :fatal
|
116
|
+
Foo::Bar.logger.level.should be Adhearsion::Logging::FATAL
|
117
|
+
end
|
118
|
+
|
119
|
+
it '#silence! should change the level to be FATAL' do
|
120
|
+
Adhearsion::Logging.silence!
|
121
|
+
Adhearsion::Logging.logging_level.should be(Adhearsion::Logging::FATAL)
|
122
|
+
end
|
123
|
+
|
124
|
+
it '#unsilence! should change the level to be INFO' do
|
125
|
+
Adhearsion::Logging.unsilence!
|
126
|
+
Adhearsion::Logging.logging_level.should be(Adhearsion::Logging::INFO)
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
100
130
|
end
|
@@ -20,27 +20,18 @@ module Adhearsion
|
|
20
20
|
|
21
21
|
let(:mock_call) { OutboundCall.new }
|
22
22
|
|
23
|
-
|
24
|
-
flexmock(OutboundCall).new_instances.should_receive(:dial).and_return true
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should create a new call and return it" do
|
28
|
-
mock_dial
|
29
|
-
OutboundCall.originate(to).should be_a OutboundCall
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should dial the call to the correct endpoint" do
|
23
|
+
it "should dial the call to the correct endpoint and return it" do
|
33
24
|
mock_call
|
34
25
|
flexmock(OutboundCall).should_receive(:new).and_return mock_call
|
35
|
-
flexmock(mock_call).should_receive(:dial).with(to, :from => 'foo').once
|
36
|
-
OutboundCall.originate
|
26
|
+
flexmock(mock_call.wrapped_object).should_receive(:dial).with(to, :from => 'foo').once
|
27
|
+
OutboundCall.originate(to, :from => 'foo').should be mock_call
|
37
28
|
end
|
38
29
|
|
39
30
|
it "should run through the router when the call is answered" do
|
40
31
|
mock_call
|
41
32
|
|
42
33
|
flexmock(OutboundCall).should_receive(:new).and_return mock_call
|
43
|
-
flexmock(mock_call).should_receive(:dial).once
|
34
|
+
flexmock(mock_call.wrapped_object).should_receive(:dial).once
|
44
35
|
|
45
36
|
mock_dispatcher = flexmock 'dispatcher'
|
46
37
|
mock_dispatcher.should_receive(:call).once.with mock_call
|
@@ -66,7 +57,7 @@ module Adhearsion
|
|
66
57
|
|
67
58
|
describe "#dial" do
|
68
59
|
def expect_message_waiting_for_response(message)
|
69
|
-
flexmock(subject).should_receive(:write_and_await_response).once.with(message, 60).and_return do
|
60
|
+
flexmock(subject.wrapped_object).should_receive(:write_and_await_response).once.with(message, 60).and_return do
|
70
61
|
message.call_id = call_id
|
71
62
|
message
|
72
63
|
end
|
@@ -115,7 +106,7 @@ module Adhearsion
|
|
115
106
|
|
116
107
|
describe "basic control commands" do
|
117
108
|
def expect_no_message_waiting_for_response
|
118
|
-
flexmock(subject).should_receive(:write_and_await_response).never
|
109
|
+
flexmock(subject.wrapped_object).should_receive(:write_and_await_response).never
|
119
110
|
end
|
120
111
|
|
121
112
|
describe '#accept' do
|
@@ -376,4 +376,22 @@ describe Adhearsion::Plugin do
|
|
376
376
|
|
377
377
|
end
|
378
378
|
|
379
|
+
describe "registering generators" do
|
380
|
+
TestGenerator1 = Class.new Adhearsion::Generators::Generator
|
381
|
+
TestGenerator2 = Class.new Adhearsion::Generators::Generator
|
382
|
+
|
383
|
+
after do
|
384
|
+
defined?(FooBar) and Object.send(:remove_const, :"FooBar")
|
385
|
+
end
|
386
|
+
|
387
|
+
it "should add the generator to the index" do
|
388
|
+
FooBar = Class.new Adhearsion::Plugin do
|
389
|
+
generators :gen1 => TestGenerator1, :gen2 => TestGenerator2
|
390
|
+
end
|
391
|
+
|
392
|
+
Adhearsion::Generators.mappings[:gen1].should be TestGenerator1
|
393
|
+
Adhearsion::Generators.mappings[:gen2].should be TestGenerator2
|
394
|
+
end
|
395
|
+
end
|
396
|
+
|
379
397
|
end
|
@@ -2,6 +2,10 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Adhearsion
|
4
4
|
describe Adhearsion::Process do
|
5
|
+
before :all do
|
6
|
+
Adhearsion.active_calls.clear!
|
7
|
+
end
|
8
|
+
|
5
9
|
before :each do
|
6
10
|
Adhearsion::Process.reset
|
7
11
|
end
|
@@ -23,7 +27,12 @@ module Adhearsion
|
|
23
27
|
flexmock(Adhearsion).should_receive(:active_calls).and_return calls
|
24
28
|
flexmock(Adhearsion::Process.instance).should_receive(:final_shutdown).once
|
25
29
|
calls = []
|
26
|
-
3.times
|
30
|
+
3.times do
|
31
|
+
calls << Thread.new do
|
32
|
+
sleep 1
|
33
|
+
calls.pop
|
34
|
+
end
|
35
|
+
end
|
27
36
|
Adhearsion::Process.stop_when_zero_calls
|
28
37
|
calls.each { |thread| thread.join }
|
29
38
|
end
|
@@ -37,7 +37,7 @@ module Adhearsion
|
|
37
37
|
config.reconnect_timer = options[:reconnect_timer] if options.has_key?(:reconnect_timer)
|
38
38
|
end
|
39
39
|
|
40
|
-
Initializer.
|
40
|
+
Initializer.init
|
41
41
|
Adhearsion.config[:punchblock]
|
42
42
|
end
|
43
43
|
|
@@ -105,7 +105,7 @@ module Adhearsion
|
|
105
105
|
mock_connection.should_receive(:register_event_handler).once
|
106
106
|
flexmock(::Punchblock::Client).should_receive(:new).once.and_return mock_connection
|
107
107
|
flexmock(mock_connection).should_receive(:run).once
|
108
|
-
t = Thread.new { Initializer.
|
108
|
+
t = Thread.new { Initializer.init; Initializer.run }
|
109
109
|
t.join 5
|
110
110
|
t.status.should == "sleep"
|
111
111
|
Events.trigger_immediately :punchblock, ::Punchblock::Connection::Connected.new
|
@@ -191,6 +191,10 @@ module Adhearsion
|
|
191
191
|
context "when when Adhearsion::Process is in :running" do
|
192
192
|
let(:process_state) { :running }
|
193
193
|
|
194
|
+
it "should accept the call" do
|
195
|
+
mock_call.should_receive(:accept).once
|
196
|
+
end
|
197
|
+
|
194
198
|
it "should execute the dispatcher provided by the router" do
|
195
199
|
controller = Class.new
|
196
200
|
Adhearsion.router do
|
@@ -236,7 +240,6 @@ module Adhearsion
|
|
236
240
|
|
237
241
|
describe "dispatching a call event" do
|
238
242
|
let(:mock_event) { flexmock 'Event', :call_id => call_id }
|
239
|
-
let(:latch) { CountDownLatch.new 1 }
|
240
243
|
|
241
244
|
describe "with an active call" do
|
242
245
|
before do
|
@@ -250,9 +253,8 @@ module Adhearsion
|
|
250
253
|
end
|
251
254
|
|
252
255
|
it "should place the event in the call's inbox" do
|
253
|
-
mock_call.should_receive(
|
254
|
-
Initializer.dispatch_call_event mock_event
|
255
|
-
latch.wait(10).should be_true
|
256
|
+
mock_call.should_receive(:deliver_message!).once.with(mock_event)
|
257
|
+
Initializer.dispatch_call_event mock_event
|
256
258
|
end
|
257
259
|
end
|
258
260
|
|
data/spec/spec_helper.rb
CHANGED
@@ -46,7 +46,6 @@ end
|
|
46
46
|
|
47
47
|
Adhearsion::Logging.silence!
|
48
48
|
|
49
|
-
|
50
49
|
# Test modules for #mixin methods
|
51
50
|
module TestBiscuit
|
52
51
|
def throwadogabone
|
@@ -58,4 +57,8 @@ module MarmaladeIsBetterThanJam
|
|
58
57
|
def sobittersweet
|
59
58
|
true
|
60
59
|
end
|
61
|
-
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def new_uuid
|
63
|
+
UUID.new.generate.to_s
|
64
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module InitializerStubs
|
2
2
|
UNWANTED_BEHAVIOR = {
|
3
|
-
Adhearsion::Initializer => [:initialize_log_paths, :update_rails_env_var, :daemonize!, :require, :init_plugins, :load_lib_folder]
|
3
|
+
Adhearsion::Initializer => [:initialize_log_paths, :update_rails_env_var, :daemonize!, :require, :init_plugins, :run_plugins, :load_lib_folder]
|
4
4
|
} unless defined? UNWANTED_BEHAVIOR
|
5
5
|
|
6
6
|
def stub_behavior_for_initializer_with_no_path_changing_behavior
|
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.
|
4
|
+
version: 2.0.0.alpha3
|
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-
|
15
|
+
date: 2012-02-21 00:00:00.000000000Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: bundler
|
19
|
-
requirement: &
|
19
|
+
requirement: &2171040300 !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
22
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: 1.0.10
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *2171040300
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: punchblock
|
30
|
-
requirement: &
|
30
|
+
requirement: &2171038740 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -35,10 +35,10 @@ dependencies:
|
|
35
35
|
version: 0.9.1
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *2171038740
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: logging
|
41
|
-
requirement: &
|
41
|
+
requirement: &2171037040 !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: *
|
49
|
+
version_requirements: *2171037040
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: adhearsion-loquacious
|
52
|
-
requirement: &
|
52
|
+
requirement: &2171035680 !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: *
|
60
|
+
version_requirements: *2171035680
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: activesupport
|
63
|
-
requirement: &
|
63
|
+
requirement: &2171033860 !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: *
|
71
|
+
version_requirements: *2171033860
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: i18n
|
74
|
-
requirement: &
|
74
|
+
requirement: &2171032700 !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: *
|
82
|
+
version_requirements: *2171032700
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: json
|
85
|
-
requirement: &
|
85
|
+
requirement: &2171031740 !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: *
|
93
|
+
version_requirements: *2171031740
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: thor
|
96
|
-
requirement: &
|
96
|
+
requirement: &2171030940 !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: *
|
104
|
+
version_requirements: *2171030940
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: rake
|
107
|
-
requirement: &
|
107
|
+
requirement: &2171029980 !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: *
|
115
|
+
version_requirements: *2171029980
|
116
116
|
- !ruby/object:Gem::Dependency
|
117
117
|
name: pry
|
118
|
-
requirement: &
|
118
|
+
requirement: &2171029320 !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: *
|
126
|
+
version_requirements: *2171029320
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
128
|
name: uuid
|
129
|
-
requirement: &
|
129
|
+
requirement: &2171028220 !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: *
|
137
|
+
version_requirements: *2171028220
|
138
138
|
- !ruby/object:Gem::Dependency
|
139
139
|
name: future-resource
|
140
|
-
requirement: &
|
140
|
+
requirement: &2171026980 !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: *
|
148
|
+
version_requirements: *2171026980
|
149
149
|
- !ruby/object:Gem::Dependency
|
150
150
|
name: ruby_speech
|
151
|
-
requirement: &
|
151
|
+
requirement: &2171025760 !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: *
|
159
|
+
version_requirements: *2171025760
|
160
160
|
- !ruby/object:Gem::Dependency
|
161
161
|
name: countdownlatch
|
162
|
-
requirement: &
|
162
|
+
requirement: &2171024940 !ruby/object:Gem::Requirement
|
163
163
|
none: false
|
164
164
|
requirements:
|
165
165
|
- - ! '>='
|
@@ -167,10 +167,10 @@ dependencies:
|
|
167
167
|
version: '0'
|
168
168
|
type: :runtime
|
169
169
|
prerelease: false
|
170
|
-
version_requirements: *
|
170
|
+
version_requirements: *2171024940
|
171
171
|
- !ruby/object:Gem::Dependency
|
172
172
|
name: has-guarded-handlers
|
173
|
-
requirement: &
|
173
|
+
requirement: &2171023680 !ruby/object:Gem::Requirement
|
174
174
|
none: false
|
175
175
|
requirements:
|
176
176
|
- - ! '>='
|
@@ -178,10 +178,10 @@ dependencies:
|
|
178
178
|
version: 1.1.0
|
179
179
|
type: :runtime
|
180
180
|
prerelease: false
|
181
|
-
version_requirements: *
|
181
|
+
version_requirements: *2171023680
|
182
182
|
- !ruby/object:Gem::Dependency
|
183
183
|
name: girl_friday
|
184
|
-
requirement: &
|
184
|
+
requirement: &2171022800 !ruby/object:Gem::Requirement
|
185
185
|
none: false
|
186
186
|
requirements:
|
187
187
|
- - ! '>='
|
@@ -189,10 +189,10 @@ dependencies:
|
|
189
189
|
version: '0'
|
190
190
|
type: :runtime
|
191
191
|
prerelease: false
|
192
|
-
version_requirements: *
|
192
|
+
version_requirements: *2171022800
|
193
193
|
- !ruby/object:Gem::Dependency
|
194
194
|
name: ffi
|
195
|
-
requirement: &
|
195
|
+
requirement: &2171019620 !ruby/object:Gem::Requirement
|
196
196
|
none: false
|
197
197
|
requirements:
|
198
198
|
- - ! '>='
|
@@ -200,10 +200,21 @@ dependencies:
|
|
200
200
|
version: 1.0.11
|
201
201
|
type: :runtime
|
202
202
|
prerelease: false
|
203
|
-
version_requirements: *
|
203
|
+
version_requirements: *2171019620
|
204
|
+
- !ruby/object:Gem::Dependency
|
205
|
+
name: celluloid
|
206
|
+
requirement: &2171018040 !ruby/object:Gem::Requirement
|
207
|
+
none: false
|
208
|
+
requirements:
|
209
|
+
- - ! '>='
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: 0.9.0
|
212
|
+
type: :runtime
|
213
|
+
prerelease: false
|
214
|
+
version_requirements: *2171018040
|
204
215
|
- !ruby/object:Gem::Dependency
|
205
216
|
name: rspec
|
206
|
-
requirement: &
|
217
|
+
requirement: &2171016200 !ruby/object:Gem::Requirement
|
207
218
|
none: false
|
208
219
|
requirements:
|
209
220
|
- - ~>
|
@@ -211,10 +222,10 @@ dependencies:
|
|
211
222
|
version: 2.7.0
|
212
223
|
type: :development
|
213
224
|
prerelease: false
|
214
|
-
version_requirements: *
|
225
|
+
version_requirements: *2171016200
|
215
226
|
- !ruby/object:Gem::Dependency
|
216
227
|
name: flexmock
|
217
|
-
requirement: &
|
228
|
+
requirement: &2171015400 !ruby/object:Gem::Requirement
|
218
229
|
none: false
|
219
230
|
requirements:
|
220
231
|
- - ! '>='
|
@@ -222,10 +233,10 @@ dependencies:
|
|
222
233
|
version: '0'
|
223
234
|
type: :development
|
224
235
|
prerelease: false
|
225
|
-
version_requirements: *
|
236
|
+
version_requirements: *2171015400
|
226
237
|
- !ruby/object:Gem::Dependency
|
227
238
|
name: activerecord
|
228
|
-
requirement: &
|
239
|
+
requirement: &2171014100 !ruby/object:Gem::Requirement
|
229
240
|
none: false
|
230
241
|
requirements:
|
231
242
|
- - ! '>='
|
@@ -233,10 +244,10 @@ dependencies:
|
|
233
244
|
version: 3.0.10
|
234
245
|
type: :development
|
235
246
|
prerelease: false
|
236
|
-
version_requirements: *
|
247
|
+
version_requirements: *2171014100
|
237
248
|
- !ruby/object:Gem::Dependency
|
238
249
|
name: simplecov
|
239
|
-
requirement: &
|
250
|
+
requirement: &2171012660 !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: *
|
258
|
+
version_requirements: *2171012660
|
248
259
|
- !ruby/object:Gem::Dependency
|
249
260
|
name: simplecov-rcov
|
250
|
-
requirement: &
|
261
|
+
requirement: &2171010880 !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: *
|
269
|
+
version_requirements: *2171010880
|
259
270
|
- !ruby/object:Gem::Dependency
|
260
271
|
name: ci_reporter
|
261
|
-
requirement: &
|
272
|
+
requirement: &2171010080 !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: *
|
280
|
+
version_requirements: *2171010080
|
270
281
|
- !ruby/object:Gem::Dependency
|
271
282
|
name: yard
|
272
|
-
requirement: &
|
283
|
+
requirement: &2171009420 !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: *
|
291
|
+
version_requirements: *2171009420
|
281
292
|
- !ruby/object:Gem::Dependency
|
282
293
|
name: guard-rspec
|
283
|
-
requirement: &
|
294
|
+
requirement: &2171008880 !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: *
|
302
|
+
version_requirements: *2171008880
|
292
303
|
- !ruby/object:Gem::Dependency
|
293
304
|
name: guard-cucumber
|
294
|
-
requirement: &
|
305
|
+
requirement: &2170971440 !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: *
|
313
|
+
version_requirements: *2170971440
|
303
314
|
- !ruby/object:Gem::Dependency
|
304
315
|
name: ruby_gntp
|
305
|
-
requirement: &
|
316
|
+
requirement: &2170970720 !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: *
|
324
|
+
version_requirements: *2170970720
|
314
325
|
- !ruby/object:Gem::Dependency
|
315
326
|
name: cucumber
|
316
|
-
requirement: &
|
327
|
+
requirement: &2170969740 !ruby/object:Gem::Requirement
|
317
328
|
none: false
|
318
329
|
requirements:
|
319
330
|
- - ! '>='
|
@@ -321,10 +332,10 @@ dependencies:
|
|
321
332
|
version: '0'
|
322
333
|
type: :development
|
323
334
|
prerelease: false
|
324
|
-
version_requirements: *
|
335
|
+
version_requirements: *2170969740
|
325
336
|
- !ruby/object:Gem::Dependency
|
326
337
|
name: aruba
|
327
|
-
requirement: &
|
338
|
+
requirement: &2170968180 !ruby/object:Gem::Requirement
|
328
339
|
none: false
|
329
340
|
requirements:
|
330
341
|
- - ! '>='
|
@@ -332,7 +343,7 @@ dependencies:
|
|
332
343
|
version: '0'
|
333
344
|
type: :development
|
334
345
|
prerelease: false
|
335
|
-
version_requirements: *
|
346
|
+
version_requirements: *2170968180
|
336
347
|
description: Adhearsion is an open-source telephony development framework
|
337
348
|
email: dev&Adhearsion.com
|
338
349
|
executables:
|
@@ -354,7 +365,14 @@ files:
|
|
354
365
|
- bin/ahn
|
355
366
|
- cucumber.yml
|
356
367
|
- features/app_generator.feature
|
357
|
-
- features/
|
368
|
+
- features/cli_basic.feature
|
369
|
+
- features/cli_create.feature
|
370
|
+
- features/cli_daemon.feature
|
371
|
+
- features/cli_generate.feature
|
372
|
+
- features/cli_start.feature
|
373
|
+
- features/cli_stop.feature
|
374
|
+
- features/controller_generator.feature
|
375
|
+
- features/plugin_generator.feature
|
358
376
|
- features/step_definitions/app_generator_steps.rb
|
359
377
|
- features/step_definitions/cli_steps.rb
|
360
378
|
- features/support/aruba_helper.rb
|
@@ -393,8 +411,23 @@ files:
|
|
393
411
|
- lib/adhearsion/generators/app/templates/gitignore
|
394
412
|
- lib/adhearsion/generators/app/templates/lib/simon_game.rb
|
395
413
|
- lib/adhearsion/generators/app/templates/script/ahn
|
414
|
+
- lib/adhearsion/generators/controller/controller_generator.rb
|
415
|
+
- lib/adhearsion/generators/controller/templates/lib/controller.rb
|
416
|
+
- lib/adhearsion/generators/controller/templates/spec/controller_spec.rb
|
417
|
+
- lib/adhearsion/generators/generator.rb
|
418
|
+
- lib/adhearsion/generators/plugin/plugin_generator.rb
|
419
|
+
- lib/adhearsion/generators/plugin/templates/.gitignore
|
420
|
+
- lib/adhearsion/generators/plugin/templates/Gemfile.tt
|
421
|
+
- lib/adhearsion/generators/plugin/templates/README.md.tt
|
422
|
+
- lib/adhearsion/generators/plugin/templates/Rakefile.tt
|
423
|
+
- lib/adhearsion/generators/plugin/templates/lib/plugin-template.rb.tt
|
424
|
+
- lib/adhearsion/generators/plugin/templates/lib/plugin-template/controller_methods.rb.tt
|
425
|
+
- lib/adhearsion/generators/plugin/templates/lib/plugin-template/plugin.rb.tt
|
426
|
+
- lib/adhearsion/generators/plugin/templates/lib/plugin-template/version.rb.tt
|
427
|
+
- lib/adhearsion/generators/plugin/templates/plugin-template.gemspec.tt
|
428
|
+
- lib/adhearsion/generators/plugin/templates/spec/plugin-template/controller_methods_spec.rb.tt
|
429
|
+
- lib/adhearsion/generators/plugin/templates/spec/spec_helper.rb.tt
|
396
430
|
- lib/adhearsion/initializer.rb
|
397
|
-
- lib/adhearsion/initializer/logging.rb
|
398
431
|
- lib/adhearsion/linux_proc_name.rb
|
399
432
|
- lib/adhearsion/logging.rb
|
400
433
|
- lib/adhearsion/menu_dsl.rb
|
@@ -433,7 +466,7 @@ files:
|
|
433
466
|
- spec/adhearsion/configuration_spec.rb
|
434
467
|
- spec/adhearsion/console_spec.rb
|
435
468
|
- spec/adhearsion/events_spec.rb
|
436
|
-
- spec/adhearsion/
|
469
|
+
- spec/adhearsion/generators_spec.rb
|
437
470
|
- spec/adhearsion/initializer_spec.rb
|
438
471
|
- spec/adhearsion/logging_spec.rb
|
439
472
|
- spec/adhearsion/menu_dsl/calculated_match_collection_spec.rb
|
@@ -472,7 +505,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
472
505
|
version: '0'
|
473
506
|
segments:
|
474
507
|
- 0
|
475
|
-
hash: -
|
508
|
+
hash: -1198285695907666216
|
476
509
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
477
510
|
none: false
|
478
511
|
requirements:
|
@@ -487,7 +520,14 @@ specification_version: 3
|
|
487
520
|
summary: Adhearsion, open-source telephony development framework
|
488
521
|
test_files:
|
489
522
|
- features/app_generator.feature
|
490
|
-
- features/
|
523
|
+
- features/cli_basic.feature
|
524
|
+
- features/cli_create.feature
|
525
|
+
- features/cli_daemon.feature
|
526
|
+
- features/cli_generate.feature
|
527
|
+
- features/cli_start.feature
|
528
|
+
- features/cli_stop.feature
|
529
|
+
- features/controller_generator.feature
|
530
|
+
- features/plugin_generator.feature
|
491
531
|
- features/step_definitions/app_generator_steps.rb
|
492
532
|
- features/step_definitions/cli_steps.rb
|
493
533
|
- features/support/aruba_helper.rb
|
@@ -504,7 +544,7 @@ test_files:
|
|
504
544
|
- spec/adhearsion/configuration_spec.rb
|
505
545
|
- spec/adhearsion/console_spec.rb
|
506
546
|
- spec/adhearsion/events_spec.rb
|
507
|
-
- spec/adhearsion/
|
547
|
+
- spec/adhearsion/generators_spec.rb
|
508
548
|
- spec/adhearsion/initializer_spec.rb
|
509
549
|
- spec/adhearsion/logging_spec.rb
|
510
550
|
- spec/adhearsion/menu_dsl/calculated_match_collection_spec.rb
|