adhearsion 2.3.5 → 2.4.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG.md +14 -0
- data/Gemfile +2 -0
- data/README.markdown +21 -2
- data/adhearsion.gemspec +5 -4
- data/features/cli_plugin.feature +41 -0
- data/features/cli_start.feature +12 -4
- data/features/step_definitions/cli_steps.rb +12 -0
- data/features/support/env.rb +1 -1
- data/features/support/utils.rb +0 -1
- data/lib/adhearsion.rb +4 -1
- data/lib/adhearsion/call.rb +92 -22
- data/lib/adhearsion/call_controller.rb +19 -15
- data/lib/adhearsion/call_controller/dial.rb +157 -25
- data/lib/adhearsion/call_controller/menu_dsl/menu_builder.rb +8 -0
- data/lib/adhearsion/call_controller/output/async_player.rb +1 -1
- data/lib/adhearsion/call_controller/output/formatter.rb +1 -1
- data/lib/adhearsion/call_controller/output/player.rb +1 -1
- data/lib/adhearsion/calls.rb +2 -0
- data/lib/adhearsion/cli_commands.rb +3 -163
- data/lib/adhearsion/cli_commands/ahn_command.rb +141 -0
- data/lib/adhearsion/cli_commands/plugin_command.rb +74 -0
- data/lib/adhearsion/cli_commands/thor_errors.rb +36 -0
- data/lib/adhearsion/console.rb +14 -6
- data/lib/adhearsion/generators/app/templates/spec/call_controllers/simon_game_spec.rb +36 -36
- data/lib/adhearsion/generators/controller/templates/spec/controller_spec.rb +1 -1
- data/lib/adhearsion/generators/plugin/templates/plugin-template.gemspec.tt +0 -1
- data/lib/adhearsion/generators/plugin/templates/spec/plugin-template/controller_methods_spec.rb.tt +1 -1
- data/lib/adhearsion/generators/plugin/templates/spec/spec_helper.rb.tt +0 -1
- data/lib/adhearsion/logging.rb +5 -1
- data/lib/adhearsion/outbound_call.rb +16 -0
- data/lib/adhearsion/punchblock_plugin.rb +0 -2
- data/lib/adhearsion/punchblock_plugin/initializer.rb +7 -12
- data/lib/adhearsion/version.rb +1 -1
- data/spec/adhearsion/call_controller/dial_spec.rb +785 -32
- data/spec/adhearsion/call_controller/menu_dsl/menu_builder_spec.rb +10 -0
- data/spec/adhearsion/call_controller/output/async_player_spec.rb +1 -1
- data/spec/adhearsion/call_controller/output/player_spec.rb +1 -1
- data/spec/adhearsion/call_controller/output_spec.rb +3 -3
- data/spec/adhearsion/call_controller/record_spec.rb +1 -1
- data/spec/adhearsion/call_controller_spec.rb +13 -9
- data/spec/adhearsion/call_spec.rb +216 -51
- data/spec/adhearsion/calls_spec.rb +1 -1
- data/spec/adhearsion/console_spec.rb +20 -9
- data/spec/adhearsion/outbound_call_spec.rb +40 -6
- data/spec/adhearsion/punchblock_plugin/initializer_spec.rb +9 -21
- data/spec/adhearsion/punchblock_plugin_spec.rb +1 -1
- data/spec/adhearsion/router_spec.rb +1 -1
- data/spec/spec_helper.rb +11 -15
- data/spec/support/call_controller_test_helpers.rb +2 -2
- data/spec/support/punchblock_mocks.rb +2 -2
- metadata +41 -16
@@ -125,7 +125,7 @@ module Adhearsion
|
|
125
125
|
|
126
126
|
it "is sends a hangup command for the call" do
|
127
127
|
call_id = call.id
|
128
|
-
PunchblockPlugin.stub :client =>
|
128
|
+
PunchblockPlugin.stub :client => double('Client')
|
129
129
|
PunchblockPlugin.client.should_receive(:execute_command).once.with(Punchblock::Command::Hangup.new, :async => true, :call_id => call_id)
|
130
130
|
|
131
131
|
subject << call
|
@@ -15,15 +15,17 @@ module Adhearsion
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
unless defined? JRUBY_VERSION # These tests are not valid on JRuby
|
19
|
+
describe 'testing for readline' do
|
20
|
+
it 'should return false when detecting readline' do
|
21
|
+
Readline.should_receive(:emacs_editing_mode).once.and_return true
|
22
|
+
Console.cruby_with_readline?.should be true
|
23
|
+
end
|
23
24
|
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
it 'should return true when detecting libedit' do
|
26
|
+
Readline.should_receive(:emacs_editing_mode).once.and_raise NotImplementedError
|
27
|
+
Console.cruby_with_readline?.should be false
|
28
|
+
end
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
@@ -64,12 +66,21 @@ module Adhearsion
|
|
64
66
|
end
|
65
67
|
end
|
66
68
|
|
69
|
+
describe "#originate" do
|
70
|
+
it "should be an alias for Adhearsion::OutboundCall.originate" do
|
71
|
+
foo = nil
|
72
|
+
Adhearsion::OutboundCall.should_receive(:originate).once.with(:foo, :bar).and_yield
|
73
|
+
Console.originate(:foo, :bar) { foo = :bar}
|
74
|
+
foo.should == :bar
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
67
78
|
describe "#take" do
|
68
79
|
let(:call) { Call.new }
|
69
80
|
let(:call_id) { rand.to_s }
|
70
81
|
|
71
82
|
before do
|
72
|
-
Adhearsion.active_calls.clear
|
83
|
+
Adhearsion.active_calls.clear
|
73
84
|
call.stub(:id => call_id)
|
74
85
|
end
|
75
86
|
|
@@ -9,13 +9,14 @@ module Adhearsion
|
|
9
9
|
its(:id) { should be_nil }
|
10
10
|
its(:variables) { should be == {} }
|
11
11
|
|
12
|
-
let(:mock_client) {
|
12
|
+
let(:mock_client) { double 'Punchblock Client' }
|
13
13
|
|
14
14
|
before do
|
15
15
|
PunchblockPlugin::Initializer.client = mock_client
|
16
16
|
end
|
17
17
|
|
18
18
|
its(:client) { should be mock_client }
|
19
|
+
its(:start_time) { should be nil }
|
19
20
|
|
20
21
|
describe ".originate" do
|
21
22
|
let(:to) { 'sip:foo@bar.com' }
|
@@ -86,7 +87,7 @@ module Adhearsion
|
|
86
87
|
end
|
87
88
|
|
88
89
|
describe "event handlers" do
|
89
|
-
let(:response) {
|
90
|
+
let(:response) { double 'Response' }
|
90
91
|
|
91
92
|
describe "for answered events" do
|
92
93
|
let(:event) { Punchblock::Event::Answered.new }
|
@@ -96,20 +97,43 @@ module Adhearsion
|
|
96
97
|
subject.on_answer { |event| response.call event }
|
97
98
|
subject << event
|
98
99
|
end
|
100
|
+
|
101
|
+
it "should record the call start time" do
|
102
|
+
originate_time = Time.local(2008, 9, 1, 12, 0, 0)
|
103
|
+
Timecop.freeze originate_time
|
104
|
+
subject.duration.should == 0.0
|
105
|
+
|
106
|
+
mid_point_time = Time.local(2008, 9, 1, 12, 0, 20)
|
107
|
+
Timecop.freeze mid_point_time
|
108
|
+
subject.duration.should == 0.0
|
109
|
+
|
110
|
+
answer_time = Time.local(2008, 9, 1, 12, 0, 40)
|
111
|
+
Timecop.freeze answer_time
|
112
|
+
subject << event
|
113
|
+
subject.start_time.should == answer_time
|
114
|
+
|
115
|
+
later_time = Time.local(2008, 9, 1, 12, 0, 50)
|
116
|
+
Timecop.freeze later_time
|
117
|
+
subject.duration.should == 10.0
|
118
|
+
end
|
99
119
|
end
|
100
120
|
end
|
101
121
|
|
102
122
|
describe "#dial" do
|
103
123
|
def expect_message_waiting_for_response(message)
|
104
124
|
subject.wrapped_object.should_receive(:write_and_await_response).once.with(message, 60).and_return do
|
125
|
+
message.transport = transport
|
105
126
|
message.target_call_id = call_id
|
127
|
+
message.domain = domain
|
106
128
|
message
|
107
129
|
end
|
108
130
|
end
|
109
131
|
|
110
|
-
let(:
|
111
|
-
let(:
|
112
|
-
let(:
|
132
|
+
let(:transport) { 'footransport' }
|
133
|
+
let(:call_id) { 'abc123' }
|
134
|
+
let(:domain) { 'rayo.net' }
|
135
|
+
let(:to) { '+1800 555-0199' }
|
136
|
+
let(:from) { '+1800 555-0122' }
|
113
137
|
|
114
138
|
let(:expected_dial_command) { Punchblock::Command::Dial.new(:to => to, :from => from) }
|
115
139
|
|
@@ -126,11 +150,21 @@ module Adhearsion
|
|
126
150
|
subject.dial_command.should be == expected_dial_command
|
127
151
|
end
|
128
152
|
|
129
|
-
it "should set the
|
153
|
+
it "should set the URI from the reference" do
|
154
|
+
subject.dial to, :from => from
|
155
|
+
subject.uri.should be == "footransport:abc123@rayo.net"
|
156
|
+
end
|
157
|
+
|
158
|
+
it "should set the call ID from the reference" do
|
130
159
|
subject.dial to, :from => from
|
131
160
|
subject.id.should be == call_id
|
132
161
|
end
|
133
162
|
|
163
|
+
it "should set the call domain from the reference" do
|
164
|
+
subject.dial to, :from => from
|
165
|
+
subject.domain.should be == domain
|
166
|
+
end
|
167
|
+
|
134
168
|
it "should set the to from the dial command" do
|
135
169
|
subject.dial to, :from => from
|
136
170
|
subject.to.should be == to
|
@@ -15,8 +15,6 @@ module Adhearsion
|
|
15
15
|
config.port = nil
|
16
16
|
config.certs_directory = nil
|
17
17
|
config.root_domain = nil
|
18
|
-
config.calls_domain = nil
|
19
|
-
config.mixers_domain = nil
|
20
18
|
config.connection_timeout = 60
|
21
19
|
config.reconnect_attempts = 1.0/0.0
|
22
20
|
config.reconnect_timer = 5
|
@@ -36,8 +34,6 @@ module Adhearsion
|
|
36
34
|
config.port = options[:port] if options.has_key?(:port)
|
37
35
|
config.certs_directory = options[:certs_directory] if options.has_key?(:certs_directory)
|
38
36
|
config.root_domain = options[:root_domain] if options.has_key?(:root_domain)
|
39
|
-
config.calls_domain = options[:calls_domain] if options.has_key?(:calls_domain)
|
40
|
-
config.mixers_domain = options[:mixers_domain] if options.has_key?(:mixers_domain)
|
41
37
|
config.connection_timeout = options[:connection_timeout] if options.has_key?(:connection_timeout)
|
42
38
|
config.reconnect_attempts = options[:reconnect_attempts] if options.has_key?(:reconnect_attempts)
|
43
39
|
config.reconnect_timer = options[:reconnect_timer] if options.has_key?(:reconnect_timer)
|
@@ -52,7 +48,7 @@ module Adhearsion
|
|
52
48
|
let(:call_id) { rand }
|
53
49
|
let(:offer) { Punchblock::Event::Offer.new :target_call_id => call_id }
|
54
50
|
let(:mock_call) { Call.new }
|
55
|
-
let(:mock_client) {
|
51
|
+
let(:mock_client) { double 'Client' }
|
56
52
|
|
57
53
|
before do
|
58
54
|
mock_call.stub :id => call_id
|
@@ -90,14 +86,6 @@ module Adhearsion
|
|
90
86
|
subject.root_domain.should be_nil
|
91
87
|
end
|
92
88
|
|
93
|
-
it "should set properly the calls_domain value" do
|
94
|
-
subject.calls_domain.should be_nil
|
95
|
-
end
|
96
|
-
|
97
|
-
it "should set properly the mixers_domain value" do
|
98
|
-
subject.mixers_domain.should be_nil
|
99
|
-
end
|
100
|
-
|
101
89
|
it "should properly set the reconnect_attempts value" do
|
102
90
|
subject.reconnect_attempts.should be == 1.0/0.0
|
103
91
|
end
|
@@ -123,14 +111,14 @@ module Adhearsion
|
|
123
111
|
end
|
124
112
|
|
125
113
|
it "starts the client with any overridden settings" do
|
126
|
-
Punchblock::Connection::XMPP.should_receive(:new).once.with(username: 'userb@127.0.0.1/foo', password: '123', host: 'foo.bar.com', port: 200, certs: '/foo/bar', connection_timeout: 20, root_domain: 'foo.com',
|
127
|
-
initialize_punchblock username: 'userb@127.0.0.1/foo', password: '123', host: 'foo.bar.com', port: 200, certs_directory: '/foo/bar', connection_timeout: 20, root_domain: 'foo.com',
|
114
|
+
Punchblock::Connection::XMPP.should_receive(:new).once.with(username: 'userb@127.0.0.1/foo', password: '123', host: 'foo.bar.com', port: 200, certs: '/foo/bar', connection_timeout: 20, root_domain: 'foo.com', media_engine: :swift, default_voice: :hal).and_return mock_client
|
115
|
+
initialize_punchblock username: 'userb@127.0.0.1/foo', password: '123', host: 'foo.bar.com', port: 200, certs_directory: '/foo/bar', connection_timeout: 20, root_domain: 'foo.com', media_engine: :swift, default_voice: :hal
|
128
116
|
end
|
129
117
|
|
130
118
|
describe "#connect" do
|
131
119
|
it 'should block until the connection is established' do
|
132
120
|
reset_default_config
|
133
|
-
mock_connection =
|
121
|
+
mock_connection = double :mock_connection
|
134
122
|
mock_connection.should_receive(:register_event_handler).once
|
135
123
|
Punchblock::Client.should_receive(:new).once.and_return mock_connection
|
136
124
|
mock_connection.should_receive(:run).once
|
@@ -184,7 +172,7 @@ module Adhearsion
|
|
184
172
|
end
|
185
173
|
|
186
174
|
describe 'using Asterisk' do
|
187
|
-
let(:overrides) { {:username => 'test', :password => '123', :host => 'foo.bar.com', :port => 200, :certs => nil, :connection_timeout => 20, :root_domain => 'foo.com', :
|
175
|
+
let(:overrides) { {:username => 'test', :password => '123', :host => 'foo.bar.com', :port => 200, :certs => nil, :connection_timeout => 20, :root_domain => 'foo.com', :media_engine => :swift, :default_voice => :hal} }
|
188
176
|
|
189
177
|
it 'should start an Asterisk PB connection' do
|
190
178
|
Punchblock::Connection::Asterisk.should_receive(:new).once.with(overrides).and_return mock_client
|
@@ -193,7 +181,7 @@ module Adhearsion
|
|
193
181
|
end
|
194
182
|
|
195
183
|
describe 'using FreeSWITCH' do
|
196
|
-
let(:overrides) { {:username => 'test', :password => '123', :host => 'foo.bar.com', :port => 200, :certs => nil, :connection_timeout => 20, :root_domain => 'foo.com', :
|
184
|
+
let(:overrides) { {:username => 'test', :password => '123', :host => 'foo.bar.com', :port => 200, :certs => nil, :connection_timeout => 20, :root_domain => 'foo.com', :media_engine => :swift, :default_voice => :hal} }
|
197
185
|
|
198
186
|
it 'should start a FreeSWITCH PB connection' do
|
199
187
|
Punchblock::Connection::Freeswitch.should_receive(:new).once.with(overrides).and_return mock_client
|
@@ -255,8 +243,8 @@ module Adhearsion
|
|
255
243
|
end
|
256
244
|
|
257
245
|
describe "dispatching a component event" do
|
258
|
-
let(:component) {
|
259
|
-
let(:mock_event) {
|
246
|
+
let(:component) { double 'ComponentNode' }
|
247
|
+
let(:mock_event) { double 'Event' }
|
260
248
|
|
261
249
|
before { mock_event.stub target_call_id: call_id, source: component }
|
262
250
|
|
@@ -271,7 +259,7 @@ module Adhearsion
|
|
271
259
|
end
|
272
260
|
|
273
261
|
describe "dispatching a call event" do
|
274
|
-
let(:mock_event) {
|
262
|
+
let(:mock_event) { double 'Event' }
|
275
263
|
|
276
264
|
before { mock_event.stub target_call_id: call_id }
|
277
265
|
|
@@ -13,7 +13,7 @@ module Adhearsion
|
|
13
13
|
describe '#execute_component' do
|
14
14
|
let(:message) { Punchblock::Command::Accept.new }
|
15
15
|
let(:response) { :foo }
|
16
|
-
let(:mock_client) {
|
16
|
+
let(:mock_client) { double 'Client' }
|
17
17
|
|
18
18
|
let(:execute_expectation) { PunchblockPlugin.client.should_receive(:execute_command).once }
|
19
19
|
|
data/spec/spec_helper.rb
CHANGED
@@ -2,27 +2,15 @@
|
|
2
2
|
|
3
3
|
$testing = true
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
require 'simplecov-rcov'
|
8
|
-
class SimpleCov::Formatter::MergedFormatter
|
9
|
-
def format(result)
|
10
|
-
SimpleCov::Formatter::HTMLFormatter.new.format(result)
|
11
|
-
SimpleCov::Formatter::RcovFormatter.new.format(result)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter
|
15
|
-
SimpleCov.start do
|
16
|
-
add_filter "/vendor/"
|
17
|
-
add_filter "/spec/"
|
18
|
-
end
|
19
|
-
end
|
5
|
+
require 'coveralls'
|
6
|
+
Coveralls.wear!
|
20
7
|
|
21
8
|
%w{
|
22
9
|
bundler/setup
|
23
10
|
active_support
|
24
11
|
stringio
|
25
12
|
countdownlatch
|
13
|
+
timecop
|
26
14
|
adhearsion
|
27
15
|
}.each { |f| require f }
|
28
16
|
|
@@ -39,6 +27,10 @@ RSpec.configure do |config|
|
|
39
27
|
config.run_all_when_everything_filtered = true
|
40
28
|
config.color_enabled = true
|
41
29
|
|
30
|
+
config.mock_with :rspec do |mocks|
|
31
|
+
mocks.add_stub_and_should_receive_to Celluloid::AbstractProxy, ThreadSafeArray
|
32
|
+
end
|
33
|
+
|
42
34
|
config.before :suite do
|
43
35
|
Adhearsion::Logging.start Adhearsion::Logging.default_appenders, :trace, Adhearsion.config.platform.logging.formatter
|
44
36
|
end
|
@@ -46,6 +38,10 @@ RSpec.configure do |config|
|
|
46
38
|
config.before :each do
|
47
39
|
Adhearsion.router = nil
|
48
40
|
end
|
41
|
+
|
42
|
+
config.after :each do
|
43
|
+
Timecop.return
|
44
|
+
end
|
49
45
|
end
|
50
46
|
|
51
47
|
Adhearsion::Events.exeption do |e|
|
@@ -11,7 +11,7 @@ module CallControllerTestHelpers
|
|
11
11
|
test_case.subject { controller }
|
12
12
|
|
13
13
|
test_case.before do
|
14
|
-
call.stub :write_command => true, :id => call_id
|
14
|
+
call.wrapped_object.stub :write_command => true, :id => call_id
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -50,7 +50,7 @@ module CallControllerTestHelpers
|
|
50
50
|
|
51
51
|
def expect_input_component_complete_event(utterance)
|
52
52
|
complete_event = Punchblock::Event::Complete.new
|
53
|
-
complete_event.stub reason:
|
53
|
+
complete_event.stub reason: double(utterance: utterance, name: :input)
|
54
54
|
Punchblock::Component::Input.any_instance.stub(complete?: true, complete_event: complete_event)
|
55
55
|
end
|
56
56
|
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
def mock_offer(id = nil, headers = {})
|
4
4
|
id ||= rand
|
5
|
-
|
6
|
-
offer.stub :call_id => id, :
|
5
|
+
double("Offer: #{id}").tap do |offer|
|
6
|
+
offer.stub :call_id => id, :headers => headers
|
7
7
|
offer.as_null_object
|
8
8
|
end
|
9
9
|
end
|
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.
|
4
|
+
version: 2.4.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jay Phillips
|
@@ -11,22 +11,28 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-
|
14
|
+
date: 2013-08-21 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 3.0.0
|
23
|
+
- - <
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 5.0.0
|
23
26
|
type: :runtime
|
24
27
|
prerelease: false
|
25
28
|
version_requirements: !ruby/object:Gem::Requirement
|
26
29
|
requirements:
|
27
|
-
- -
|
30
|
+
- - '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.0.0
|
33
|
+
- - <
|
28
34
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
35
|
+
version: 5.0.0
|
30
36
|
- !ruby/object:Gem::Dependency
|
31
37
|
name: adhearsion-loquacious
|
32
38
|
requirement: !ruby/object:Gem::Requirement
|
@@ -173,14 +179,14 @@ dependencies:
|
|
173
179
|
requirements:
|
174
180
|
- - ~>
|
175
181
|
- !ruby/object:Gem::Version
|
176
|
-
version:
|
182
|
+
version: 2.0.0.beta1
|
177
183
|
type: :runtime
|
178
184
|
prerelease: false
|
179
185
|
version_requirements: !ruby/object:Gem::Requirement
|
180
186
|
requirements:
|
181
187
|
- - ~>
|
182
188
|
- !ruby/object:Gem::Version
|
183
|
-
version:
|
189
|
+
version: 2.0.0.beta1
|
184
190
|
- !ruby/object:Gem::Dependency
|
185
191
|
name: rake
|
186
192
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,14 +207,14 @@ dependencies:
|
|
201
207
|
requirements:
|
202
208
|
- - ~>
|
203
209
|
- !ruby/object:Gem::Version
|
204
|
-
version: '
|
210
|
+
version: '2.0'
|
205
211
|
type: :runtime
|
206
212
|
prerelease: false
|
207
213
|
version_requirements: !ruby/object:Gem::Requirement
|
208
214
|
requirements:
|
209
215
|
- - ~>
|
210
216
|
- !ruby/object:Gem::Version
|
211
|
-
version: '
|
217
|
+
version: '2.0'
|
212
218
|
- !ruby/object:Gem::Dependency
|
213
219
|
name: thor
|
214
220
|
requirement: !ruby/object:Gem::Requirement
|
@@ -308,7 +314,7 @@ dependencies:
|
|
308
314
|
- !ruby/object:Gem::Version
|
309
315
|
version: '2.11'
|
310
316
|
- !ruby/object:Gem::Dependency
|
311
|
-
name:
|
317
|
+
name: simplecov
|
312
318
|
requirement: !ruby/object:Gem::Requirement
|
313
319
|
requirements:
|
314
320
|
- - '>='
|
@@ -322,7 +328,7 @@ dependencies:
|
|
322
328
|
- !ruby/object:Gem::Version
|
323
329
|
version: '0'
|
324
330
|
- !ruby/object:Gem::Dependency
|
325
|
-
name: simplecov
|
331
|
+
name: simplecov-rcov
|
326
332
|
requirement: !ruby/object:Gem::Requirement
|
327
333
|
requirements:
|
328
334
|
- - '>='
|
@@ -336,7 +342,7 @@ dependencies:
|
|
336
342
|
- !ruby/object:Gem::Version
|
337
343
|
version: '0'
|
338
344
|
- !ruby/object:Gem::Dependency
|
339
|
-
name:
|
345
|
+
name: yard
|
340
346
|
requirement: !ruby/object:Gem::Requirement
|
341
347
|
requirements:
|
342
348
|
- - '>='
|
@@ -350,7 +356,21 @@ dependencies:
|
|
350
356
|
- !ruby/object:Gem::Version
|
351
357
|
version: '0'
|
352
358
|
- !ruby/object:Gem::Dependency
|
353
|
-
name:
|
359
|
+
name: coveralls
|
360
|
+
requirement: !ruby/object:Gem::Requirement
|
361
|
+
requirements:
|
362
|
+
- - '>='
|
363
|
+
- !ruby/object:Gem::Version
|
364
|
+
version: '0'
|
365
|
+
type: :development
|
366
|
+
prerelease: false
|
367
|
+
version_requirements: !ruby/object:Gem::Requirement
|
368
|
+
requirements:
|
369
|
+
- - '>='
|
370
|
+
- !ruby/object:Gem::Version
|
371
|
+
version: '0'
|
372
|
+
- !ruby/object:Gem::Dependency
|
373
|
+
name: timecop
|
354
374
|
requirement: !ruby/object:Gem::Requirement
|
355
375
|
requirements:
|
356
376
|
- - '>='
|
@@ -389,6 +409,7 @@ files:
|
|
389
409
|
- features/cli_create.feature
|
390
410
|
- features/cli_daemon.feature
|
391
411
|
- features/cli_generate.feature
|
412
|
+
- features/cli_plugin.feature
|
392
413
|
- features/cli_restart.feature
|
393
414
|
- features/cli_start.feature
|
394
415
|
- features/cli_stop.feature
|
@@ -423,6 +444,9 @@ files:
|
|
423
444
|
- lib/adhearsion/calls.rb
|
424
445
|
- lib/adhearsion/cli.rb
|
425
446
|
- lib/adhearsion/cli_commands.rb
|
447
|
+
- lib/adhearsion/cli_commands/ahn_command.rb
|
448
|
+
- lib/adhearsion/cli_commands/plugin_command.rb
|
449
|
+
- lib/adhearsion/cli_commands/thor_errors.rb
|
426
450
|
- lib/adhearsion/configuration.rb
|
427
451
|
- lib/adhearsion/console.rb
|
428
452
|
- lib/adhearsion/events.rb
|
@@ -547,9 +571,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
547
571
|
version: '0'
|
548
572
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
549
573
|
requirements:
|
550
|
-
- - '
|
574
|
+
- - '>'
|
551
575
|
- !ruby/object:Gem::Version
|
552
|
-
version:
|
576
|
+
version: 1.3.1
|
553
577
|
requirements: []
|
554
578
|
rubyforge_project:
|
555
579
|
rubygems_version: 2.0.3
|
@@ -562,6 +586,7 @@ test_files:
|
|
562
586
|
- features/cli_create.feature
|
563
587
|
- features/cli_daemon.feature
|
564
588
|
- features/cli_generate.feature
|
589
|
+
- features/cli_plugin.feature
|
565
590
|
- features/cli_restart.feature
|
566
591
|
- features/cli_start.feature
|
567
592
|
- features/cli_stop.feature
|