adhearsion 2.0.0.rc4 → 2.0.0.rc5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/CHANGELOG.md +4 -0
  2. data/adhearsion.gemspec +1 -1
  3. data/bin/ahn +0 -3
  4. data/lib/adhearsion.rb +7 -4
  5. data/lib/adhearsion/call.rb +1 -1
  6. data/lib/adhearsion/call_controller.rb +1 -0
  7. data/lib/adhearsion/call_controller/menu_dsl.rb +19 -0
  8. data/lib/adhearsion/call_controller/menu_dsl/calculated_match.rb +43 -0
  9. data/lib/adhearsion/call_controller/menu_dsl/calculated_match_collection.rb +45 -0
  10. data/lib/adhearsion/call_controller/menu_dsl/fixnum_match_calculator.rb +22 -0
  11. data/lib/adhearsion/call_controller/menu_dsl/match_calculator.rb +40 -0
  12. data/lib/adhearsion/call_controller/menu_dsl/menu.rb +203 -0
  13. data/lib/adhearsion/call_controller/menu_dsl/menu_builder.rb +84 -0
  14. data/lib/adhearsion/call_controller/menu_dsl/range_match_calculator.rb +60 -0
  15. data/lib/adhearsion/call_controller/menu_dsl/string_match_calculator.rb +25 -0
  16. data/lib/adhearsion/cli.rb +0 -1
  17. data/lib/adhearsion/router/route.rb +2 -2
  18. data/lib/adhearsion/version.rb +1 -1
  19. data/spec/adhearsion/call_controller/input_spec.rb +1 -1
  20. data/spec/adhearsion/call_controller/menu_dsl/calculated_match_collection_spec.rb +60 -0
  21. data/spec/adhearsion/call_controller/menu_dsl/calculated_match_spec.rb +61 -0
  22. data/spec/adhearsion/call_controller/menu_dsl/fixnum_match_calculator_spec.rb +37 -0
  23. data/spec/adhearsion/call_controller/menu_dsl/match_calculator_spec.rb +17 -0
  24. data/spec/adhearsion/call_controller/menu_dsl/menu_builder_spec.rb +151 -0
  25. data/spec/adhearsion/call_controller/menu_dsl/menu_spec.rb +373 -0
  26. data/spec/adhearsion/call_controller/menu_dsl/range_match_calculator_spec.rb +32 -0
  27. data/spec/adhearsion/call_controller/menu_dsl/string_match_calculator_spec.rb +40 -0
  28. metadata +91 -91
  29. data/lib/adhearsion/menu_dsl.rb +0 -17
  30. data/lib/adhearsion/menu_dsl/calculated_match.rb +0 -41
  31. data/lib/adhearsion/menu_dsl/calculated_match_collection.rb +0 -43
  32. data/lib/adhearsion/menu_dsl/fixnum_match_calculator.rb +0 -20
  33. data/lib/adhearsion/menu_dsl/match_calculator.rb +0 -38
  34. data/lib/adhearsion/menu_dsl/menu.rb +0 -201
  35. data/lib/adhearsion/menu_dsl/menu_builder.rb +0 -82
  36. data/lib/adhearsion/menu_dsl/range_match_calculator.rb +0 -58
  37. data/lib/adhearsion/menu_dsl/string_match_calculator.rb +0 -23
  38. data/spec/adhearsion/menu_dsl/calculated_match_collection_spec.rb +0 -58
  39. data/spec/adhearsion/menu_dsl/calculated_match_spec.rb +0 -59
  40. data/spec/adhearsion/menu_dsl/fixnum_match_calculator_spec.rb +0 -35
  41. data/spec/adhearsion/menu_dsl/match_calculator_spec.rb +0 -15
  42. data/spec/adhearsion/menu_dsl/menu_builder_spec.rb +0 -149
  43. data/spec/adhearsion/menu_dsl/menu_spec.rb +0 -371
  44. data/spec/adhearsion/menu_dsl/range_match_calculator_spec.rb +0 -30
  45. data/spec/adhearsion/menu_dsl/string_match_calculator_spec.rb +0 -38
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Adhearsion
6
- module MenuDSL
7
-
8
- describe RangeMatchCalculator do
9
- it "matching with a Range should handle the case of two potential matches in the range" do
10
- digits_that_begin_with_eleven = [110..119, 1100..1111].map { |x| Array(x) }.flatten
11
- calculator = RangeMatchCalculator.new 11..1111, :match_payload_doesnt_matter
12
- match = calculator.match 11
13
- match.exact_matches.should be == [11]
14
- match.potential_matches.should be == digits_that_begin_with_eleven
15
- end
16
-
17
- it "return values of #match should be an instance of CalculatedMatch" do
18
- calculator = RangeMatchCalculator.new 1..9, :match_payload_doesnt_matter
19
- calculator.match(0).should be_an_instance_of CalculatedMatch
20
- calculator.match(1000).should be_an_instance_of CalculatedMatch
21
- end
22
-
23
- it "returns a failed match if the query is not numeric or coercible to numeric" do
24
- calculator = RangeMatchCalculator.new 1..9, :match_payload_doesnt_matter
25
- calculator.match("ABC").should be_an_instance_of CalculatedMatch
26
- end
27
- end
28
-
29
- end
30
- end
@@ -1,38 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Adhearsion
6
- module MenuDSL
7
- describe StringMatchCalculator do
8
-
9
- let(:match_payload) { :doesnt_matter }
10
-
11
- it "numerical digits mixed with special digits" do
12
- %w[5*11#3 5*** ###].each do |str|
13
- calculator = StringMatchCalculator.new str, match_payload
14
-
15
- match_case = calculator.match str[0,2]
16
- match_case.exact_match?.should_not be true
17
- match_case.potential_match?.should be true
18
- match_case.potential_matches.should be == [str]
19
-
20
- match_case = calculator.match str
21
- match_case.exact_match?.should be true
22
- match_case.potential_match?.should_not be true
23
- match_case.exact_matches.should be == [str]
24
- end
25
- end
26
-
27
- it "matching the special DTMF characters such as * and #" do
28
- %w[* #].each do |special_digit|
29
- calculator = StringMatchCalculator.new(special_digit, match_payload)
30
- match_case = calculator.match special_digit
31
- match_case.potential_match?.should_not be true
32
- match_case.exact_match?.should be true
33
- match_case.exact_matches.first.should be == special_digit
34
- end
35
- end
36
- end
37
- end
38
- end