call_center 0.1.3 → 0.1.6
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.
- data/Gemfile +7 -9
- data/Gemfile.lock +29 -22
- data/{LICENSE.txt → MIT-LICENSE.txt} +0 -0
- data/Rakefile +1 -12
- data/VERSION +1 -1
- data/call_center.gemspec +9 -17
- data/lib/call_center.rb +0 -4
- data/lib/call_center/test/dsl.rb +14 -1
- data/lib/call_center/test/minitest/dsl.rb +11 -2
- data/minitest/call_center/test/minitest_test.rb +0 -2
- data/minitest/helper.rb +6 -9
- data/test/call_center_test.rb +161 -166
- data/test/core_ext_test.rb +1 -2
- data/test/helper.rb +3 -11
- metadata +58 -88
- data/test/examples/outbound_call.rb +0 -3
data/Gemfile
CHANGED
@@ -1,19 +1,17 @@
|
|
1
|
-
source
|
1
|
+
source :rubygems
|
2
2
|
|
3
3
|
group :development do
|
4
|
-
gem 'shoulda'
|
5
|
-
gem 'bundler', '~> 1.0.0'
|
4
|
+
gem 'shoulda'
|
6
5
|
gem 'jeweler', '~> 1.6.4'
|
7
|
-
gem 'rcov'
|
8
|
-
gem 'test-unit', :require => 'test/unit'
|
6
|
+
gem 'rcov'
|
9
7
|
gem 'guard'
|
10
8
|
gem 'guard-test'
|
11
|
-
gem 'actionpack', '~> 2.3.
|
9
|
+
gem 'actionpack', '~> 2.3.14'
|
12
10
|
gem 'mocha'
|
13
|
-
gem 'bourne'
|
11
|
+
gem 'bourne', '>= 1.2.0'
|
14
12
|
gem 'pre-commit'
|
15
|
-
gem 'minitest', '
|
16
|
-
gem 'minitest-reporters', :
|
13
|
+
gem 'minitest', '~> 3.3.0' # dots disappear at >= 3.4
|
14
|
+
gem 'minitest-reporters', :platform => :ruby_19 # https://github.com/busyloop/powerbar/pull/10
|
17
15
|
gem 'guard-shell'
|
18
16
|
end
|
19
17
|
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
actionpack (2.3.
|
5
|
-
activesupport (= 2.3.
|
4
|
+
actionpack (2.3.14)
|
5
|
+
activesupport (= 2.3.14)
|
6
6
|
rack (~> 1.1.0)
|
7
|
-
activesupport (2.3.
|
8
|
-
ansi (1.3
|
9
|
-
bourne (1.0)
|
10
|
-
mocha (= 0.
|
11
|
-
builder (3.
|
7
|
+
activesupport (2.3.14)
|
8
|
+
ansi (1.4.3)
|
9
|
+
bourne (1.2.0)
|
10
|
+
mocha (= 0.12.3)
|
11
|
+
builder (3.1.3)
|
12
12
|
execjs (1.2.0)
|
13
13
|
multi_json (~> 1.0)
|
14
14
|
git (1.2.5)
|
@@ -19,26 +19,35 @@ GEM
|
|
19
19
|
guard-test (0.3.0)
|
20
20
|
guard (>= 0.2.2)
|
21
21
|
test-unit (~> 2.2)
|
22
|
+
hashie (1.2.0)
|
22
23
|
hsume2-state_machine (1.0.5)
|
23
24
|
jeweler (1.6.4)
|
24
25
|
bundler (~> 1.0)
|
25
26
|
git (>= 1.2.5)
|
26
27
|
rake
|
27
|
-
|
28
|
-
minitest
|
28
|
+
metaclass (0.0.1)
|
29
|
+
minitest (3.3.0)
|
30
|
+
minitest-reporters (0.11.0)
|
29
31
|
ansi
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
32
|
+
builder
|
33
|
+
minitest (>= 2.12, < 4.0)
|
34
|
+
powerbar
|
35
|
+
mocha (0.12.3)
|
36
|
+
metaclass (~> 0.0.1)
|
34
37
|
multi_json (1.0.3)
|
38
|
+
powerbar (1.0.9)
|
39
|
+
ansi (~> 1.4.0)
|
40
|
+
hashie (>= 1.1.0)
|
35
41
|
pre-commit (0.1.13)
|
36
42
|
execjs
|
37
|
-
rack (1.1.
|
38
|
-
rake (0.9.2)
|
43
|
+
rack (1.1.3)
|
44
|
+
rake (0.9.2.2)
|
39
45
|
rcov (0.9.9)
|
40
|
-
|
41
|
-
|
46
|
+
shoulda (3.0.1)
|
47
|
+
shoulda-context (~> 1.0.0)
|
48
|
+
shoulda-matchers (~> 1.0.0)
|
49
|
+
shoulda-context (1.0.0)
|
50
|
+
shoulda-matchers (1.0.0)
|
42
51
|
test-unit (2.3.0)
|
43
52
|
thor (0.14.6)
|
44
53
|
|
@@ -46,19 +55,17 @@ PLATFORMS
|
|
46
55
|
ruby
|
47
56
|
|
48
57
|
DEPENDENCIES
|
49
|
-
actionpack (~> 2.3.
|
50
|
-
bourne
|
58
|
+
actionpack (~> 2.3.14)
|
59
|
+
bourne (>= 1.2.0)
|
51
60
|
builder
|
52
|
-
bundler (~> 1.0.0)
|
53
61
|
guard
|
54
62
|
guard-shell
|
55
63
|
guard-test
|
56
64
|
hsume2-state_machine (~> 1.0.5)
|
57
65
|
jeweler (~> 1.6.4)
|
58
|
-
minitest (
|
66
|
+
minitest (~> 3.3.0)
|
59
67
|
minitest-reporters
|
60
68
|
mocha
|
61
69
|
pre-commit
|
62
70
|
rcov
|
63
71
|
shoulda
|
64
|
-
test-unit
|
File without changes
|
data/Rakefile
CHANGED
@@ -1,15 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
|
3
2
|
require 'rubygems'
|
4
|
-
require 'bundler'
|
5
|
-
begin
|
6
|
-
Bundler.setup(:default, :development)
|
7
|
-
rescue Bundler::BundlerError => e
|
8
|
-
$stderr.puts e.message
|
9
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
-
exit e.status_code
|
11
|
-
end
|
12
|
-
require 'rake'
|
3
|
+
require 'bundler/setup'
|
13
4
|
|
14
5
|
require 'jeweler'
|
15
6
|
Jeweler::Tasks.new do |gem|
|
@@ -27,14 +18,12 @@ Jeweler::RubygemsDotOrgTasks.new
|
|
27
18
|
|
28
19
|
require 'rake/testtask'
|
29
20
|
Rake::TestTask.new(:test) do |test|
|
30
|
-
test.libs << 'lib' << 'test'
|
31
21
|
test.pattern = 'test/**/*_test.rb'
|
32
22
|
test.verbose = true
|
33
23
|
end
|
34
24
|
|
35
25
|
require 'rcov/rcovtask'
|
36
26
|
Rcov::RcovTask.new do |test|
|
37
|
-
test.libs << 'test'
|
38
27
|
test.pattern = 'test/**/*_test.rb'
|
39
28
|
test.verbose = true
|
40
29
|
test.rcov_opts << '--exclude "gems/*,lib/call_center/core_ext/object_instance_exec.rb"'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.6
|
data/call_center.gemspec
CHANGED
@@ -5,15 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "call_center"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Henry Hsu"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-10-10"
|
13
13
|
s.description = "Support for describing call center workflows"
|
14
14
|
s.email = "hhsu@zendesk.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
|
-
"LICENSE.txt",
|
17
16
|
"README.md"
|
18
17
|
]
|
19
18
|
s.files = [
|
@@ -24,7 +23,7 @@ Gem::Specification.new do |s|
|
|
24
23
|
"Gemfile.lock",
|
25
24
|
"Guardfile",
|
26
25
|
"Guardfile.minitest",
|
27
|
-
"LICENSE.txt",
|
26
|
+
"MIT-LICENSE.txt",
|
28
27
|
"README.md",
|
29
28
|
"Rakefile",
|
30
29
|
"VERSION",
|
@@ -48,7 +47,6 @@ Gem::Specification.new do |s|
|
|
48
47
|
"test/examples/legacy_call.rb",
|
49
48
|
"test/examples/multiple_flow_call.rb",
|
50
49
|
"test/examples/non_standard_call.rb",
|
51
|
-
"test/examples/outbound_call.rb",
|
52
50
|
"test/helper.rb"
|
53
51
|
]
|
54
52
|
s.homepage = "http://github.com/zendesk/call_center"
|
@@ -64,34 +62,30 @@ Gem::Specification.new do |s|
|
|
64
62
|
s.add_runtime_dependency(%q<builder>, [">= 0"])
|
65
63
|
s.add_runtime_dependency(%q<hsume2-state_machine>, ["~> 1.0.5"])
|
66
64
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
67
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
68
65
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
69
66
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
70
|
-
s.add_development_dependency(%q<test-unit>, [">= 0"])
|
71
67
|
s.add_development_dependency(%q<guard>, [">= 0"])
|
72
68
|
s.add_development_dependency(%q<guard-test>, [">= 0"])
|
73
|
-
s.add_development_dependency(%q<actionpack>, ["~> 2.3.
|
69
|
+
s.add_development_dependency(%q<actionpack>, ["~> 2.3.14"])
|
74
70
|
s.add_development_dependency(%q<mocha>, [">= 0"])
|
75
71
|
s.add_development_dependency(%q<bourne>, [">= 0"])
|
76
72
|
s.add_development_dependency(%q<pre-commit>, [">= 0"])
|
77
|
-
s.add_development_dependency(%q<minitest>, ["
|
73
|
+
s.add_development_dependency(%q<minitest>, ["~> 3.3.0"])
|
78
74
|
s.add_development_dependency(%q<minitest-reporters>, [">= 0"])
|
79
75
|
s.add_development_dependency(%q<guard-shell>, [">= 0"])
|
80
76
|
else
|
81
77
|
s.add_dependency(%q<builder>, [">= 0"])
|
82
78
|
s.add_dependency(%q<hsume2-state_machine>, ["~> 1.0.5"])
|
83
79
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
84
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
85
80
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
86
81
|
s.add_dependency(%q<rcov>, [">= 0"])
|
87
|
-
s.add_dependency(%q<test-unit>, [">= 0"])
|
88
82
|
s.add_dependency(%q<guard>, [">= 0"])
|
89
83
|
s.add_dependency(%q<guard-test>, [">= 0"])
|
90
|
-
s.add_dependency(%q<actionpack>, ["~> 2.3.
|
84
|
+
s.add_dependency(%q<actionpack>, ["~> 2.3.14"])
|
91
85
|
s.add_dependency(%q<mocha>, [">= 0"])
|
92
86
|
s.add_dependency(%q<bourne>, [">= 0"])
|
93
87
|
s.add_dependency(%q<pre-commit>, [">= 0"])
|
94
|
-
s.add_dependency(%q<minitest>, ["
|
88
|
+
s.add_dependency(%q<minitest>, ["~> 3.3.0"])
|
95
89
|
s.add_dependency(%q<minitest-reporters>, [">= 0"])
|
96
90
|
s.add_dependency(%q<guard-shell>, [">= 0"])
|
97
91
|
end
|
@@ -99,17 +93,15 @@ Gem::Specification.new do |s|
|
|
99
93
|
s.add_dependency(%q<builder>, [">= 0"])
|
100
94
|
s.add_dependency(%q<hsume2-state_machine>, ["~> 1.0.5"])
|
101
95
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
102
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
103
96
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
104
97
|
s.add_dependency(%q<rcov>, [">= 0"])
|
105
|
-
s.add_dependency(%q<test-unit>, [">= 0"])
|
106
98
|
s.add_dependency(%q<guard>, [">= 0"])
|
107
99
|
s.add_dependency(%q<guard-test>, [">= 0"])
|
108
|
-
s.add_dependency(%q<actionpack>, ["~> 2.3.
|
100
|
+
s.add_dependency(%q<actionpack>, ["~> 2.3.14"])
|
109
101
|
s.add_dependency(%q<mocha>, [">= 0"])
|
110
102
|
s.add_dependency(%q<bourne>, [">= 0"])
|
111
103
|
s.add_dependency(%q<pre-commit>, [">= 0"])
|
112
|
-
s.add_dependency(%q<minitest>, ["
|
104
|
+
s.add_dependency(%q<minitest>, ["~> 3.3.0"])
|
113
105
|
s.add_dependency(%q<minitest-reporters>, [">= 0"])
|
114
106
|
s.add_dependency(%q<guard-shell>, [">= 0"])
|
115
107
|
end
|
data/lib/call_center.rb
CHANGED
@@ -54,10 +54,6 @@ module CallCenter
|
|
54
54
|
def current_state_machine
|
55
55
|
self.state_machines[self.call_flow_state_machine_name]
|
56
56
|
end
|
57
|
-
|
58
|
-
def inherited(subclass)
|
59
|
-
subclass.call_flow_state_machine_name ||= self.call_flow_state_machine_name
|
60
|
-
end
|
61
57
|
end
|
62
58
|
|
63
59
|
module InstanceMethods
|
data/lib/call_center/test/dsl.rb
CHANGED
@@ -1,8 +1,21 @@
|
|
1
|
+
require 'action_pack/version'
|
2
|
+
if ActionPack::VERSION::MAJOR == 2
|
3
|
+
require 'action_controller/assertions/selector_assertions'
|
4
|
+
else
|
5
|
+
require 'action_dispatch/testing/assertions/selector'
|
6
|
+
end
|
7
|
+
|
1
8
|
module CallCenter
|
2
9
|
module Test
|
3
10
|
module DSL
|
4
11
|
def self.included(base)
|
5
|
-
|
12
|
+
if ActionPack::VERSION::MAJOR == 2
|
13
|
+
base.send(:include, ActionController::Assertions::SelectorAssertions)
|
14
|
+
else
|
15
|
+
base.send(:include, ActionController::Assertions::SelectorAssertions)
|
16
|
+
include ActionDispatch::Assertions::SelectorAssertions
|
17
|
+
end
|
18
|
+
|
6
19
|
base.extend(ClassMethods)
|
7
20
|
base.class_eval do
|
8
21
|
def response_from_page_or_rjs_with_body
|
@@ -1,5 +1,10 @@
|
|
1
|
+
require 'action_pack/version'
|
1
2
|
require 'action_controller/vendor/html-scanner'
|
2
|
-
|
3
|
+
if ActionPack::VERSION::MAJOR == 2
|
4
|
+
require 'action_controller/assertions/selector_assertions'
|
5
|
+
else
|
6
|
+
require 'action_dispatch/testing/assertions/selector'
|
7
|
+
end
|
3
8
|
require 'test/unit/assertions'
|
4
9
|
|
5
10
|
module CallCenter
|
@@ -225,7 +230,11 @@ module CallCenter
|
|
225
230
|
|
226
231
|
if defined?(::MiniTest::Spec)
|
227
232
|
::MiniTest::Spec.class_eval do
|
228
|
-
|
233
|
+
if ActionPack::VERSION::MAJOR == 2
|
234
|
+
include ActionController::Assertions::SelectorAssertions
|
235
|
+
else
|
236
|
+
include ActionDispatch::Assertions::SelectorAssertions
|
237
|
+
end
|
229
238
|
|
230
239
|
def self.it_should_flow(&block)
|
231
240
|
CallCenter::Test::MiniTest::DSL::ItShouldFlow.new(self, &block).verify
|
@@ -5,7 +5,6 @@ require File.expand_path('../../../test/examples/call', File.dirname(__FILE__))
|
|
5
5
|
require File.expand_path('../../../test/examples/dynamic_transition_call', File.dirname(__FILE__))
|
6
6
|
|
7
7
|
describe CallCenter::Test::MiniTest::DSL do
|
8
|
-
|
9
8
|
describe Call do
|
10
9
|
subject { Call.new }
|
11
10
|
let(:call_center_state_field) { :state }
|
@@ -37,5 +36,4 @@ describe CallCenter::Test::MiniTest::DSL do
|
|
37
36
|
it_should_flow { on(:picks_up).from(:routing_on_client).to(:in_conference).unless(:out_of_area?) }
|
38
37
|
it_should_flow { on(:picks_up).from(:routing_on_client).to(:cancelled).if(:out_of_area?) }
|
39
38
|
end
|
40
|
-
|
41
39
|
end
|
data/minitest/helper.rb
CHANGED
@@ -1,18 +1,15 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
2
|
+
require 'bundler/setup'
|
10
3
|
require 'minitest/autorun'
|
11
4
|
require 'mocha'
|
12
5
|
require 'active_support'
|
13
6
|
|
7
|
+
if RUBY_VERSION > "1.9.0"
|
8
|
+
require 'minitest/reporters'
|
9
|
+
MiniTest::Reporters.use! MiniTest::Reporters::DefaultReporter.new
|
10
|
+
end
|
11
|
+
|
14
12
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
15
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
16
13
|
require 'call_center'
|
17
14
|
|
18
15
|
module CommonCallMethods
|
data/test/call_center_test.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require File.expand_path("../helper", __FILE__)
|
2
2
|
|
3
3
|
require 'call_center/test/dsl'
|
4
4
|
|
5
|
-
require File.expand_path('../test/examples/legacy_call', File.dirname(__FILE__))
|
6
5
|
require File.expand_path('../test/examples/legacy_call', File.dirname(__FILE__))
|
7
6
|
require File.expand_path('../test/examples/call', File.dirname(__FILE__))
|
8
|
-
require File.expand_path('../test/examples/outbound_call', File.dirname(__FILE__))
|
9
7
|
require File.expand_path('../test/examples/non_standard_call', File.dirname(__FILE__))
|
10
8
|
require File.expand_path('../test/examples/multiple_flow_call', File.dirname(__FILE__))
|
11
9
|
require File.expand_path('../test/examples/dynamic_transition_call', File.dirname(__FILE__))
|
@@ -177,230 +175,227 @@ class CallCenterTest < Test::Unit::TestCase
|
|
177
175
|
end
|
178
176
|
end
|
179
177
|
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
@call = klass.new
|
185
|
-
end
|
178
|
+
context "call" do
|
179
|
+
setup do
|
180
|
+
@call = Call.new
|
181
|
+
end
|
186
182
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
183
|
+
should "render xml for initial state" do
|
184
|
+
@call.expects(:notify).with(:rendering_initial)
|
185
|
+
body @call.render
|
186
|
+
assert_select "Response>Say", "Hello World"
|
187
|
+
end
|
192
188
|
|
193
|
-
|
194
|
-
|
195
|
-
|
189
|
+
should "return customer url for event" do
|
190
|
+
assert_equal("/voice/calls/flow?event=voicemail_complete&actor=customer", @call.customer(:voicemail_complete))
|
191
|
+
end
|
196
192
|
|
197
|
-
|
198
|
-
|
199
|
-
|
193
|
+
should "return agent url for event" do
|
194
|
+
assert_equal("/voice/calls/flow?event=voicemail_complete&actor=agent", @call.agent(:voicemail_complete))
|
195
|
+
end
|
200
196
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
197
|
+
should "render xml for voicemail state" do
|
198
|
+
@call.stubs(:agents_available?).returns(false)
|
199
|
+
@call.incoming_call!
|
200
|
+
@call.expects(:notify).with(:rendering_voicemail)
|
205
201
|
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
202
|
+
body @call.render
|
203
|
+
assert_select "Response>Say"
|
204
|
+
assert_select "Response>Record[action=/voice/calls/flow?event=voicemail_complete&actor=customer]"
|
205
|
+
end
|
210
206
|
|
211
|
-
|
212
|
-
|
213
|
-
|
207
|
+
should "render noop when no render block" do
|
208
|
+
@call.stubs(:agents_available?).returns(true)
|
209
|
+
@call.incoming_call!
|
214
210
|
|
215
|
-
|
216
|
-
|
217
|
-
|
211
|
+
body @call.render
|
212
|
+
assert_select "Response"
|
213
|
+
end
|
218
214
|
|
219
|
-
|
220
|
-
|
215
|
+
should "execute callbacks" do
|
216
|
+
@call.state = 'cancelled'
|
221
217
|
|
222
|
-
|
223
|
-
|
218
|
+
@call.expects(:notify).with(:before_always).times(3)
|
219
|
+
@call.expects(:notify).with(:before_always_uniq).times(1)
|
224
220
|
|
225
|
-
|
226
|
-
|
227
|
-
|
221
|
+
@call.expects(:notify).with(:after_always).times(4)
|
222
|
+
@call.expects(:notify).with(:after_success).times(3)
|
223
|
+
@call.expects(:notify).with(:after_failure).times(1)
|
228
224
|
|
229
|
-
|
230
|
-
|
231
|
-
|
225
|
+
@call.expects(:notify).with(:after_always_uniq).times(1)
|
226
|
+
@call.expects(:notify).with { |notification, transition| notification == :after_success_uniq && transition.kind_of?(StateMachine::Transition) }.times(1)
|
227
|
+
@call.expects(:notify).with(:after_failure_uniq).times(0)
|
232
228
|
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
229
|
+
@call.customer_end!
|
230
|
+
@call.customer_end!
|
231
|
+
@call.customer_end!
|
232
|
+
assert(!@call.customer_hangs_up)
|
233
|
+
end
|
238
234
|
|
239
|
-
|
240
|
-
|
241
|
-
|
235
|
+
should "execute callbacks in sequence" do
|
236
|
+
seq = sequence('callback_sequence')
|
237
|
+
@call.state = 'cancelled'
|
242
238
|
|
243
|
-
|
244
|
-
|
239
|
+
@call.expects(:notify).with(:before_always).in_sequence(seq)
|
240
|
+
@call.expects(:notify).with(:before_always_uniq).in_sequence(seq)
|
245
241
|
|
246
|
-
|
247
|
-
|
242
|
+
@call.expects(:notify).with(:after_always).in_sequence(seq)
|
243
|
+
@call.expects(:notify).with(:after_success).in_sequence(seq)
|
248
244
|
|
249
|
-
|
250
|
-
|
245
|
+
@call.expects(:notify).with(:after_always_uniq).in_sequence(seq)
|
246
|
+
@call.expects(:notify).with(:after_success_uniq, anything).in_sequence(seq)
|
251
247
|
|
252
|
-
|
248
|
+
@call.customer_end!
|
249
|
+
end
|
250
|
+
|
251
|
+
should "defer callbacks" do
|
252
|
+
(class << @call; self; end).class_eval do
|
253
|
+
include CallCenter::DeferredCallbacks
|
253
254
|
end
|
255
|
+
@call.state = 'cancelled'
|
254
256
|
|
255
|
-
|
256
|
-
|
257
|
-
include CallCenter::DeferredCallbacks
|
258
|
-
end
|
259
|
-
@call.state = 'cancelled'
|
257
|
+
@call.expects(:notify).with(:before_always).never
|
258
|
+
@call.expects(:notify).with(:before_always_uniq).never
|
260
259
|
|
261
|
-
|
262
|
-
|
260
|
+
@call.expects(:notify).with(:after_always).never
|
261
|
+
@call.expects(:notify).with(:after_success).never
|
262
|
+
@call.expects(:notify).with(:after_failure).never
|
263
263
|
|
264
|
-
|
265
|
-
|
266
|
-
@call.expects(:notify).with(:after_failure).never
|
264
|
+
@call.expects(:notify).with(:after_always_uniq).never
|
265
|
+
@call.expects(:notify).with(:after_success_uniq, anything).never
|
267
266
|
|
268
|
-
|
269
|
-
|
267
|
+
@call.customer_end!
|
268
|
+
assert(!@call.customer_hangs_up)
|
270
269
|
|
271
|
-
|
272
|
-
assert(!@call.customer_hangs_up)
|
270
|
+
# Ready for deferred callbacks
|
273
271
|
|
274
|
-
|
272
|
+
seq = sequence('callback_sequence')
|
275
273
|
|
276
|
-
|
274
|
+
@call.expects(:notify).with(:before_always)
|
275
|
+
@call.expects(:notify).with(:before_always_uniq)
|
277
276
|
|
278
|
-
|
279
|
-
@call.expects(:notify).with(:before_always_uniq)
|
277
|
+
@call.call_flow_run_deferred(:before_transition)
|
280
278
|
|
281
|
-
|
279
|
+
@call.expects(:notify).with(:after_always).times(2)
|
280
|
+
@call.expects(:notify).with(:after_success)
|
282
281
|
|
283
|
-
|
284
|
-
|
282
|
+
@call.expects(:notify).with(:after_always_uniq)
|
283
|
+
@call.expects(:notify).with(:after_success_uniq, anything)
|
285
284
|
|
286
|
-
|
287
|
-
@call.expects(:notify).with(:after_success_uniq, anything)
|
285
|
+
@call.call_flow_run_deferred(:after_transition)
|
288
286
|
|
289
|
-
|
287
|
+
@call.expects(:notify).with(:after_always).times(2)
|
288
|
+
@call.expects(:notify).with(:after_failure)
|
289
|
+
@call.expects(:notify).with(:after_always_uniq)
|
290
290
|
|
291
|
-
|
292
|
-
@call.expects(:notify).with(:after_failure)
|
293
|
-
@call.expects(:notify).with(:after_always_uniq)
|
291
|
+
@call.call_flow_run_deferred(:after_failure)
|
294
292
|
|
295
|
-
|
293
|
+
# Empty
|
294
|
+
@call.call_flow_run_deferred(:before_transition)
|
295
|
+
@call.call_flow_run_deferred(:after_transition)
|
296
|
+
@call.call_flow_run_deferred(:after_failure)
|
297
|
+
end
|
296
298
|
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
end
|
299
|
+
should "asynchronously perform event" do
|
300
|
+
@call.stubs(:agents_available?).returns(true)
|
301
|
+
@call.incoming_call!
|
302
|
+
@call.expects(:redirect_to).with(:start_conference)
|
302
303
|
|
303
|
-
|
304
|
-
|
305
|
-
@call.incoming_call!
|
306
|
-
@call.expects(:redirect_to).with(:start_conference)
|
304
|
+
@call.redirect_and_start_conference!
|
305
|
+
end
|
307
306
|
|
308
|
-
|
309
|
-
|
307
|
+
should "asynchronously perform event with options" do
|
308
|
+
@call.stubs(:agents_available?).returns(true)
|
309
|
+
@call.incoming_call!
|
310
|
+
@call.expects(:redirect_to).with(:start_conference, :status => 'completed')
|
310
311
|
|
311
|
-
|
312
|
-
|
313
|
-
@call.incoming_call!
|
314
|
-
@call.expects(:redirect_to).with(:start_conference, :status => 'completed')
|
312
|
+
@call.redirect_and_start_conference!(:status => 'completed')
|
313
|
+
end
|
315
314
|
|
316
|
-
|
317
|
-
|
315
|
+
should "raise error on missing method" do
|
316
|
+
assert_raises {
|
317
|
+
@call.i_am_missing!
|
318
|
+
}
|
319
|
+
end
|
318
320
|
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
end
|
321
|
+
should "draw state machine digraph" do
|
322
|
+
Call.state_machines[:state].expects(:draw).with(:name => 'call_workflow', :font => 'Helvetica Neue')
|
323
|
+
@call.draw_call_flow(:name => 'call_workflow', :font => 'Helvetica Neue')
|
324
|
+
end
|
324
325
|
|
325
|
-
|
326
|
-
|
327
|
-
@call.
|
326
|
+
context "using test DSL:" do
|
327
|
+
should_flow :on => :incoming_call, :initial => :voicemail, :when => Proc.new {
|
328
|
+
@call.stubs(:agents_available?).returns(false)
|
329
|
+
@call.stubs(:notify)
|
330
|
+
@call.stubs(:customer).returns('the_flow')
|
331
|
+
} do
|
332
|
+
should_also { assert_received(@call, :notify) { |e| e.with(:rendering_voicemail) } }
|
333
|
+
and_also { assert_received(@call, :customer) { |e| e.with(:voicemail_complete) } }
|
334
|
+
and_render { "Response>Say" }
|
335
|
+
and_render { "Response>Record[action=the_flow]" }
|
328
336
|
end
|
329
337
|
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
} do
|
336
|
-
should_also { assert_received(@call, :notify) { |e| e.with(:rendering_voicemail) } }
|
337
|
-
and_also { assert_received(@call, :customer) { |e| e.with(:voicemail_complete) } }
|
338
|
-
and_render { "Response>Say" }
|
339
|
-
and_render { "Response>Record[action=the_flow]" }
|
340
|
-
end
|
338
|
+
should_flow :on => :incoming_call, :initial => :routing, :when => Proc.new {
|
339
|
+
@call.stubs(:agents_available?).returns(true)
|
340
|
+
} do
|
341
|
+
should_render { "Response" }
|
342
|
+
end
|
341
343
|
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
344
|
+
should_flow :on => :customer_hangs_up, :routing => :cancelled, :when => Proc.new {
|
345
|
+
@call.stubs(:notify)
|
346
|
+
} do
|
347
|
+
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } }
|
348
|
+
and_also { assert @call.cancelled? }
|
347
349
|
|
348
|
-
should_flow :on => :customer_hangs_up, :
|
349
|
-
@call.
|
350
|
-
} do
|
351
|
-
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } }
|
350
|
+
should_flow :on => :customer_hangs_up, :cancelled => :cancelled do
|
351
|
+
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } } # For above
|
352
352
|
and_also { assert @call.cancelled? }
|
353
353
|
|
354
354
|
should_flow :on => :customer_hangs_up, :cancelled => :cancelled do
|
355
355
|
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } } # For above
|
356
356
|
and_also { assert @call.cancelled? }
|
357
|
-
|
358
|
-
should_flow :on => :customer_hangs_up, :cancelled => :cancelled do
|
359
|
-
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } } # For above
|
360
|
-
and_also { assert @call.cancelled? }
|
361
|
-
end
|
362
357
|
end
|
363
358
|
end
|
364
359
|
end
|
360
|
+
end
|
365
361
|
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
end
|
362
|
+
context "deferred and using test DSL:" do
|
363
|
+
setup do
|
364
|
+
(class << @call; self; end).class_eval do
|
365
|
+
include CallCenter::DeferredCallbacks
|
371
366
|
end
|
367
|
+
end
|
372
368
|
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
369
|
+
should_flow :on => :incoming_call, :initial => :voicemail, :when => Proc.new {
|
370
|
+
@call.stubs(:agents_available?).returns(false)
|
371
|
+
@call.stubs(:notify)
|
372
|
+
@call.stubs(:customer).returns('the_flow')
|
373
|
+
} do
|
374
|
+
should_also { assert_received(@call, :notify) { |e| e.with(:rendering_voicemail) } }
|
375
|
+
and_also { assert_received(@call, :customer) { |e| e.with(:voicemail_complete) } }
|
376
|
+
and_render { "Response>Say" }
|
377
|
+
and_render { "Response>Record[action=the_flow]" }
|
378
|
+
end
|
383
379
|
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
380
|
+
should_flow :on => :incoming_call, :initial => :routing, :when => Proc.new {
|
381
|
+
@call.stubs(:agents_available?).returns(true)
|
382
|
+
} do
|
383
|
+
should_render { "Response" }
|
384
|
+
end
|
389
385
|
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
386
|
+
should_flow :on => :customer_hangs_up, :routing => :cancelled, :when => Proc.new {
|
387
|
+
@call.stubs(:notify)
|
388
|
+
} do
|
389
|
+
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } }
|
390
|
+
and_also { assert @call.cancelled? }
|
391
|
+
|
392
|
+
should_flow :on => :customer_hangs_up, :cancelled => :cancelled do
|
393
|
+
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } } # For above
|
394
394
|
and_also { assert @call.cancelled? }
|
395
395
|
|
396
396
|
should_flow :on => :customer_hangs_up, :cancelled => :cancelled do
|
397
397
|
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } } # For above
|
398
398
|
and_also { assert @call.cancelled? }
|
399
|
-
|
400
|
-
should_flow :on => :customer_hangs_up, :cancelled => :cancelled do
|
401
|
-
should_also { assert_received(@call, :notify) { |e| e.with(:cancelled).once } } # For above
|
402
|
-
and_also { assert @call.cancelled? }
|
403
|
-
end
|
404
399
|
end
|
405
400
|
end
|
406
401
|
end
|
data/test/core_ext_test.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -1,24 +1,16 @@
|
|
1
|
-
require '
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
1
|
+
require 'bundler/setup'
|
10
2
|
require 'test/unit'
|
11
3
|
require 'shoulda'
|
12
4
|
require 'mocha'
|
13
5
|
require 'bourne'
|
14
6
|
|
15
7
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
16
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
17
8
|
require 'call_center'
|
18
9
|
|
19
10
|
require 'active_support'
|
20
11
|
require 'action_pack'
|
21
12
|
require 'action_controller'
|
13
|
+
|
22
14
|
class Test::Unit::TestCase
|
23
15
|
def response_from_page_or_rjs
|
24
16
|
HTML::Document.new(@body).root
|
@@ -35,4 +27,4 @@ module CommonCallMethods
|
|
35
27
|
def voicemail; end
|
36
28
|
def voicemail_completed; end
|
37
29
|
def routing; end
|
38
|
-
end
|
30
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: call_center
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 6
|
10
|
+
version: 0.1.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Henry Hsu
|
@@ -15,12 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-10-10 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: builder
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
25
24
|
requirements:
|
26
25
|
- - ">="
|
@@ -30,11 +29,11 @@ dependencies:
|
|
30
29
|
- 0
|
31
30
|
version: "0"
|
32
31
|
type: :runtime
|
33
|
-
|
32
|
+
requirement: *id001
|
33
|
+
prerelease: false
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: hsume2-state_machine
|
36
|
-
|
37
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
37
|
none: false
|
39
38
|
requirements:
|
40
39
|
- - ~>
|
@@ -46,11 +45,11 @@ dependencies:
|
|
46
45
|
- 5
|
47
46
|
version: 1.0.5
|
48
47
|
type: :runtime
|
49
|
-
|
48
|
+
requirement: *id002
|
49
|
+
prerelease: false
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: shoulda
|
52
|
-
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
53
|
none: false
|
55
54
|
requirements:
|
56
55
|
- - ">="
|
@@ -60,27 +59,11 @@ dependencies:
|
|
60
59
|
- 0
|
61
60
|
version: "0"
|
62
61
|
type: :development
|
63
|
-
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: bundler
|
62
|
+
requirement: *id003
|
66
63
|
prerelease: false
|
67
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
|
-
requirements:
|
70
|
-
- - ~>
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
hash: 23
|
73
|
-
segments:
|
74
|
-
- 1
|
75
|
-
- 0
|
76
|
-
- 0
|
77
|
-
version: 1.0.0
|
78
|
-
type: :development
|
79
|
-
version_requirements: *id004
|
80
64
|
- !ruby/object:Gem::Dependency
|
81
65
|
name: jeweler
|
82
|
-
|
83
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
66
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
84
67
|
none: false
|
85
68
|
requirements:
|
86
69
|
- - ~>
|
@@ -92,11 +75,11 @@ dependencies:
|
|
92
75
|
- 4
|
93
76
|
version: 1.6.4
|
94
77
|
type: :development
|
95
|
-
|
78
|
+
requirement: *id004
|
79
|
+
prerelease: false
|
96
80
|
- !ruby/object:Gem::Dependency
|
97
81
|
name: rcov
|
98
|
-
|
99
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
82
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
100
83
|
none: false
|
101
84
|
requirements:
|
102
85
|
- - ">="
|
@@ -106,25 +89,11 @@ dependencies:
|
|
106
89
|
- 0
|
107
90
|
version: "0"
|
108
91
|
type: :development
|
109
|
-
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: test-unit
|
92
|
+
requirement: *id005
|
112
93
|
prerelease: false
|
113
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
|
-
requirements:
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
hash: 3
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
version: "0"
|
122
|
-
type: :development
|
123
|
-
version_requirements: *id007
|
124
94
|
- !ruby/object:Gem::Dependency
|
125
95
|
name: guard
|
126
|
-
|
127
|
-
requirement: &id008 !ruby/object:Gem::Requirement
|
96
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
128
97
|
none: false
|
129
98
|
requirements:
|
130
99
|
- - ">="
|
@@ -134,11 +103,11 @@ dependencies:
|
|
134
103
|
- 0
|
135
104
|
version: "0"
|
136
105
|
type: :development
|
137
|
-
|
106
|
+
requirement: *id006
|
107
|
+
prerelease: false
|
138
108
|
- !ruby/object:Gem::Dependency
|
139
109
|
name: guard-test
|
140
|
-
|
141
|
-
requirement: &id009 !ruby/object:Gem::Requirement
|
110
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
142
111
|
none: false
|
143
112
|
requirements:
|
144
113
|
- - ">="
|
@@ -148,27 +117,27 @@ dependencies:
|
|
148
117
|
- 0
|
149
118
|
version: "0"
|
150
119
|
type: :development
|
151
|
-
|
120
|
+
requirement: *id007
|
121
|
+
prerelease: false
|
152
122
|
- !ruby/object:Gem::Dependency
|
153
123
|
name: actionpack
|
154
|
-
|
155
|
-
requirement: &id010 !ruby/object:Gem::Requirement
|
124
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
156
125
|
none: false
|
157
126
|
requirements:
|
158
127
|
- - ~>
|
159
128
|
- !ruby/object:Gem::Version
|
160
|
-
hash:
|
129
|
+
hash: 31
|
161
130
|
segments:
|
162
131
|
- 2
|
163
132
|
- 3
|
164
|
-
-
|
165
|
-
version: 2.3.
|
133
|
+
- 14
|
134
|
+
version: 2.3.14
|
166
135
|
type: :development
|
167
|
-
|
136
|
+
requirement: *id008
|
137
|
+
prerelease: false
|
168
138
|
- !ruby/object:Gem::Dependency
|
169
139
|
name: mocha
|
170
|
-
|
171
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
140
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
172
141
|
none: false
|
173
142
|
requirements:
|
174
143
|
- - ">="
|
@@ -178,25 +147,27 @@ dependencies:
|
|
178
147
|
- 0
|
179
148
|
version: "0"
|
180
149
|
type: :development
|
181
|
-
|
150
|
+
requirement: *id009
|
151
|
+
prerelease: false
|
182
152
|
- !ruby/object:Gem::Dependency
|
183
153
|
name: bourne
|
184
|
-
|
185
|
-
requirement: &id012 !ruby/object:Gem::Requirement
|
154
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
186
155
|
none: false
|
187
156
|
requirements:
|
188
157
|
- - ">="
|
189
158
|
- !ruby/object:Gem::Version
|
190
|
-
hash:
|
159
|
+
hash: 31
|
191
160
|
segments:
|
161
|
+
- 1
|
162
|
+
- 2
|
192
163
|
- 0
|
193
|
-
version:
|
164
|
+
version: 1.2.0
|
194
165
|
type: :development
|
195
|
-
|
166
|
+
requirement: *id010
|
167
|
+
prerelease: false
|
196
168
|
- !ruby/object:Gem::Dependency
|
197
169
|
name: pre-commit
|
198
|
-
|
199
|
-
requirement: &id013 !ruby/object:Gem::Requirement
|
170
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
200
171
|
none: false
|
201
172
|
requirements:
|
202
173
|
- - ">="
|
@@ -206,27 +177,27 @@ dependencies:
|
|
206
177
|
- 0
|
207
178
|
version: "0"
|
208
179
|
type: :development
|
209
|
-
|
180
|
+
requirement: *id011
|
181
|
+
prerelease: false
|
210
182
|
- !ruby/object:Gem::Dependency
|
211
183
|
name: minitest
|
212
|
-
|
213
|
-
requirement: &id014 !ruby/object:Gem::Requirement
|
184
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
214
185
|
none: false
|
215
186
|
requirements:
|
216
|
-
- -
|
187
|
+
- - ~>
|
217
188
|
- !ruby/object:Gem::Version
|
218
|
-
hash:
|
189
|
+
hash: 11
|
219
190
|
segments:
|
220
|
-
-
|
221
|
-
-
|
222
|
-
-
|
223
|
-
version:
|
191
|
+
- 3
|
192
|
+
- 3
|
193
|
+
- 0
|
194
|
+
version: 3.3.0
|
224
195
|
type: :development
|
225
|
-
|
196
|
+
requirement: *id012
|
197
|
+
prerelease: false
|
226
198
|
- !ruby/object:Gem::Dependency
|
227
199
|
name: minitest-reporters
|
228
|
-
|
229
|
-
requirement: &id015 !ruby/object:Gem::Requirement
|
200
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
230
201
|
none: false
|
231
202
|
requirements:
|
232
203
|
- - ">="
|
@@ -236,11 +207,11 @@ dependencies:
|
|
236
207
|
- 0
|
237
208
|
version: "0"
|
238
209
|
type: :development
|
239
|
-
|
210
|
+
requirement: *id013
|
211
|
+
prerelease: false
|
240
212
|
- !ruby/object:Gem::Dependency
|
241
213
|
name: guard-shell
|
242
|
-
|
243
|
-
requirement: &id016 !ruby/object:Gem::Requirement
|
214
|
+
version_requirements: &id014 !ruby/object:Gem::Requirement
|
244
215
|
none: false
|
245
216
|
requirements:
|
246
217
|
- - ">="
|
@@ -250,7 +221,8 @@ dependencies:
|
|
250
221
|
- 0
|
251
222
|
version: "0"
|
252
223
|
type: :development
|
253
|
-
|
224
|
+
requirement: *id014
|
225
|
+
prerelease: false
|
254
226
|
description: Support for describing call center workflows
|
255
227
|
email: hhsu@zendesk.com
|
256
228
|
executables: []
|
@@ -258,7 +230,6 @@ executables: []
|
|
258
230
|
extensions: []
|
259
231
|
|
260
232
|
extra_rdoc_files:
|
261
|
-
- LICENSE.txt
|
262
233
|
- README.md
|
263
234
|
files:
|
264
235
|
- .document
|
@@ -268,7 +239,7 @@ files:
|
|
268
239
|
- Gemfile.lock
|
269
240
|
- Guardfile
|
270
241
|
- Guardfile.minitest
|
271
|
-
- LICENSE.txt
|
242
|
+
- MIT-LICENSE.txt
|
272
243
|
- README.md
|
273
244
|
- Rakefile
|
274
245
|
- VERSION
|
@@ -292,7 +263,6 @@ files:
|
|
292
263
|
- test/examples/legacy_call.rb
|
293
264
|
- test/examples/multiple_flow_call.rb
|
294
265
|
- test/examples/non_standard_call.rb
|
295
|
-
- test/examples/outbound_call.rb
|
296
266
|
- test/helper.rb
|
297
267
|
homepage: http://github.com/zendesk/call_center
|
298
268
|
licenses:
|