adhearsion 2.3.3 → 2.3.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +4 -0
- data/adhearsion.gemspec +0 -1
- data/lib/adhearsion/call_controller/dial.rb +1 -1
- data/lib/adhearsion/events.rb +4 -5
- data/lib/adhearsion/initializer.rb +52 -34
- data/lib/adhearsion/punchblock_plugin.rb +1 -0
- data/lib/adhearsion/punchblock_plugin/initializer.rb +3 -0
- data/lib/adhearsion/version.rb +1 -1
- data/spec/adhearsion/events_spec.rb +8 -0
- data/spec/adhearsion/punchblock_plugin/initializer_spec.rb +10 -6
- metadata +91 -47
- checksums.yaml +0 -7
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# [develop](https://github.com/adhearsion/adhearsion)
|
2
2
|
|
3
|
+
# [2.3.4](https://github.com/adhearsion/adhearsion/compare/v2.3.3...v2.3.4) - [2013-05-14](https://rubygems.org/gems/adhearsion/versions/2.3.4)
|
4
|
+
* Bugfix: Process signals safely in the main thread - fixes shutdown on Ruby 2.0
|
5
|
+
* Bugfix: Expose the cert store directory in Punchblock config
|
6
|
+
|
3
7
|
# [2.3.3](https://github.com/adhearsion/adhearsion/compare/v2.3.2...v2.3.3) - [2013-05-08](https://rubygems.org/gems/adhearsion/versions/2.3.3)
|
4
8
|
* Bugfix: Support Celluloid 0.14's new block semantics
|
5
9
|
|
data/adhearsion.gemspec
CHANGED
@@ -24,7 +24,6 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_runtime_dependency 'countdownlatch'
|
25
25
|
s.add_runtime_dependency 'deep_merge'
|
26
26
|
s.add_runtime_dependency 'ffi', ["~> 1.0"]
|
27
|
-
s.add_runtime_dependency 'future-resource', ["~> 1.0"]
|
28
27
|
s.add_runtime_dependency 'girl_friday'
|
29
28
|
s.add_runtime_dependency 'has-guarded-handlers', ["~> 1.5"]
|
30
29
|
s.add_runtime_dependency 'jruby-openssl' if RUBY_PLATFORM == 'java'
|
@@ -34,7 +34,7 @@ module Adhearsion
|
|
34
34
|
# i.e. timeout after :for if no one answers the call
|
35
35
|
#
|
36
36
|
# @option options [CallController] :confirm the controller to execute on answered outbound calls to give an opportunity to screen the call. The calls will be joined if the outbound call is still active after this controller completes.
|
37
|
-
# @option options [Hash] :confirm_metadata Metadata to set on the confirmation controller before executing it.
|
37
|
+
# @option options [Hash] :confirm_metadata Metadata to set on the confirmation controller before executing it. This is shared between all calls if dialing multiple endpoints; if you care about it being mutated, you should provide an immutable value (using eg https://github.com/harukizaemon/hamster).
|
38
38
|
#
|
39
39
|
# @example Make a call to the PSTN using my SIP provider for VoIP termination
|
40
40
|
# dial "SIP/19095551001@my.sip.voip.terminator.us"
|
data/lib/adhearsion/events.rb
CHANGED
@@ -15,8 +15,8 @@ module Adhearsion
|
|
15
15
|
instance.send method_name, *args, &block
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
instance.respond_to?
|
18
|
+
def respond_to_missing?(method_name, include_private = false)
|
19
|
+
instance.respond_to? method_name, include_private
|
20
20
|
end
|
21
21
|
|
22
22
|
def instance
|
@@ -73,9 +73,8 @@ module Adhearsion
|
|
73
73
|
register_handler method_name, *args, &block
|
74
74
|
end
|
75
75
|
|
76
|
-
def
|
77
|
-
|
78
|
-
super
|
76
|
+
def respond_to_missing?(method_name, include_private = false)
|
77
|
+
instance_variable_defined?(:@handlers) && @handlers.has_key?(method_name)
|
79
78
|
end
|
80
79
|
|
81
80
|
alias :register_callback :register_handler
|
@@ -38,33 +38,35 @@ module Adhearsion
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def start
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
41
|
+
catch :boot_aborted do
|
42
|
+
resolve_pid_file_path
|
43
|
+
load_lib_folder
|
44
|
+
load_config_file
|
45
|
+
initialize_log_paths
|
46
|
+
|
47
|
+
if should_daemonize?
|
48
|
+
daemonize!
|
49
|
+
else
|
50
|
+
create_pid_file
|
51
|
+
end
|
51
52
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
53
|
+
Adhearsion.statistics
|
54
|
+
start_logging
|
55
|
+
debugging_log
|
56
|
+
launch_console if need_console?
|
57
|
+
catch_termination_signal
|
58
|
+
set_ahn_proc_name
|
59
|
+
initialize_exception_logger
|
60
|
+
update_rails_env_var
|
61
|
+
init_plugins
|
61
62
|
|
62
|
-
|
63
|
-
|
63
|
+
run_plugins
|
64
|
+
trigger_after_initialized_hooks
|
64
65
|
|
65
|
-
|
66
|
+
Adhearsion::Process.booted if Adhearsion.status == :booting
|
66
67
|
|
67
|
-
|
68
|
+
logger.info "Adhearsion v#{Adhearsion::VERSION} initialized in \"#{Adhearsion.config.platform.environment}\"!" if Adhearsion.status == :running
|
69
|
+
end
|
68
70
|
|
69
71
|
# This method will block until all important threads have finished.
|
70
72
|
# When it does, the process will exit.
|
@@ -130,24 +132,40 @@ module Adhearsion
|
|
130
132
|
end
|
131
133
|
|
132
134
|
def catch_termination_signal
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
135
|
+
self_read, self_write = IO.pipe
|
136
|
+
|
137
|
+
%w(INT TERM HUP ALRM ABRT).each do |sig|
|
138
|
+
trap sig do
|
139
|
+
self_write.puts sig
|
137
140
|
end
|
138
141
|
end
|
139
142
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
+
Thread.new do
|
144
|
+
begin
|
145
|
+
while readable_io = IO.select([self_read])
|
146
|
+
signal = readable_io.first[0].gets.strip
|
147
|
+
handle_signal signal
|
148
|
+
end
|
149
|
+
rescue => e
|
150
|
+
logger.error "Crashed reading signals"
|
151
|
+
logger.error e
|
152
|
+
exit 1
|
153
|
+
end
|
143
154
|
end
|
155
|
+
end
|
144
156
|
|
145
|
-
|
157
|
+
def handle_signal(signal)
|
158
|
+
case signal
|
159
|
+
when 'INT', 'TERM'
|
160
|
+
logger.info "Received SIG#{signal}. Shutting down."
|
161
|
+
Adhearsion::Process.shutdown
|
162
|
+
when 'HUP'
|
163
|
+
logger.debug "Received SIGHUP. Reopening logfiles."
|
164
|
+
Adhearsion::Logging.reopen_logs
|
165
|
+
when 'ALRM'
|
146
166
|
logger.debug "Received SIGALRM. Toggling trace logging."
|
147
167
|
Adhearsion::Logging.toggle_trace!
|
148
|
-
|
149
|
-
|
150
|
-
trap 'ABRT' do
|
168
|
+
when 'ABRT'
|
151
169
|
logger.info "Received ABRT signal. Forcing stop."
|
152
170
|
Adhearsion::Process.force_stop
|
153
171
|
end
|
@@ -18,6 +18,7 @@ module Adhearsion
|
|
18
18
|
password "1" , :desc => "Authentication credentials"
|
19
19
|
host nil , :desc => "Host punchblock needs to connect (where rayo/asterisk/freeswitch is located)"
|
20
20
|
port Proc.new { PunchblockPlugin.default_port_for_platform platform }, :transform => Proc.new { |v| PunchblockPlugin.validate_number v }, :desc => "Port punchblock needs to connect"
|
21
|
+
certs_directory nil , :desc => "Directory containing certificates for securing the connection."
|
21
22
|
root_domain nil , :desc => "The root domain at which to address the server"
|
22
23
|
calls_domain nil , :desc => "The domain at which to address calls"
|
23
24
|
mixers_domain nil , :desc => "The domain at which to address mixers"
|
@@ -32,6 +32,7 @@ module Adhearsion
|
|
32
32
|
:connection_timeout => self.config.connection_timeout,
|
33
33
|
:host => self.config.host,
|
34
34
|
:port => self.config.port,
|
35
|
+
:certs => self.config.certs_directory,
|
35
36
|
:root_domain => self.config.root_domain,
|
36
37
|
:calls_domain => self.config.calls_domain,
|
37
38
|
:mixers_domain => self.config.mixers_domain,
|
@@ -106,6 +107,8 @@ module Adhearsion
|
|
106
107
|
|
107
108
|
# Wait for the connection to establish
|
108
109
|
m.synchronize { blocker.wait m }
|
110
|
+
|
111
|
+
throw :boot_aborted if self.attempts >= self.config.reconnect_attempts
|
109
112
|
end
|
110
113
|
|
111
114
|
def connect_to_server
|
data/lib/adhearsion/version.rb
CHANGED
@@ -93,6 +93,14 @@ module Adhearsion
|
|
93
93
|
Events.clear_handlers :event, EventClass
|
94
94
|
end
|
95
95
|
|
96
|
+
it "should respond_to? any methods corresponding to classes for which handlers are defined" do
|
97
|
+
Events.register_handler :event_type_1 do |event|
|
98
|
+
end
|
99
|
+
|
100
|
+
Events.should respond_to(:event_type_1)
|
101
|
+
Events.should_not respond_to(:event_type_2)
|
102
|
+
end
|
103
|
+
|
96
104
|
describe '#draw' do
|
97
105
|
it "should allow registering handlers by type" do
|
98
106
|
result = nil
|
@@ -13,6 +13,7 @@ module Adhearsion
|
|
13
13
|
config.password = "1"
|
14
14
|
config.host = nil
|
15
15
|
config.port = nil
|
16
|
+
config.certs_directory = nil
|
16
17
|
config.root_domain = nil
|
17
18
|
config.calls_domain = nil
|
18
19
|
config.mixers_domain = nil
|
@@ -33,6 +34,7 @@ module Adhearsion
|
|
33
34
|
config.password = options[:password] if options.has_key?(:password)
|
34
35
|
config.host = options[:host] if options.has_key?(:host)
|
35
36
|
config.port = options[:port] if options.has_key?(:port)
|
37
|
+
config.certs_directory = options[:certs_directory] if options.has_key?(:certs_directory)
|
36
38
|
config.root_domain = options[:root_domain] if options.has_key?(:root_domain)
|
37
39
|
config.calls_domain = options[:calls_domain] if options.has_key?(:calls_domain)
|
38
40
|
config.mixers_domain = options[:mixers_domain] if options.has_key?(:mixers_domain)
|
@@ -80,6 +82,10 @@ module Adhearsion
|
|
80
82
|
subject.port.should be_nil
|
81
83
|
end
|
82
84
|
|
85
|
+
it "should set properly the certs_directory value" do
|
86
|
+
subject.certs_directory.should be_nil
|
87
|
+
end
|
88
|
+
|
83
89
|
it "should set properly the root_domain value" do
|
84
90
|
subject.root_domain.should be_nil
|
85
91
|
end
|
@@ -117,10 +123,8 @@ module Adhearsion
|
|
117
123
|
end
|
118
124
|
|
119
125
|
it "starts the client with any overridden settings" do
|
120
|
-
|
121
|
-
|
122
|
-
Punchblock::Connection::XMPP.should_receive(:new).once.with(overrides).and_return mock_client
|
123
|
-
initialize_punchblock overrides
|
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', calls_domain: 'call.foo.com', mixers_domain: 'mixer.foo.com', media_engine: :swift, default_voice: :hal).and_return mock_client
|
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', calls_domain: 'call.foo.com', mixers_domain: 'mixer.foo.com', media_engine: :swift, default_voice: :hal
|
124
128
|
end
|
125
129
|
|
126
130
|
describe "#connect" do
|
@@ -180,7 +184,7 @@ module Adhearsion
|
|
180
184
|
end
|
181
185
|
|
182
186
|
describe 'using Asterisk' do
|
183
|
-
let(:overrides) { {:username => 'test', :password => '123', :host => 'foo.bar.com', :port => 200, :connection_timeout => 20, :root_domain => 'foo.com', :calls_domain => 'call.foo.com', :mixers_domain => 'mixer.foo.com', :media_engine => :swift, :default_voice => :hal} }
|
187
|
+
let(:overrides) { {:username => 'test', :password => '123', :host => 'foo.bar.com', :port => 200, :certs => nil, :connection_timeout => 20, :root_domain => 'foo.com', :calls_domain => 'call.foo.com', :mixers_domain => 'mixer.foo.com', :media_engine => :swift, :default_voice => :hal} }
|
184
188
|
|
185
189
|
it 'should start an Asterisk PB connection' do
|
186
190
|
Punchblock::Connection::Asterisk.should_receive(:new).once.with(overrides).and_return mock_client
|
@@ -189,7 +193,7 @@ module Adhearsion
|
|
189
193
|
end
|
190
194
|
|
191
195
|
describe 'using FreeSWITCH' do
|
192
|
-
let(:overrides) { {:username => 'test', :password => '123', :host => 'foo.bar.com', :port => 200, :connection_timeout => 20, :root_domain => 'foo.com', :calls_domain => 'call.foo.com', :mixers_domain => 'mixer.foo.com', :media_engine => :swift, :default_voice => :hal} }
|
196
|
+
let(:overrides) { {:username => 'test', :password => '123', :host => 'foo.bar.com', :port => 200, :certs => nil, :connection_timeout => 20, :root_domain => 'foo.com', :calls_domain => 'call.foo.com', :mixers_domain => 'mixer.foo.com', :media_engine => :swift, :default_voice => :hal} }
|
193
197
|
|
194
198
|
it 'should start a FreeSWITCH PB connection' do
|
195
199
|
Punchblock::Connection::Freeswitch.should_receive(:new).once.with(overrides).and_return mock_client
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adhearsion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.4
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Jay Phillips
|
@@ -11,11 +12,12 @@ authors:
|
|
11
12
|
autorequire:
|
12
13
|
bindir: bin
|
13
14
|
cert_chain: []
|
14
|
-
date: 2013-05-
|
15
|
+
date: 2013-05-15 00:00:00.000000000 Z
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
17
18
|
name: activesupport
|
18
19
|
requirement: !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
19
21
|
requirements:
|
20
22
|
- - ~>
|
21
23
|
- !ruby/object:Gem::Version
|
@@ -23,6 +25,7 @@ dependencies:
|
|
23
25
|
type: :runtime
|
24
26
|
prerelease: false
|
25
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
26
29
|
requirements:
|
27
30
|
- - ~>
|
28
31
|
- !ruby/object:Gem::Version
|
@@ -30,6 +33,7 @@ dependencies:
|
|
30
33
|
- !ruby/object:Gem::Dependency
|
31
34
|
name: adhearsion-loquacious
|
32
35
|
requirement: !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
33
37
|
requirements:
|
34
38
|
- - ~>
|
35
39
|
- !ruby/object:Gem::Version
|
@@ -37,6 +41,7 @@ dependencies:
|
|
37
41
|
type: :runtime
|
38
42
|
prerelease: false
|
39
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
40
45
|
requirements:
|
41
46
|
- - ~>
|
42
47
|
- !ruby/object:Gem::Version
|
@@ -44,6 +49,7 @@ dependencies:
|
|
44
49
|
- !ruby/object:Gem::Dependency
|
45
50
|
name: bundler
|
46
51
|
requirement: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
47
53
|
requirements:
|
48
54
|
- - ~>
|
49
55
|
- !ruby/object:Gem::Version
|
@@ -51,6 +57,7 @@ dependencies:
|
|
51
57
|
type: :runtime
|
52
58
|
prerelease: false
|
53
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
54
61
|
requirements:
|
55
62
|
- - ~>
|
56
63
|
- !ruby/object:Gem::Version
|
@@ -58,6 +65,7 @@ dependencies:
|
|
58
65
|
- !ruby/object:Gem::Dependency
|
59
66
|
name: celluloid
|
60
67
|
requirement: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
61
69
|
requirements:
|
62
70
|
- - ~>
|
63
71
|
- !ruby/object:Gem::Version
|
@@ -65,6 +73,7 @@ dependencies:
|
|
65
73
|
type: :runtime
|
66
74
|
prerelease: false
|
67
75
|
version_requirements: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
68
77
|
requirements:
|
69
78
|
- - ~>
|
70
79
|
- !ruby/object:Gem::Version
|
@@ -72,34 +81,39 @@ dependencies:
|
|
72
81
|
- !ruby/object:Gem::Dependency
|
73
82
|
name: countdownlatch
|
74
83
|
requirement: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
75
85
|
requirements:
|
76
|
-
- - '>='
|
86
|
+
- - ! '>='
|
77
87
|
- !ruby/object:Gem::Version
|
78
88
|
version: '0'
|
79
89
|
type: :runtime
|
80
90
|
prerelease: false
|
81
91
|
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
82
93
|
requirements:
|
83
|
-
- - '>='
|
94
|
+
- - ! '>='
|
84
95
|
- !ruby/object:Gem::Version
|
85
96
|
version: '0'
|
86
97
|
- !ruby/object:Gem::Dependency
|
87
98
|
name: deep_merge
|
88
99
|
requirement: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
89
101
|
requirements:
|
90
|
-
- - '>='
|
102
|
+
- - ! '>='
|
91
103
|
- !ruby/object:Gem::Version
|
92
104
|
version: '0'
|
93
105
|
type: :runtime
|
94
106
|
prerelease: false
|
95
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
96
109
|
requirements:
|
97
|
-
- - '>='
|
110
|
+
- - ! '>='
|
98
111
|
- !ruby/object:Gem::Version
|
99
112
|
version: '0'
|
100
113
|
- !ruby/object:Gem::Dependency
|
101
114
|
name: ffi
|
102
115
|
requirement: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
103
117
|
requirements:
|
104
118
|
- - ~>
|
105
119
|
- !ruby/object:Gem::Version
|
@@ -107,20 +121,7 @@ dependencies:
|
|
107
121
|
type: :runtime
|
108
122
|
prerelease: false
|
109
123
|
version_requirements: !ruby/object:Gem::Requirement
|
110
|
-
|
111
|
-
- - ~>
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: '1.0'
|
114
|
-
- !ruby/object:Gem::Dependency
|
115
|
-
name: future-resource
|
116
|
-
requirement: !ruby/object:Gem::Requirement
|
117
|
-
requirements:
|
118
|
-
- - ~>
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version: '1.0'
|
121
|
-
type: :runtime
|
122
|
-
prerelease: false
|
123
|
-
version_requirements: !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
124
125
|
requirements:
|
125
126
|
- - ~>
|
126
127
|
- !ruby/object:Gem::Version
|
@@ -128,20 +129,23 @@ dependencies:
|
|
128
129
|
- !ruby/object:Gem::Dependency
|
129
130
|
name: girl_friday
|
130
131
|
requirement: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
131
133
|
requirements:
|
132
|
-
- - '>='
|
134
|
+
- - ! '>='
|
133
135
|
- !ruby/object:Gem::Version
|
134
136
|
version: '0'
|
135
137
|
type: :runtime
|
136
138
|
prerelease: false
|
137
139
|
version_requirements: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
138
141
|
requirements:
|
139
|
-
- - '>='
|
142
|
+
- - ! '>='
|
140
143
|
- !ruby/object:Gem::Version
|
141
144
|
version: '0'
|
142
145
|
- !ruby/object:Gem::Dependency
|
143
146
|
name: has-guarded-handlers
|
144
147
|
requirement: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
145
149
|
requirements:
|
146
150
|
- - ~>
|
147
151
|
- !ruby/object:Gem::Version
|
@@ -149,6 +153,7 @@ dependencies:
|
|
149
153
|
type: :runtime
|
150
154
|
prerelease: false
|
151
155
|
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
none: false
|
152
157
|
requirements:
|
153
158
|
- - ~>
|
154
159
|
- !ruby/object:Gem::Version
|
@@ -156,6 +161,7 @@ dependencies:
|
|
156
161
|
- !ruby/object:Gem::Dependency
|
157
162
|
name: logging
|
158
163
|
requirement: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
159
165
|
requirements:
|
160
166
|
- - ~>
|
161
167
|
- !ruby/object:Gem::Version
|
@@ -163,6 +169,7 @@ dependencies:
|
|
163
169
|
type: :runtime
|
164
170
|
prerelease: false
|
165
171
|
version_requirements: !ruby/object:Gem::Requirement
|
172
|
+
none: false
|
166
173
|
requirements:
|
167
174
|
- - ~>
|
168
175
|
- !ruby/object:Gem::Version
|
@@ -170,20 +177,23 @@ dependencies:
|
|
170
177
|
- !ruby/object:Gem::Dependency
|
171
178
|
name: pry
|
172
179
|
requirement: !ruby/object:Gem::Requirement
|
180
|
+
none: false
|
173
181
|
requirements:
|
174
|
-
- - '>='
|
182
|
+
- - ! '>='
|
175
183
|
- !ruby/object:Gem::Version
|
176
184
|
version: '0'
|
177
185
|
type: :runtime
|
178
186
|
prerelease: false
|
179
187
|
version_requirements: !ruby/object:Gem::Requirement
|
188
|
+
none: false
|
180
189
|
requirements:
|
181
|
-
- - '>='
|
190
|
+
- - ! '>='
|
182
191
|
- !ruby/object:Gem::Version
|
183
192
|
version: '0'
|
184
193
|
- !ruby/object:Gem::Dependency
|
185
194
|
name: punchblock
|
186
195
|
requirement: !ruby/object:Gem::Requirement
|
196
|
+
none: false
|
187
197
|
requirements:
|
188
198
|
- - ~>
|
189
199
|
- !ruby/object:Gem::Version
|
@@ -191,6 +201,7 @@ dependencies:
|
|
191
201
|
type: :runtime
|
192
202
|
prerelease: false
|
193
203
|
version_requirements: !ruby/object:Gem::Requirement
|
204
|
+
none: false
|
194
205
|
requirements:
|
195
206
|
- - ~>
|
196
207
|
- !ruby/object:Gem::Version
|
@@ -198,20 +209,23 @@ dependencies:
|
|
198
209
|
- !ruby/object:Gem::Dependency
|
199
210
|
name: rake
|
200
211
|
requirement: !ruby/object:Gem::Requirement
|
212
|
+
none: false
|
201
213
|
requirements:
|
202
|
-
- - '>='
|
214
|
+
- - ! '>='
|
203
215
|
- !ruby/object:Gem::Version
|
204
216
|
version: '0'
|
205
217
|
type: :runtime
|
206
218
|
prerelease: false
|
207
219
|
version_requirements: !ruby/object:Gem::Requirement
|
220
|
+
none: false
|
208
221
|
requirements:
|
209
|
-
- - '>='
|
222
|
+
- - ! '>='
|
210
223
|
- !ruby/object:Gem::Version
|
211
224
|
version: '0'
|
212
225
|
- !ruby/object:Gem::Dependency
|
213
226
|
name: ruby_speech
|
214
227
|
requirement: !ruby/object:Gem::Requirement
|
228
|
+
none: false
|
215
229
|
requirements:
|
216
230
|
- - ~>
|
217
231
|
- !ruby/object:Gem::Version
|
@@ -219,6 +233,7 @@ dependencies:
|
|
219
233
|
type: :runtime
|
220
234
|
prerelease: false
|
221
235
|
version_requirements: !ruby/object:Gem::Requirement
|
236
|
+
none: false
|
222
237
|
requirements:
|
223
238
|
- - ~>
|
224
239
|
- !ruby/object:Gem::Version
|
@@ -226,6 +241,7 @@ dependencies:
|
|
226
241
|
- !ruby/object:Gem::Dependency
|
227
242
|
name: thor
|
228
243
|
requirement: !ruby/object:Gem::Requirement
|
244
|
+
none: false
|
229
245
|
requirements:
|
230
246
|
- - ~>
|
231
247
|
- !ruby/object:Gem::Version
|
@@ -233,6 +249,7 @@ dependencies:
|
|
233
249
|
type: :runtime
|
234
250
|
prerelease: false
|
235
251
|
version_requirements: !ruby/object:Gem::Requirement
|
252
|
+
none: false
|
236
253
|
requirements:
|
237
254
|
- - ~>
|
238
255
|
- !ruby/object:Gem::Version
|
@@ -240,6 +257,7 @@ dependencies:
|
|
240
257
|
- !ruby/object:Gem::Dependency
|
241
258
|
name: aruba
|
242
259
|
requirement: !ruby/object:Gem::Requirement
|
260
|
+
none: false
|
243
261
|
requirements:
|
244
262
|
- - ~>
|
245
263
|
- !ruby/object:Gem::Version
|
@@ -247,6 +265,7 @@ dependencies:
|
|
247
265
|
type: :development
|
248
266
|
prerelease: false
|
249
267
|
version_requirements: !ruby/object:Gem::Requirement
|
268
|
+
none: false
|
250
269
|
requirements:
|
251
270
|
- - ~>
|
252
271
|
- !ruby/object:Gem::Version
|
@@ -254,62 +273,71 @@ dependencies:
|
|
254
273
|
- !ruby/object:Gem::Dependency
|
255
274
|
name: ci_reporter
|
256
275
|
requirement: !ruby/object:Gem::Requirement
|
276
|
+
none: false
|
257
277
|
requirements:
|
258
|
-
- - '>='
|
278
|
+
- - ! '>='
|
259
279
|
- !ruby/object:Gem::Version
|
260
280
|
version: '0'
|
261
281
|
type: :development
|
262
282
|
prerelease: false
|
263
283
|
version_requirements: !ruby/object:Gem::Requirement
|
284
|
+
none: false
|
264
285
|
requirements:
|
265
|
-
- - '>='
|
286
|
+
- - ! '>='
|
266
287
|
- !ruby/object:Gem::Version
|
267
288
|
version: '0'
|
268
289
|
- !ruby/object:Gem::Dependency
|
269
290
|
name: cucumber
|
270
291
|
requirement: !ruby/object:Gem::Requirement
|
292
|
+
none: false
|
271
293
|
requirements:
|
272
|
-
- - '>='
|
294
|
+
- - ! '>='
|
273
295
|
- !ruby/object:Gem::Version
|
274
296
|
version: '0'
|
275
297
|
type: :development
|
276
298
|
prerelease: false
|
277
299
|
version_requirements: !ruby/object:Gem::Requirement
|
300
|
+
none: false
|
278
301
|
requirements:
|
279
|
-
- - '>='
|
302
|
+
- - ! '>='
|
280
303
|
- !ruby/object:Gem::Version
|
281
304
|
version: '0'
|
282
305
|
- !ruby/object:Gem::Dependency
|
283
306
|
name: guard-cucumber
|
284
307
|
requirement: !ruby/object:Gem::Requirement
|
308
|
+
none: false
|
285
309
|
requirements:
|
286
|
-
- - '>='
|
310
|
+
- - ! '>='
|
287
311
|
- !ruby/object:Gem::Version
|
288
312
|
version: '0'
|
289
313
|
type: :development
|
290
314
|
prerelease: false
|
291
315
|
version_requirements: !ruby/object:Gem::Requirement
|
316
|
+
none: false
|
292
317
|
requirements:
|
293
|
-
- - '>='
|
318
|
+
- - ! '>='
|
294
319
|
- !ruby/object:Gem::Version
|
295
320
|
version: '0'
|
296
321
|
- !ruby/object:Gem::Dependency
|
297
322
|
name: guard-rspec
|
298
323
|
requirement: !ruby/object:Gem::Requirement
|
324
|
+
none: false
|
299
325
|
requirements:
|
300
|
-
- - '>='
|
326
|
+
- - ! '>='
|
301
327
|
- !ruby/object:Gem::Version
|
302
328
|
version: '0'
|
303
329
|
type: :development
|
304
330
|
prerelease: false
|
305
331
|
version_requirements: !ruby/object:Gem::Requirement
|
332
|
+
none: false
|
306
333
|
requirements:
|
307
|
-
- - '>='
|
334
|
+
- - ! '>='
|
308
335
|
- !ruby/object:Gem::Version
|
309
336
|
version: '0'
|
310
337
|
- !ruby/object:Gem::Dependency
|
311
338
|
name: rspec
|
312
339
|
requirement: !ruby/object:Gem::Requirement
|
340
|
+
none: false
|
313
341
|
requirements:
|
314
342
|
- - ~>
|
315
343
|
- !ruby/object:Gem::Version
|
@@ -317,6 +345,7 @@ dependencies:
|
|
317
345
|
type: :development
|
318
346
|
prerelease: false
|
319
347
|
version_requirements: !ruby/object:Gem::Requirement
|
348
|
+
none: false
|
320
349
|
requirements:
|
321
350
|
- - ~>
|
322
351
|
- !ruby/object:Gem::Version
|
@@ -324,57 +353,65 @@ dependencies:
|
|
324
353
|
- !ruby/object:Gem::Dependency
|
325
354
|
name: ruby_gntp
|
326
355
|
requirement: !ruby/object:Gem::Requirement
|
356
|
+
none: false
|
327
357
|
requirements:
|
328
|
-
- - '>='
|
358
|
+
- - ! '>='
|
329
359
|
- !ruby/object:Gem::Version
|
330
360
|
version: '0'
|
331
361
|
type: :development
|
332
362
|
prerelease: false
|
333
363
|
version_requirements: !ruby/object:Gem::Requirement
|
364
|
+
none: false
|
334
365
|
requirements:
|
335
|
-
- - '>='
|
366
|
+
- - ! '>='
|
336
367
|
- !ruby/object:Gem::Version
|
337
368
|
version: '0'
|
338
369
|
- !ruby/object:Gem::Dependency
|
339
370
|
name: simplecov
|
340
371
|
requirement: !ruby/object:Gem::Requirement
|
372
|
+
none: false
|
341
373
|
requirements:
|
342
|
-
- - '>='
|
374
|
+
- - ! '>='
|
343
375
|
- !ruby/object:Gem::Version
|
344
376
|
version: '0'
|
345
377
|
type: :development
|
346
378
|
prerelease: false
|
347
379
|
version_requirements: !ruby/object:Gem::Requirement
|
380
|
+
none: false
|
348
381
|
requirements:
|
349
|
-
- - '>='
|
382
|
+
- - ! '>='
|
350
383
|
- !ruby/object:Gem::Version
|
351
384
|
version: '0'
|
352
385
|
- !ruby/object:Gem::Dependency
|
353
386
|
name: simplecov-rcov
|
354
387
|
requirement: !ruby/object:Gem::Requirement
|
388
|
+
none: false
|
355
389
|
requirements:
|
356
|
-
- - '>='
|
390
|
+
- - ! '>='
|
357
391
|
- !ruby/object:Gem::Version
|
358
392
|
version: '0'
|
359
393
|
type: :development
|
360
394
|
prerelease: false
|
361
395
|
version_requirements: !ruby/object:Gem::Requirement
|
396
|
+
none: false
|
362
397
|
requirements:
|
363
|
-
- - '>='
|
398
|
+
- - ! '>='
|
364
399
|
- !ruby/object:Gem::Version
|
365
400
|
version: '0'
|
366
401
|
- !ruby/object:Gem::Dependency
|
367
402
|
name: yard
|
368
403
|
requirement: !ruby/object:Gem::Requirement
|
404
|
+
none: false
|
369
405
|
requirements:
|
370
|
-
- - '>='
|
406
|
+
- - ! '>='
|
371
407
|
- !ruby/object:Gem::Version
|
372
408
|
version: '0'
|
373
409
|
type: :development
|
374
410
|
prerelease: false
|
375
411
|
version_requirements: !ruby/object:Gem::Requirement
|
412
|
+
none: false
|
376
413
|
requirements:
|
377
|
-
- - '>='
|
414
|
+
- - ! '>='
|
378
415
|
- !ruby/object:Gem::Version
|
379
416
|
version: '0'
|
380
417
|
description: Adhearsion is an open-source telephony development framework
|
@@ -549,26 +586,33 @@ files:
|
|
549
586
|
- spec/support/punchblock_mocks.rb
|
550
587
|
homepage: http://adhearsion.com
|
551
588
|
licenses: []
|
552
|
-
metadata: {}
|
553
589
|
post_install_message:
|
554
590
|
rdoc_options: []
|
555
591
|
require_paths:
|
556
592
|
- lib
|
557
593
|
required_ruby_version: !ruby/object:Gem::Requirement
|
594
|
+
none: false
|
558
595
|
requirements:
|
559
|
-
- - '>='
|
596
|
+
- - ! '>='
|
560
597
|
- !ruby/object:Gem::Version
|
561
598
|
version: '0'
|
599
|
+
segments:
|
600
|
+
- 0
|
601
|
+
hash: 1745862243148562605
|
562
602
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
603
|
+
none: false
|
563
604
|
requirements:
|
564
|
-
- - '>='
|
605
|
+
- - ! '>='
|
565
606
|
- !ruby/object:Gem::Version
|
566
607
|
version: '0'
|
608
|
+
segments:
|
609
|
+
- 0
|
610
|
+
hash: 1745862243148562605
|
567
611
|
requirements: []
|
568
612
|
rubyforge_project:
|
569
|
-
rubygems_version:
|
613
|
+
rubygems_version: 1.8.25
|
570
614
|
signing_key:
|
571
|
-
specification_version:
|
615
|
+
specification_version: 3
|
572
616
|
summary: Adhearsion, open-source telephony development framework
|
573
617
|
test_files:
|
574
618
|
- features/app_generator.feature
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 5bbbc8216c0eedac94db68efd4e8e4e8dd0d4288
|
4
|
-
data.tar.gz: 7e9d4fafd8f772bb5ce4c464e640939883753f98
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 357385621a3e271b7fb55be8a590d6452d489e51fde894ca1f38219b63c944bced8c1f1ac7cc188c321b2889fb813fee34ebb4085b6c3512d0a51ee40f101efc
|
7
|
-
data.tar.gz: d84de1d7a33ffd8ea1529b6ee99629204d0e2458cf7462a9cf6787016c6fdc27a1c822b3947efaf1545b56f9942fa084359fe0f48e1411c905749bf46336ff06
|