ruby_speech 2.3.1-java → 3.0.1-java

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 (60) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.hound.yml +2 -0
  4. data/.travis.yml +25 -9
  5. data/CHANGELOG.md +19 -1
  6. data/README.md +14 -15
  7. data/Rakefile +2 -0
  8. data/ext/ruby_speech/RubySpeechGRXMLMatcher.java +17 -12
  9. data/ext/ruby_speech/RubySpeechService.java +1 -1
  10. data/ext/ruby_speech/extconf.rb +1 -1
  11. data/lib/ruby_speech/generic_element.rb +2 -2
  12. data/lib/ruby_speech/grxml/builtins.rb +18 -11
  13. data/lib/ruby_speech/grxml/grammar.rb +26 -4
  14. data/lib/ruby_speech/grxml/matcher.rb +2 -2
  15. data/lib/ruby_speech/grxml.rb +2 -0
  16. data/lib/ruby_speech/nlsml/builder.rb +2 -1
  17. data/lib/ruby_speech/nlsml/document.rb +5 -0
  18. data/lib/ruby_speech/ruby_speech.jar +0 -0
  19. data/lib/ruby_speech/ssml/break.rb +1 -2
  20. data/lib/ruby_speech/ssml/element.rb +13 -1
  21. data/lib/ruby_speech/ssml/mark.rb +0 -1
  22. data/lib/ruby_speech/ssml/prosody.rb +8 -5
  23. data/lib/ruby_speech/version.rb +1 -1
  24. data/ruby_speech.gemspec +13 -8
  25. data/spec/ruby_speech/grxml/builtins_spec.rb +80 -71
  26. data/spec/ruby_speech/grxml/grammar_spec.rb +168 -34
  27. data/spec/ruby_speech/grxml/item_spec.rb +33 -33
  28. data/spec/ruby_speech/grxml/match_spec.rb +1 -1
  29. data/spec/ruby_speech/grxml/matcher_spec.rb +103 -59
  30. data/spec/ruby_speech/grxml/max_match_spec.rb +2 -2
  31. data/spec/ruby_speech/grxml/no_match_spec.rb +2 -2
  32. data/spec/ruby_speech/grxml/one_of_spec.rb +6 -6
  33. data/spec/ruby_speech/grxml/potential_match_spec.rb +2 -2
  34. data/spec/ruby_speech/grxml/rule_spec.rb +17 -17
  35. data/spec/ruby_speech/grxml/ruleref_spec.rb +10 -10
  36. data/spec/ruby_speech/grxml/tag_spec.rb +5 -5
  37. data/spec/ruby_speech/grxml/token_spec.rb +7 -7
  38. data/spec/ruby_speech/grxml_spec.rb +25 -25
  39. data/spec/ruby_speech/nlsml_spec.rb +58 -10
  40. data/spec/ruby_speech/ssml/audio_spec.rb +19 -19
  41. data/spec/ruby_speech/ssml/break_spec.rb +42 -22
  42. data/spec/ruby_speech/ssml/desc_spec.rb +7 -7
  43. data/spec/ruby_speech/ssml/emphasis_spec.rb +21 -21
  44. data/spec/ruby_speech/ssml/mark_spec.rb +5 -5
  45. data/spec/ruby_speech/ssml/p_spec.rb +17 -17
  46. data/spec/ruby_speech/ssml/phoneme_spec.rb +8 -8
  47. data/spec/ruby_speech/ssml/prosody_spec.rb +82 -64
  48. data/spec/ruby_speech/ssml/s_spec.rb +16 -16
  49. data/spec/ruby_speech/ssml/say_as_spec.rb +9 -9
  50. data/spec/ruby_speech/ssml/speak_spec.rb +29 -29
  51. data/spec/ruby_speech/ssml/sub_spec.rb +7 -7
  52. data/spec/ruby_speech/ssml/voice_spec.rb +31 -31
  53. data/spec/ruby_speech/ssml_spec.rb +41 -17
  54. data/spec/ruby_speech_spec.rb +3 -3
  55. data/spec/spec_helper.rb +8 -3
  56. data/spec/support/dtmf_helper.rb +14 -0
  57. data/spec/support/grammar_matchers.rb +6 -6
  58. data/spec/support/match_examples.rb +5 -5
  59. data/spec/support/matchers.rb +1 -1
  60. metadata +109 -80
@@ -13,7 +13,7 @@ module RubySpeech
13
13
  its(:repeat) { should == 1 }
14
14
 
15
15
  it 'registers itself' do
16
- Element.class_from_registration(:item).should == Item
16
+ expect(Element.class_from_registration(:item)).to eq(Item)
17
17
  end
18
18
 
19
19
  describe "everything from a document" do
@@ -21,7 +21,7 @@ module RubySpeech
21
21
 
22
22
  subject { Element.import document }
23
23
 
24
- it { should be_instance_of Item }
24
+ it { is_expected.to be_instance_of Item }
25
25
 
26
26
  its(:weight) { should == 1.1 }
27
27
  its(:repeat) { should == 1 }
@@ -54,16 +54,16 @@ module RubySpeech
54
54
  its(:weight) { should == 1.1 }
55
55
 
56
56
  it "with valid value" do
57
- lambda { subject.weight = 1 }.should_not raise_error
58
- lambda { subject.weight = 1.0 }.should_not raise_error
59
- lambda { subject.weight = 0.1 }.should_not raise_error
60
- lambda { subject.weight = '.1' }.should_not raise_error
61
- lambda { subject.weight = '1.' }.should_not raise_error
57
+ expect { subject.weight = 1 }.not_to raise_error
58
+ expect { subject.weight = 1.0 }.not_to raise_error
59
+ expect { subject.weight = 0.1 }.not_to raise_error
60
+ expect { subject.weight = '.1' }.not_to raise_error
61
+ expect { subject.weight = '1.' }.not_to raise_error
62
62
  end
63
63
 
64
64
  it "with an invalid value" do
65
- lambda { subject.weight = 'one' }.should raise_error(ArgumentError, "A Item's weight attribute must be a positive floating point number")
66
- lambda { subject.weight = -1 }.should raise_error(ArgumentError, "A Item's weight attribute must be a positive floating point number")
65
+ expect { subject.weight = 'one' }.to raise_error(ArgumentError, "A Item's weight attribute must be a positive floating point number")
66
+ expect { subject.weight = -1 }.to raise_error(ArgumentError, "A Item's weight attribute must be a positive floating point number")
67
67
  end
68
68
  end
69
69
  end
@@ -87,8 +87,8 @@ module RubySpeech
87
87
  end
88
88
 
89
89
  it "invalid values" do
90
- lambda { subject.repeat = -1 }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
91
- lambda { subject.repeat = 'one' }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
90
+ expect { subject.repeat = -1 }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
91
+ expect { subject.repeat = 'one' }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
92
92
  end
93
93
  end
94
94
 
@@ -111,12 +111,12 @@ module RubySpeech
111
111
  end
112
112
 
113
113
  it "illegal ranges from m to n" do
114
- lambda { subject.repeat = '5-1' }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
115
- lambda { subject.repeat = '-1-2' }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
116
- lambda { subject.repeat = '1-2-3' }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
117
- lambda { subject.repeat = '1-B' }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
118
- lambda { subject.repeat = -1..2 }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
119
- lambda { subject.repeat = 1..-2 }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
114
+ expect { subject.repeat = '5-1' }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
115
+ expect { subject.repeat = '-1-2' }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
116
+ expect { subject.repeat = '1-2-3' }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
117
+ expect { subject.repeat = '1-B' }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
118
+ expect { subject.repeat = -1..2 }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
119
+ expect { subject.repeat = 1..-2 }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
120
120
  end
121
121
 
122
122
  context "valid ranges of m or more" do
@@ -134,8 +134,8 @@ module RubySpeech
134
134
  end
135
135
 
136
136
  it "illegal ranges for m or more" do
137
- lambda { subject.repeat = '-1-' }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
138
- lambda { subject.repeat = 'B-' }.should raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
137
+ expect { subject.repeat = '-1-' }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
138
+ expect { subject.repeat = 'B-' }.to raise_error(ArgumentError, "A Item's repeat must be 0 or a positive integer")
139
139
  end
140
140
  end
141
141
  end
@@ -143,17 +143,17 @@ module RubySpeech
143
143
  # repeat probability (repeat-prob) -- http://www.w3.org/TR/speech-grammar/#S2.5.1
144
144
  describe "#repeat_prob" do
145
145
  it "should handle all valid values" do
146
- lambda { subject.repeat_prob = 0 }.should_not raise_error
147
- lambda { subject.repeat_prob = 1 }.should_not raise_error
148
- lambda { subject.repeat_prob = 1.0 }.should_not raise_error
149
- lambda { subject.repeat_prob = '1.' }.should_not raise_error
150
- lambda { subject.repeat_prob = '1.0' }.should_not raise_error
151
- lambda { subject.repeat_prob = '.5' }.should_not raise_error
146
+ expect { subject.repeat_prob = 0 }.not_to raise_error
147
+ expect { subject.repeat_prob = 1 }.not_to raise_error
148
+ expect { subject.repeat_prob = 1.0 }.not_to raise_error
149
+ expect { subject.repeat_prob = '1.' }.not_to raise_error
150
+ expect { subject.repeat_prob = '1.0' }.not_to raise_error
151
+ expect { subject.repeat_prob = '.5' }.not_to raise_error
152
152
  end
153
153
 
154
154
  it "should raise an error for invalid values" do
155
- lambda { subject.repeat_prob = -1 }.should raise_error(ArgumentError, "A Item's repeat probablity attribute must be a floating point number between 0.0 and 1.0")
156
- lambda { subject.repeat_prob = 1.5 }.should raise_error(ArgumentError, "A Item's repeat probablity attribute must be a floating point number between 0.0 and 1.0")
155
+ expect { subject.repeat_prob = -1 }.to raise_error(ArgumentError, "A Item's repeat probablity attribute must be a floating point number between 0.0 and 1.0")
156
+ expect { subject.repeat_prob = 1.5 }.to raise_error(ArgumentError, "A Item's repeat probablity attribute must be a floating point number between 0.0 and 1.0")
157
157
  end
158
158
  end
159
159
 
@@ -166,27 +166,27 @@ module RubySpeech
166
166
 
167
167
  describe "<<" do
168
168
  it "should accept String" do
169
- lambda { subject << 'anything' }.should_not raise_error
169
+ expect { subject << 'anything' }.not_to raise_error
170
170
  end
171
171
 
172
172
  it "should accept OneOf" do
173
- lambda { subject << OneOf.new(doc) }.should_not raise_error
173
+ expect { subject << OneOf.new(doc) }.not_to raise_error
174
174
  end
175
175
 
176
176
  it "should accept Item" do
177
- lambda { subject << Item.new(doc) }.should_not raise_error
177
+ expect { subject << Item.new(doc) }.not_to raise_error
178
178
  end
179
179
 
180
180
  it "should accept Ruleref" do
181
- lambda { subject << Ruleref.new(doc) }.should_not raise_error
181
+ expect { subject << Ruleref.new(doc) }.not_to raise_error
182
182
  end
183
183
 
184
184
  it "should accept Tag" do
185
- lambda { subject << Tag.new(doc) }.should_not raise_error
185
+ expect { subject << Tag.new(doc) }.not_to raise_error
186
186
  end
187
187
 
188
188
  it "should accept Token" do
189
- lambda { subject << Token.new(doc) }.should_not raise_error
189
+ expect { subject << Token.new(doc) }.not_to raise_error
190
190
  end
191
191
  end
192
192
  end # Item
@@ -7,7 +7,7 @@ module RubySpeech
7
7
 
8
8
  describe "equality" do
9
9
  it "should never be equal to a MaxMatch" do
10
- described_class.new.should_not eql(MaxMatch.new)
10
+ expect(described_class.new).not_to eql(MaxMatch.new)
11
11
  end
12
12
  end
13
13
  end
@@ -23,17 +23,17 @@ module RubySpeech
23
23
  :confidence => 1,
24
24
  :utterance => '6',
25
25
  :interpretation => 'dtmf-6'
26
- subject.match(input).should == expected_match
27
- input.should == '6'
26
+ expect(subject.match(input)).to eq(expected_match)
27
+ expect(input).to eq('6')
28
28
  end
29
29
 
30
30
  it "should potentially match an empty buffer" do
31
- subject.match('').should == GRXML::PotentialMatch.new
31
+ expect(subject.match('')).to eq(GRXML::PotentialMatch.new)
32
32
  end
33
33
 
34
34
  %w{1 2 3 4 5 7 8 9 10 66 26 61}.each do |input|
35
35
  it "should not match '#{input}'" do
36
- subject.match(input).should == GRXML::NoMatch.new
36
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
37
37
  end
38
38
  end
39
39
  end
@@ -69,7 +69,7 @@ module RubySpeech
69
69
  it "should return the literal tag interpretation" do
70
70
  expected_match = GRXML::MaxMatch.new mode: :dtmf, confidence: 1,
71
71
  utterance: '2', interpretation: 'bar'
72
- subject.match('2').should == expected_match
72
+ expect(subject.match('2')).to eq(expected_match)
73
73
  end
74
74
  end
75
75
 
@@ -87,18 +87,18 @@ module RubySpeech
87
87
  :confidence => 1,
88
88
  :utterance => '56',
89
89
  :interpretation => 'dtmf-5 dtmf-6'
90
- subject.match('56').should == expected_match
90
+ expect(subject.match('56')).to eq(expected_match)
91
91
  end
92
92
 
93
93
  it "should potentially match '5'" do
94
94
  input = '5'
95
- subject.match(input).should == GRXML::PotentialMatch.new
96
- input.should == '5'
95
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
96
+ expect(input).to eq('5')
97
97
  end
98
98
 
99
99
  %w{* *7 #6 6* 1 2 3 4 6 7 8 9 10 65 57 46 26 61}.each do |input|
100
100
  it "should not match '#{input}'" do
101
- subject.match(input).should == GRXML::NoMatch.new
101
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
102
102
  end
103
103
  end
104
104
  end
@@ -117,16 +117,16 @@ module RubySpeech
117
117
  :confidence => 1,
118
118
  :utterance => '*6',
119
119
  :interpretation => 'dtmf-star dtmf-6'
120
- subject.match('*6').should == expected_match
120
+ expect(subject.match('*6')).to eq(expected_match)
121
121
  end
122
122
 
123
123
  it "should potentially match '*'" do
124
- subject.match('*').should == GRXML::PotentialMatch.new
124
+ expect(subject.match('*')).to eq(GRXML::PotentialMatch.new)
125
125
  end
126
126
 
127
127
  %w{*7 #6 6* 1 2 3 4 5 6 7 8 9 10 66 26 61}.each do |input|
128
128
  it "should not match '#{input}'" do
129
- subject.match(input).should == GRXML::NoMatch.new
129
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
130
130
  end
131
131
  end
132
132
  end
@@ -145,16 +145,16 @@ module RubySpeech
145
145
  :confidence => 1,
146
146
  :utterance => '#6',
147
147
  :interpretation => 'dtmf-pound dtmf-6'
148
- subject.match('#6').should == expected_match
148
+ expect(subject.match('#6')).to eq(expected_match)
149
149
  end
150
150
 
151
151
  it "should potentially match '#'" do
152
- subject.match('#').should == GRXML::PotentialMatch.new
152
+ expect(subject.match('#')).to eq(GRXML::PotentialMatch.new)
153
153
  end
154
154
 
155
155
  %w{* *6 #7 6* 1 2 3 4 5 6 7 8 9 10 66 26 61}.each do |input|
156
156
  it "should not match '#{input}'" do
157
- subject.match(input).should == GRXML::NoMatch.new
157
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
158
158
  end
159
159
  end
160
160
  end
@@ -178,16 +178,16 @@ module RubySpeech
178
178
  :confidence => 1,
179
179
  :utterance => '*6',
180
180
  :interpretation => 'dtmf-star dtmf-6'
181
- subject.match('*6').should == expected_match
181
+ expect(subject.match('*6')).to eq(expected_match)
182
182
  end
183
183
 
184
184
  it "should potentially match '*'" do
185
- subject.match('*').should == GRXML::PotentialMatch.new
185
+ expect(subject.match('*')).to eq(GRXML::PotentialMatch.new)
186
186
  end
187
187
 
188
188
  %w{*7 #6 6* 1 2 3 4 5 6 7 8 9 10 66 26 61}.each do |input|
189
189
  it "should not match '#{input}'" do
190
- subject.match(input).should == GRXML::NoMatch.new
190
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
191
191
  end
192
192
  end
193
193
  end
@@ -209,7 +209,7 @@ module RubySpeech
209
209
  :confidence => 1,
210
210
  :utterance => '6',
211
211
  :interpretation => 'dtmf-6'
212
- subject.match('6').should == expected_match
212
+ expect(subject.match('6')).to eq(expected_match)
213
213
  end
214
214
 
215
215
  it "should maximally match '7'" do
@@ -217,12 +217,12 @@ module RubySpeech
217
217
  :confidence => 1,
218
218
  :utterance => '7',
219
219
  :interpretation => 'dtmf-7'
220
- subject.match('7').should == expected_match
220
+ expect(subject.match('7')).to eq(expected_match)
221
221
  end
222
222
 
223
223
  %w{* # 1 2 3 4 5 8 9 10 66 26 61}.each do |input|
224
224
  it "should not match '#{input}'" do
225
- subject.match(input).should == GRXML::NoMatch.new
225
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
226
226
  end
227
227
  end
228
228
  end
@@ -250,7 +250,7 @@ module RubySpeech
250
250
  :confidence => 1,
251
251
  :utterance => '65',
252
252
  :interpretation => 'dtmf-6 dtmf-5'
253
- subject.match('65').should == expected_match
253
+ expect(subject.match('65')).to eq(expected_match)
254
254
  end
255
255
 
256
256
  it "should maximally match '72'" do
@@ -258,18 +258,18 @@ module RubySpeech
258
258
  :confidence => 1,
259
259
  :utterance => '72',
260
260
  :interpretation => 'dtmf-7 dtmf-2'
261
- subject.match('72').should == expected_match
261
+ expect(subject.match('72')).to eq(expected_match)
262
262
  end
263
263
 
264
264
  %w{6 7}.each do |input|
265
265
  it "should potentially match '#{input}'" do
266
- subject.match(input).should == GRXML::PotentialMatch.new
266
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
267
267
  end
268
268
  end
269
269
 
270
270
  %w{* # 1 2 3 4 5 8 9 10 66 26 61 75}.each do |input|
271
271
  it "should not match '#{input}'" do
272
- subject.match(input).should == GRXML::NoMatch.new
272
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
273
273
  end
274
274
  end
275
275
  end
@@ -299,7 +299,7 @@ module RubySpeech
299
299
  :confidence => 1,
300
300
  :utterance => '652',
301
301
  :interpretation => 'dtmf-6 dtmf-5 dtmf-2'
302
- subject.match('652').should == expected_match
302
+ expect(subject.match('652')).to eq(expected_match)
303
303
  end
304
304
 
305
305
  it "should maximally match '728'" do
@@ -307,18 +307,18 @@ module RubySpeech
307
307
  :confidence => 1,
308
308
  :utterance => '728',
309
309
  :interpretation => 'dtmf-7 dtmf-2 dtmf-8'
310
- subject.match('728').should == expected_match
310
+ expect(subject.match('728')).to eq(expected_match)
311
311
  end
312
312
 
313
313
  %w{6 65 7 72}.each do |input|
314
314
  it "should potentially match '#{input}'" do
315
- subject.match(input).should == GRXML::PotentialMatch.new
315
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
316
316
  end
317
317
  end
318
318
 
319
319
  %w{* # 1 2 3 4 5 8 9 10 66 26 61 75 729 654}.each do |input|
320
320
  it "should not match '#{input}'" do
321
- subject.match(input).should == GRXML::NoMatch.new
321
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
322
322
  end
323
323
  end
324
324
  end
@@ -341,7 +341,7 @@ module RubySpeech
341
341
  :confidence => 1,
342
342
  :utterance => '*6',
343
343
  :interpretation => 'dtmf-star dtmf-6'
344
- subject.match('*6').should == expected_match
344
+ expect(subject.match('*6')).to eq(expected_match)
345
345
  end
346
346
 
347
347
  it "should maximally match '*7'" do
@@ -349,16 +349,16 @@ module RubySpeech
349
349
  :confidence => 1,
350
350
  :utterance => '*7',
351
351
  :interpretation => 'dtmf-star dtmf-7'
352
- subject.match('*7').should == expected_match
352
+ expect(subject.match('*7')).to eq(expected_match)
353
353
  end
354
354
 
355
355
  it "should potentially match '*'" do
356
- subject.match('*').should == GRXML::PotentialMatch.new
356
+ expect(subject.match('*')).to eq(GRXML::PotentialMatch.new)
357
357
  end
358
358
 
359
359
  %w{*8 #6 6* 1 2 3 4 5 6 7 8 9 10 66 26 61}.each do |input|
360
360
  it "should not match '#{input}'" do
361
- subject.match(input).should == GRXML::NoMatch.new
361
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
362
362
  end
363
363
  end
364
364
  end
@@ -381,7 +381,7 @@ module RubySpeech
381
381
  :confidence => 1,
382
382
  :utterance => '6*',
383
383
  :interpretation => 'dtmf-6 dtmf-star'
384
- subject.match('6*').should == expected_match
384
+ expect(subject.match('6*')).to eq(expected_match)
385
385
  end
386
386
 
387
387
  it "should maximally match '7*'" do
@@ -389,22 +389,22 @@ module RubySpeech
389
389
  :confidence => 1,
390
390
  :utterance => '7*',
391
391
  :interpretation => 'dtmf-7 dtmf-star'
392
- subject.match('7*').should == expected_match
392
+ expect(subject.match('7*')).to eq(expected_match)
393
393
  end
394
394
 
395
395
  %w{6 7}.each do |input|
396
396
  it "should potentially match '#{input}'" do
397
- subject.match(input).should == GRXML::PotentialMatch.new
397
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
398
398
  end
399
399
  end
400
400
 
401
401
  it "should potentially match '7'" do
402
- subject.match('7').should == GRXML::PotentialMatch.new
402
+ expect(subject.match('7')).to eq(GRXML::PotentialMatch.new)
403
403
  end
404
404
 
405
405
  %w{8* 6# *6 *7 1 2 3 4 5 8 9 10 66 26 61}.each do |input|
406
406
  it "should not match '#{input}'" do
407
- subject.match(input).should == GRXML::NoMatch.new
407
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
408
408
  end
409
409
  end
410
410
  end
@@ -426,18 +426,18 @@ module RubySpeech
426
426
  :confidence => 1,
427
427
  :utterance => '166',
428
428
  :interpretation => 'dtmf-1 dtmf-6 dtmf-6'
429
- subject.match('166').should == expected_match
429
+ expect(subject.match('166')).to eq(expected_match)
430
430
  end
431
431
 
432
432
  %w{1 16}.each do |input|
433
433
  it "should potentially match '#{input}'" do
434
- subject.match(input).should == GRXML::PotentialMatch.new
434
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
435
435
  end
436
436
  end
437
437
 
438
438
  %w{1666 16666 17}.each do |input|
439
439
  it "should not match '#{input}'" do
440
- subject.match(input).should == GRXML::NoMatch.new
440
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
441
441
  end
442
442
  end
443
443
  end
@@ -459,18 +459,18 @@ module RubySpeech
459
459
  :confidence => 1,
460
460
  :utterance => '661',
461
461
  :interpretation => 'dtmf-6 dtmf-6 dtmf-1'
462
- subject.match('661').should == expected_match
462
+ expect(subject.match('661')).to eq(expected_match)
463
463
  end
464
464
 
465
465
  %w{6 66}.each do |input|
466
466
  it "should potentially match '#{input}'" do
467
- subject.match(input).should == GRXML::PotentialMatch.new
467
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
468
468
  end
469
469
  end
470
470
 
471
471
  %w{61 6661 66661 71 771}.each do |input|
472
472
  it "should not match '#{input}'" do
473
- subject.match(input).should == GRXML::NoMatch.new
473
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
474
474
  end
475
475
  end
476
476
  end
@@ -492,7 +492,7 @@ module RubySpeech
492
492
  :confidence => 1,
493
493
  :utterance => '1666',
494
494
  :interpretation => 'dtmf-1 dtmf-6 dtmf-6 dtmf-6'
495
- subject.match('1666').should == expected_match
495
+ expect(subject.match('1666')).to eq(expected_match)
496
496
  end
497
497
 
498
498
  {
@@ -505,13 +505,57 @@ module RubySpeech
505
505
  :confidence => 1,
506
506
  :utterance => input,
507
507
  :interpretation => interpretation
508
- subject.match(input).should == expected_match
508
+ expect(subject.match(input)).to eq(expected_match)
509
509
  end
510
510
  end
511
511
 
512
512
  %w{6 16666 17}.each do |input|
513
513
  it "should not match '#{input}'" do
514
- subject.match(input).should == GRXML::NoMatch.new
514
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
515
+ end
516
+ end
517
+ end
518
+
519
+ context "with a grammar that takes a a specific digit repeated within a range" do
520
+ let(:grammar) do
521
+ GRXML.draw :mode => :dtmf, :root => 'digits' do
522
+ rule :id => 'digits' do
523
+ item :repeat => 0..3 do
524
+ '6'
525
+ end
526
+ end
527
+ end
528
+ end
529
+
530
+ {
531
+ '' => '',
532
+ '6' => 'dtmf-6',
533
+ '66' => 'dtmf-6 dtmf-6',
534
+ }.each_pair do |input, interpretation|
535
+ it "should match '#{input}'" do
536
+ expected_match = GRXML::Match.new :mode => :dtmf,
537
+ :confidence => 1,
538
+ :utterance => input,
539
+ :interpretation => interpretation
540
+ expect(subject.match(input)).to eq(expected_match)
541
+ end
542
+ end
543
+
544
+ {
545
+ '666' => 'dtmf-6 dtmf-6 dtmf-6',
546
+ }.each_pair do |input, interpretation|
547
+ it "should maximally match '#{input}'" do
548
+ expected_match = GRXML::MaxMatch.new :mode => :dtmf,
549
+ :confidence => 1,
550
+ :utterance => input,
551
+ :interpretation => interpretation
552
+ expect(subject.match(input)).to eq(expected_match)
553
+ end
554
+ end
555
+
556
+ %w{6666 7}.each do |input|
557
+ it "should not match '#{input}'" do
558
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
515
559
  end
516
560
  end
517
561
  end
@@ -539,19 +583,19 @@ module RubySpeech
539
583
  :confidence => 1,
540
584
  :utterance => input,
541
585
  :interpretation => interpretation
542
- subject.match(input).should == expected_match
586
+ expect(subject.match(input)).to eq(expected_match)
543
587
  end
544
588
  end
545
589
 
546
590
  %w{6 66 666}.each do |input|
547
591
  it "should potentially match '#{input}'" do
548
- subject.match(input).should == GRXML::PotentialMatch.new
592
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
549
593
  end
550
594
  end
551
595
 
552
596
  %w{66661 71}.each do |input|
553
597
  it "should not match '#{input}'" do
554
- subject.match(input).should == GRXML::NoMatch.new
598
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
555
599
  end
556
600
  end
557
601
  end
@@ -578,19 +622,19 @@ module RubySpeech
578
622
  :confidence => 1,
579
623
  :utterance => input,
580
624
  :interpretation => interpretation
581
- subject.match(input).should == expected_match
625
+ expect(subject.match(input)).to eq(expected_match)
582
626
  end
583
627
  end
584
628
 
585
629
  %w{1 16}.each do |input|
586
630
  it "should potentially match '#{input}'" do
587
- subject.match(input).should == GRXML::PotentialMatch.new
631
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
588
632
  end
589
633
  end
590
634
 
591
635
  %w{7 17}.each do |input|
592
636
  it "should not match '#{input}'" do
593
- subject.match(input).should == GRXML::NoMatch.new
637
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
594
638
  end
595
639
  end
596
640
  end
@@ -617,19 +661,19 @@ module RubySpeech
617
661
  :confidence => 1,
618
662
  :utterance => input,
619
663
  :interpretation => interpretation
620
- subject.match(input).should == expected_match
664
+ expect(subject.match(input)).to eq(expected_match)
621
665
  end
622
666
  end
623
667
 
624
668
  %w{6 66}.each do |input|
625
669
  it "should potentially match '#{input}'" do
626
- subject.match(input).should == GRXML::PotentialMatch.new
670
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
627
671
  end
628
672
  end
629
673
 
630
674
  %w{7 71 61}.each do |input|
631
675
  it "should not match '#{input}'" do
632
- subject.match(input).should == GRXML::NoMatch.new
676
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
633
677
  end
634
678
  end
635
679
  end
@@ -670,19 +714,19 @@ module RubySpeech
670
714
  :confidence => 1,
671
715
  :utterance => input,
672
716
  :interpretation => interpretation
673
- subject.match(input).should == expected_match
717
+ expect(subject.match(input)).to eq(expected_match)
674
718
  end
675
719
  end
676
720
 
677
721
  %w{* 1 12 123 1234}.each do |input|
678
722
  it "should potentially match '#{input}'" do
679
- subject.match(input).should == GRXML::PotentialMatch.new
723
+ expect(subject.match(input)).to eq(GRXML::PotentialMatch.new)
680
724
  end
681
725
  end
682
726
 
683
727
  %w{11111 #1111 *7}.each do |input|
684
728
  it "should not match '#{input}'" do
685
- subject.match(input).should == GRXML::NoMatch.new
729
+ expect(subject.match(input)).to eq(GRXML::NoMatch.new)
686
730
  end
687
731
  end
688
732
  end
@@ -5,11 +5,11 @@ module RubySpeech
5
5
  describe MaxMatch do
6
6
  it_behaves_like "match"
7
7
 
8
- it { should be_a Match }
8
+ it { is_expected.to be_a Match }
9
9
 
10
10
  describe "equality" do
11
11
  it "should never be equal to a MaxMatch" do
12
- described_class.new.should_not eql(Match.new)
12
+ expect(described_class.new).not_to eql(Match.new)
13
13
  end
14
14
  end
15
15
  end
@@ -5,11 +5,11 @@ module RubySpeech
5
5
  describe NoMatch do
6
6
  describe "equality" do
7
7
  it "should be equal to another NoMatch" do
8
- NoMatch.new.should == NoMatch.new
8
+ expect(NoMatch.new).to eq(NoMatch.new)
9
9
  end
10
10
 
11
11
  it "should not equal a match" do
12
- NoMatch.new.should_not == Match.new
12
+ expect(NoMatch.new).not_to eq(Match.new)
13
13
  end
14
14
  end
15
15
  end