adhearsion 2.0.0.rc4 → 2.0.0.rc5

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 (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