adhearsion 2.0.0.beta1 → 2.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. data/.travis.yml +2 -4
  2. data/CHANGELOG.md +34 -4
  3. data/README.markdown +2 -1
  4. data/Rakefile +22 -1
  5. data/adhearsion.gemspec +1 -0
  6. data/bin/ahn +0 -2
  7. data/features/cli_daemon.feature +2 -0
  8. data/features/cli_restart.feature +19 -0
  9. data/features/cli_start.feature +4 -6
  10. data/features/cli_stop.feature +3 -0
  11. data/features/step_definitions/app_generator_steps.rb +2 -0
  12. data/features/step_definitions/cli_steps.rb +2 -0
  13. data/features/support/aruba_helper.rb +2 -0
  14. data/features/support/env.rb +8 -46
  15. data/features/support/utils.rb +2 -0
  16. data/lib/adhearsion.rb +4 -6
  17. data/lib/adhearsion/call.rb +71 -17
  18. data/lib/adhearsion/call_controller.rb +25 -14
  19. data/lib/adhearsion/call_controller/dial.rb +34 -15
  20. data/lib/adhearsion/call_controller/input.rb +186 -144
  21. data/lib/adhearsion/call_controller/output.rb +10 -6
  22. data/lib/adhearsion/call_controller/record.rb +11 -13
  23. data/lib/adhearsion/call_controller/utility.rb +2 -0
  24. data/lib/adhearsion/calls.rb +4 -2
  25. data/lib/adhearsion/cli.rb +4 -0
  26. data/lib/adhearsion/cli_commands.rb +8 -2
  27. data/lib/adhearsion/configuration.rb +7 -3
  28. data/lib/adhearsion/console.rb +17 -17
  29. data/lib/adhearsion/events.rb +10 -4
  30. data/lib/adhearsion/foundation.rb +9 -0
  31. data/lib/adhearsion/foundation/custom_daemonizer.rb +3 -1
  32. data/lib/adhearsion/foundation/exception_handler.rb +2 -0
  33. data/lib/adhearsion/foundation/libc.rb +2 -0
  34. data/lib/adhearsion/foundation/object.rb +3 -0
  35. data/lib/adhearsion/foundation/thread_safety.rb +5 -11
  36. data/lib/adhearsion/generators.rb +2 -0
  37. data/lib/adhearsion/generators/app/app_generator.rb +2 -0
  38. data/lib/adhearsion/generators/app/templates/README.md +9 -0
  39. data/lib/adhearsion/generators/app/templates/config/adhearsion.rb +38 -16
  40. data/lib/adhearsion/generators/app/templates/config/environment.rb +2 -0
  41. data/lib/adhearsion/generators/app/templates/lib/simon_game.rb +5 -3
  42. data/lib/adhearsion/generators/controller/controller_generator.rb +2 -0
  43. data/lib/adhearsion/generators/controller/templates/lib/controller.rb +2 -0
  44. data/lib/adhearsion/generators/controller/templates/spec/controller_spec.rb +2 -0
  45. data/lib/adhearsion/generators/generator.rb +3 -1
  46. data/lib/adhearsion/generators/plugin/plugin_generator.rb +2 -0
  47. data/lib/adhearsion/initializer.rb +31 -17
  48. data/lib/adhearsion/linux_proc_name.rb +2 -0
  49. data/lib/adhearsion/logging.rb +5 -3
  50. data/lib/adhearsion/menu_dsl.rb +2 -0
  51. data/lib/adhearsion/menu_dsl/calculated_match.rb +2 -0
  52. data/lib/adhearsion/menu_dsl/calculated_match_collection.rb +2 -0
  53. data/lib/adhearsion/menu_dsl/fixnum_match_calculator.rb +2 -0
  54. data/lib/adhearsion/menu_dsl/match_calculator.rb +2 -0
  55. data/lib/adhearsion/menu_dsl/menu.rb +58 -4
  56. data/lib/adhearsion/menu_dsl/menu_builder.rb +14 -1
  57. data/lib/adhearsion/menu_dsl/range_match_calculator.rb +4 -1
  58. data/lib/adhearsion/menu_dsl/string_match_calculator.rb +2 -0
  59. data/lib/adhearsion/outbound_call.rb +2 -0
  60. data/lib/adhearsion/plugin.rb +9 -7
  61. data/lib/adhearsion/plugin/collection.rb +3 -1
  62. data/lib/adhearsion/plugin/initializer.rb +3 -1
  63. data/lib/adhearsion/process.rb +8 -2
  64. data/lib/adhearsion/punchblock_plugin.rb +3 -1
  65. data/lib/adhearsion/punchblock_plugin/initializer.rb +34 -11
  66. data/lib/adhearsion/router.rb +4 -2
  67. data/lib/adhearsion/router/route.rb +2 -0
  68. data/lib/adhearsion/script_ahn_loader.rb +2 -0
  69. data/lib/adhearsion/tasks.rb +2 -0
  70. data/lib/adhearsion/tasks/configuration.rb +2 -0
  71. data/lib/adhearsion/tasks/debugging.rb +8 -0
  72. data/lib/adhearsion/tasks/environment.rb +2 -0
  73. data/lib/adhearsion/tasks/plugins.rb +2 -0
  74. data/lib/adhearsion/tasks/testing.rb +2 -0
  75. data/lib/adhearsion/version.rb +3 -1
  76. data/pre-commit +2 -0
  77. data/spec/adhearsion/call_controller/dial_spec.rb +114 -25
  78. data/spec/adhearsion/call_controller/input_spec.rb +192 -169
  79. data/spec/adhearsion/call_controller/output_spec.rb +26 -12
  80. data/spec/adhearsion/call_controller/record_spec.rb +29 -77
  81. data/spec/adhearsion/call_controller/utility_spec.rb +69 -0
  82. data/spec/adhearsion/call_controller_spec.rb +90 -15
  83. data/spec/adhearsion/call_spec.rb +92 -24
  84. data/spec/adhearsion/calls_spec.rb +9 -7
  85. data/spec/adhearsion/configuration_spec.rb +58 -56
  86. data/spec/adhearsion/console_spec.rb +4 -2
  87. data/spec/adhearsion/events_spec.rb +9 -7
  88. data/spec/adhearsion/generators_spec.rb +3 -1
  89. data/spec/adhearsion/initializer_spec.rb +16 -14
  90. data/spec/adhearsion/logging_spec.rb +11 -9
  91. data/spec/adhearsion/menu_dsl/calculated_match_collection_spec.rb +6 -4
  92. data/spec/adhearsion/menu_dsl/calculated_match_spec.rb +6 -4
  93. data/spec/adhearsion/menu_dsl/fixnum_match_calculator_spec.rb +3 -1
  94. data/spec/adhearsion/menu_dsl/match_calculator_spec.rb +2 -0
  95. data/spec/adhearsion/menu_dsl/menu_builder_spec.rb +42 -11
  96. data/spec/adhearsion/menu_dsl/menu_spec.rb +197 -36
  97. data/spec/adhearsion/menu_dsl/range_match_calculator_spec.rb +4 -2
  98. data/spec/adhearsion/menu_dsl/string_match_calculator_spec.rb +5 -3
  99. data/spec/adhearsion/outbound_call_spec.rb +7 -5
  100. data/spec/adhearsion/plugin_spec.rb +19 -15
  101. data/spec/adhearsion/process_spec.rb +12 -7
  102. data/spec/adhearsion/punchblock_plugin/initializer_spec.rb +35 -15
  103. data/spec/adhearsion/punchblock_plugin_spec.rb +4 -1
  104. data/spec/adhearsion/router/route_spec.rb +8 -6
  105. data/spec/adhearsion/router_spec.rb +12 -10
  106. data/spec/adhearsion_spec.rb +13 -2
  107. data/spec/capture_warnings.rb +33 -0
  108. data/spec/spec_helper.rb +4 -0
  109. data/spec/support/call_controller_test_helpers.rb +2 -4
  110. data/spec/support/initializer_stubs.rb +8 -5
  111. data/spec/support/logging_helpers.rb +2 -0
  112. data/spec/support/punchblock_mocks.rb +2 -0
  113. metadata +84 -71
  114. data/EVENTS +0 -11
  115. data/lib/adhearsion/call_controller/menu.rb +0 -124
  116. data/lib/adhearsion/foundation/all.rb +0 -8
  117. data/spec/adhearsion/call_controller/menu_spec.rb +0 -120
  118. data/spec/adhearsion/menu_dsl_spec.rb +0 -12
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  module Adhearsion
@@ -8,8 +10,8 @@ module Adhearsion
8
10
  digits_that_begin_with_eleven = [110..119, 1100..1111].map { |x| Array(x) }.flatten
9
11
  calculator = RangeMatchCalculator.new 11..1111, :match_payload_doesnt_matter
10
12
  match = calculator.match 11
11
- match.exact_matches.should == [11]
12
- match.potential_matches.should == digits_that_begin_with_eleven
13
+ match.exact_matches.should be == [11]
14
+ match.potential_matches.should be == digits_that_begin_with_eleven
13
15
  end
14
16
 
15
17
  it "return values of #match should be an instance of CalculatedMatch" do
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  module Adhearsion
@@ -13,12 +15,12 @@ module Adhearsion
13
15
  match_case = calculator.match str[0,2]
14
16
  match_case.exact_match?.should_not be true
15
17
  match_case.potential_match?.should be true
16
- match_case.potential_matches.should == [str]
18
+ match_case.potential_matches.should be == [str]
17
19
 
18
20
  match_case = calculator.match str
19
21
  match_case.exact_match?.should be true
20
22
  match_case.potential_match?.should_not be true
21
- match_case.exact_matches.should == [str]
23
+ match_case.exact_matches.should be == [str]
22
24
  end
23
25
  end
24
26
 
@@ -28,7 +30,7 @@ module Adhearsion
28
30
  match_case = calculator.match special_digit
29
31
  match_case.potential_match?.should_not be true
30
32
  match_case.exact_match?.should be true
31
- match_case.exact_matches.first.should == special_digit
33
+ match_case.exact_matches.first.should be == special_digit
32
34
  end
33
35
  end
34
36
  end
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  module Adhearsion
@@ -5,7 +7,7 @@ module Adhearsion
5
7
  it { should be_a Call }
6
8
 
7
9
  its(:id) { should be_nil }
8
- its(:variables) { should == {} }
10
+ its(:variables) { should be == {} }
9
11
 
10
12
  let(:mock_client) { flexmock 'Punchblock Client' }
11
13
 
@@ -79,22 +81,22 @@ module Adhearsion
79
81
 
80
82
  it "should set the dial command" do
81
83
  subject.dial to, :from => from
82
- subject.dial_command.should == expected_dial_command
84
+ subject.dial_command.should be == expected_dial_command
83
85
  end
84
86
 
85
87
  it "should set the call ID from the dial command" do
86
88
  subject.dial to, :from => from
87
- subject.id.should == call_id
89
+ subject.id.should be == call_id
88
90
  end
89
91
 
90
92
  it "should set the to from the dial command" do
91
93
  subject.dial to, :from => from
92
- subject.to.should == to
94
+ subject.to.should be == to
93
95
  end
94
96
 
95
97
  it "should set the 'from' from the dial command" do
96
98
  subject.dial to, :from => from
97
- subject.from.should == from
99
+ subject.from.should be == from
98
100
  end
99
101
 
100
102
  it "should add the call to the active calls registry" do
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  include InitializerStubs
@@ -15,12 +17,12 @@ describe Adhearsion::Plugin do
15
17
 
16
18
  it "should provide the plugin name in a plugin class" do
17
19
  ::FooBar = Class.new Adhearsion::Plugin
18
- ::FooBar.plugin_name.should == "foo_bar"
20
+ ::FooBar.plugin_name.should be == "foo_bar"
19
21
  end
20
22
 
21
23
  it "should provide the plugin name in a plugin instance" do
22
24
  ::FooBar = Class.new Adhearsion::Plugin
23
- ::FooBar.new.plugin_name.should == "foo_bar"
25
+ ::FooBar.new.plugin_name.should be == "foo_bar"
24
26
  end
25
27
 
26
28
  it "should provide a setter for plugin name" do
@@ -28,7 +30,7 @@ describe Adhearsion::Plugin do
28
30
  self.plugin_name = "bar_foo"
29
31
  end
30
32
 
31
- ::FooBar.plugin_name.should == "bar_foo"
33
+ ::FooBar.plugin_name.should be == "bar_foo"
32
34
  end
33
35
  end
34
36
 
@@ -47,7 +49,7 @@ describe Adhearsion::Plugin do
47
49
  end
48
50
  }
49
51
 
50
- its(:plugin_name) { should == :bar_foo }
52
+ its(:plugin_name) { should be == :bar_foo }
51
53
 
52
54
  its(:config) { should be_instance_of Loquacious::Configuration }
53
55
 
@@ -56,9 +58,9 @@ describe Adhearsion::Plugin do
56
58
  subject.config.should respond_to value
57
59
  end
58
60
 
59
- subject.config.name.should == "user"
60
- subject.config.password.should == "password"
61
- subject.config.host.should == "localhost"
61
+ subject.config.name.should be == "user"
62
+ subject.config.password.should be == "password"
63
+ subject.config.host.should be == "localhost"
62
64
  end
63
65
 
64
66
  it "should return a description of configuration options" do
@@ -68,7 +70,7 @@ describe Adhearsion::Plugin do
68
70
  describe "while updating config values" do
69
71
  it "should return the updated value" do
70
72
  subject.config.name = "usera"
71
- subject.config.name.should == "usera"
73
+ subject.config.name.should be == "usera"
72
74
  end
73
75
  end
74
76
 
@@ -105,7 +107,7 @@ describe Adhearsion::Plugin do
105
107
  end
106
108
 
107
109
  describe "Adhearsion::Plugin.init_plugins" do
108
- before do
110
+ before(:all) do
109
111
  Adhearsion::Plugin.class_eval do
110
112
  def self.reset_methods_scope
111
113
  @methods_scope = Hash.new { |hash, key| hash[key] = Module.new }
@@ -115,7 +117,9 @@ describe Adhearsion::Plugin do
115
117
  @subclasses = nil
116
118
  end
117
119
  end
120
+ end
118
121
 
122
+ before do
119
123
  Adhearsion::Plugin.reset_methods_scope
120
124
  Adhearsion::Plugin.reset_subclasses
121
125
  end
@@ -340,29 +344,29 @@ describe Adhearsion::Plugin do
340
344
  subject.should be_instance_of Array
341
345
  end
342
346
 
343
- its(:length) { should == 0 }
347
+ its(:length) { should be == 0 }
344
348
 
345
349
  it "should not load a new task when there is no block in the method call" do
346
- subject.length.should == 0
350
+ subject.length.should be == 0
347
351
  FooBar = Class.new Adhearsion::Plugin do
348
352
  tasks
349
353
  end
350
354
 
351
- subject.length.should == 0
355
+ subject.length.should be == 0
352
356
  end
353
357
 
354
358
  it "should load a new task when there is a block in the method call" do
355
- subject.length.should == 0
359
+ subject.length.should be == 0
356
360
  FooBar = Class.new Adhearsion::Plugin do
357
361
  tasks do
358
362
  puts "foo bar"
359
363
  end
360
364
  end
361
- Adhearsion::Plugin.tasks.length.should == 1
365
+ Adhearsion::Plugin.tasks.length.should be == 1
362
366
  end
363
367
 
364
368
  it "should execute the tasks blocks while loading rake tasks" do
365
- subject.length.should == 0
369
+ subject.length.should be == 0
366
370
  FooBar = Class.new Adhearsion::Plugin do
367
371
  tasks do
368
372
  FooBar.foo
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  module Adhearsion
@@ -11,7 +13,8 @@ module Adhearsion
11
13
  end
12
14
 
13
15
  it 'should trigger :stop_requested events on #shutdown' do
14
- flexmock(Events).should_receive(:trigger_immediately).once.with(:stop_requested)
16
+ flexmock(Events).should_receive(:trigger_immediately).once.with(:stop_requested).ordered
17
+ flexmock(Events).should_receive(:trigger_immediately).once.with(:shutdown).ordered
15
18
  Adhearsion::Process.booted
16
19
  Adhearsion::Process.shutdown
17
20
  end
@@ -56,15 +59,17 @@ module Adhearsion
56
59
  end
57
60
 
58
61
  it "should trigger shutdown handlers synchronously" do
59
- shutdown_value = []
62
+ foo = lambda { |b| b }
60
63
 
61
- Events.shutdown { shutdown_value << :foo }
62
- Events.shutdown { shutdown_value << :bar }
63
- Events.shutdown { shutdown_value << :baz }
64
+ flexmock(foo).should_receive(:[]).once.with(:a).ordered
65
+ flexmock(foo).should_receive(:[]).once.with(:b).ordered
66
+ flexmock(foo).should_receive(:[]).once.with(:c).ordered
64
67
 
65
- Adhearsion::Process.final_shutdown
68
+ Events.shutdown { sleep 2; foo[:a] }
69
+ Events.shutdown { sleep 1; foo[:b] }
70
+ Events.shutdown { foo[:c] }
66
71
 
67
- shutdown_value.should == [:foo, :bar, :baz]
72
+ Adhearsion::Process.final_shutdown
68
73
  end
69
74
 
70
75
  it "should stop the console" do
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  module Adhearsion
@@ -57,11 +59,11 @@ module Adhearsion
57
59
  subject { initialize_punchblock }
58
60
 
59
61
  it "should set properly the username value" do
60
- subject.username.should == 'usera@127.0.0.1'
62
+ subject.username.should be == 'usera@127.0.0.1'
61
63
  end
62
64
 
63
65
  it "should set properly the password value" do
64
- subject.password.should == '1'
66
+ subject.password.should be == '1'
65
67
  end
66
68
 
67
69
  it "should set properly the host value" do
@@ -85,15 +87,15 @@ module Adhearsion
85
87
  end
86
88
 
87
89
  it "should properly set the reconnect_attempts value" do
88
- subject.reconnect_attempts.should == 1.0/0.0
90
+ subject.reconnect_attempts.should be == 1.0/0.0
89
91
  end
90
92
 
91
93
  it "should properly set the reconnect_timer value" do
92
- subject.reconnect_timer.should == 5
94
+ subject.reconnect_timer.should be == 5
93
95
  end
94
96
 
95
97
  it "should properly set the media_engine value" do
96
- subject.media_engine.should == nil
98
+ subject.media_engine.should be == nil
97
99
  end
98
100
  end
99
101
 
@@ -107,9 +109,9 @@ module Adhearsion
107
109
  end
108
110
 
109
111
  it "starts the client with any overridden settings" do
110
- overrides = {:username => 'userb@127.0.0.1', :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}
112
+ overrides = {:username => 'userb@127.0.0.1/foo', :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}
111
113
 
112
- flexmock(::Punchblock::Connection::XMPP).should_receive(:new).once.with(overrides.merge({:username => 'userb@127.0.0.1/hostname-1234'})).and_return do
114
+ flexmock(::Punchblock::Connection::XMPP).should_receive(:new).once.with(overrides).and_return do
113
115
  flexmock 'Client', :event_handler= => true
114
116
  end
115
117
  initialize_punchblock overrides
@@ -124,7 +126,7 @@ module Adhearsion
124
126
  flexmock(mock_connection).should_receive(:run).once
125
127
  t = Thread.new { Initializer.init; Initializer.run }
126
128
  t.join 5
127
- t.status.should == "sleep"
129
+ t.status.should be == "sleep"
128
130
  Events.trigger_immediately :punchblock, ::Punchblock::Connection::Connected.new
129
131
  t.join
130
132
  end
@@ -147,17 +149,17 @@ module Adhearsion
147
149
 
148
150
  it 'should reset the Adhearsion process state to "booting"' do
149
151
  Adhearsion::Process.booted
150
- Adhearsion::Process.state_name.should == :running
152
+ Adhearsion::Process.state_name.should be == :running
151
153
  mock_client.should_receive(:run).and_raise ::Punchblock::DisconnectedError
152
- expect { Initializer.connect_to_server }.should raise_error ::Punchblock::DisconnectedError
153
- Adhearsion::Process.state_name.should == :booting
154
+ flexmock(Adhearsion::Process).should_receive(:reset).at_least.once
155
+ Initializer.connect_to_server
154
156
  end
155
157
 
156
158
  it 'should retry the connection the specified number of times' do
157
159
  Initializer.config.reconnect_attempts = 3
158
160
  mock_client.should_receive(:run).and_raise ::Punchblock::DisconnectedError
159
- expect { Initializer.connect_to_server }.should raise_error ::Punchblock::DisconnectedError
160
- Initializer.attempts.should == 3
161
+ Initializer.connect_to_server
162
+ Initializer.attempts.should be == 3
161
163
  end
162
164
 
163
165
  it 'should preserve a Punchblock::ProtocolError exception and give up' do
@@ -294,13 +296,31 @@ module Adhearsion
294
296
  end
295
297
 
296
298
  it "should set properly the username value" do
297
- subject.username.should == 'userb@127.0.0.1'
299
+ subject.username.should be == 'userb@127.0.0.1'
298
300
  end
299
301
 
300
302
  it "should set properly the password value" do
301
- subject.password.should == 'abc123'
303
+ subject.password.should be == 'abc123'
304
+ end
305
+ end
306
+ end
307
+
308
+ it "should allow easily registering handlers for AMI events" do
309
+ result = nil
310
+ ami_event = Punchblock::Event::Asterisk::AMI::Event.new :name => 'foobar'
311
+ latch = CountDownLatch.new 1
312
+
313
+ Events.draw do
314
+ ami :name => 'foobar' do |event|
315
+ result = event
316
+ latch.countdown!
302
317
  end
303
318
  end
319
+
320
+ Initializer.handle_event ami_event
321
+
322
+ latch.wait(1).should be true
323
+ result.should be ami_event
304
324
  end
305
325
  end
306
326
  end
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  module Adhearsion
@@ -20,12 +22,13 @@ module Adhearsion
20
22
  end
21
23
 
22
24
  it "writes a command to the client" do
23
- flexmock(PunchblockPlugin.client).should_receive(:execute_command).once.with(message)
25
+ flexmock(PunchblockPlugin.client).should_receive(:execute_command).once.with(message, :async => true)
24
26
  PunchblockPlugin.execute_component message
25
27
  end
26
28
 
27
29
  it "blocks until a response is received" do
28
30
  slow_command = Punchblock::Command::Dial.new
31
+ slow_command.request!
29
32
  Thread.new do
30
33
  sleep 0.5
31
34
  slow_command.response = response
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  module Adhearsion
@@ -17,17 +19,17 @@ module Adhearsion
17
19
 
18
20
  subject { Route.new name, target, *guards }
19
21
 
20
- its(:name) { should == name }
21
- its(:target) { should == target }
22
- its(:guards) { should == guards }
22
+ its(:name) { should be == name }
23
+ its(:target) { should be == target }
24
+ its(:guards) { should be == guards }
23
25
  end
24
26
 
25
27
  describe "with a block target and guards" do
26
28
  subject { Route.new(name, *guards) { :foo } }
27
29
 
28
- its(:name) { should == name }
30
+ its(:name) { should be == name }
29
31
  its(:target) { should be_a Proc }
30
- its(:guards) { should == guards }
32
+ its(:guards) { should be == guards }
31
33
  end
32
34
  end
33
35
 
@@ -119,7 +121,7 @@ module Adhearsion
119
121
 
120
122
  it "should instruct the call to use a CallController with the correct block" do
121
123
  flexmock(call).should_receive(:execute_controller).once.with(CallController).and_return do |controller|
122
- controller.block.call.should == :foobar
124
+ controller.block.call.should be == :foobar
123
125
  end
124
126
  route.dispatcher.call call
125
127
  end
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  FooBarController = Class.new
@@ -39,16 +41,16 @@ module Adhearsion
39
41
  end
40
42
 
41
43
  it "should build up the routes with the correct data" do
42
- subject[0].name.should == 'calls from fred'
43
- subject[0].guards.should == [{:from => 'fred'}]
44
- subject[0].target.should == FooBarController
44
+ subject[0].name.should be == 'calls from fred'
45
+ subject[0].guards.should be == [{:from => 'fred'}]
46
+ subject[0].target.should be == FooBarController
45
47
 
46
- subject[1].name.should == 'calls from paul'
47
- subject[1].guards.should == [{:from => 'paul'}]
48
+ subject[1].name.should be == 'calls from paul'
49
+ subject[1].guards.should be == [{:from => 'paul'}]
48
50
  subject[1].target.should be_a Proc
49
51
 
50
- subject[2].name.should == 'catchall'
51
- subject[2].guards.should == []
52
+ subject[2].name.should be == 'catchall'
53
+ subject[2].guards.should be == []
52
54
  subject[2].target.should be_a Proc
53
55
  end
54
56
  end
@@ -73,17 +75,17 @@ module Adhearsion
73
75
 
74
76
  context 'with a call from fred' do
75
77
  let(:call) { flexmock 'Adhearsion::Call', :from => 'fred' }
76
- its(:name) { should == 'calls from fred' }
78
+ its(:name) { should be == 'calls from fred' }
77
79
  end
78
80
 
79
81
  context 'with a call from paul' do
80
82
  let(:call) { flexmock 'Adhearsion::Call', :from => 'paul' }
81
- its(:name) { should == 'calls from paul' }
83
+ its(:name) { should be == 'calls from paul' }
82
84
  end
83
85
 
84
86
  context 'with a call from frank' do
85
87
  let(:call) { flexmock 'Adhearsion::Call', :from => 'frank' }
86
- its(:name) { should == 'catchall' }
88
+ its(:name) { should be == 'catchall' }
87
89
  end
88
90
  end
89
91