ruby_speech 0.5.0 → 0.5.1

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.
@@ -45,6 +45,243 @@ module RubySpeech
45
45
  end
46
46
  end
47
47
 
48
+ describe "#potential_match?" do
49
+ before do
50
+ items.each { |item| subject << item }
51
+ end
52
+
53
+ context "with a single item of '6'" do
54
+ let(:items) { [Item.new << (Token.new << '6')] }
55
+
56
+ it "should be true for '6'" do
57
+ subject.potential_match?('6').should be true
58
+ end
59
+
60
+ %w{5 7}.each do |input|
61
+ it "should be false for '#{input}'" do
62
+ subject.potential_match?(input).should be false
63
+ end
64
+ end
65
+ end
66
+
67
+ context "with options of '6' or '7'" do
68
+ let(:items) { [Item.new << (Token.new << '6'), Item.new << (Token.new << '7')] }
69
+
70
+ %w{6 7}.each do |input|
71
+ it "should be true for '#{input}'" do
72
+ subject.potential_match?(input).should be true
73
+ end
74
+ end
75
+
76
+ %w{5 8 67 76}.each do |input|
77
+ it "should be false for '#{input}'" do
78
+ subject.potential_match?(input).should be false
79
+ end
80
+ end
81
+ end
82
+
83
+ context "with options of '67' or '25'" do
84
+ let(:items) { [Item.new << (Token.new << '6') << (Token.new << '7'), Item.new << (Token.new << '2') << (Token.new << '5')] }
85
+
86
+ %w{6 2}.each do |input|
87
+ it "should be true for '#{input}'" do
88
+ subject.potential_match?(input).should be true
89
+ end
90
+ end
91
+
92
+ %w{3 7 5 65 27 76 52}.each do |input|
93
+ it "should be false for '#{input}'" do
94
+ subject.potential_match?(input).should be false
95
+ end
96
+ end
97
+ end
98
+
99
+ context "with options of '678' or '251'" do
100
+ let(:items) { [Item.new << (Token.new << '6') << (Token.new << '7') << (Token.new << '8'), Item.new << (Token.new << '2') << (Token.new << '5') << (Token.new << '1')] }
101
+
102
+ %w{6 67 2 25}.each do |input|
103
+ it "should be true for '#{input}'" do
104
+ subject.potential_match?(input).should be true
105
+ end
106
+ end
107
+
108
+ %w{3 7 5 65 27 76 52}.each do |input|
109
+ it "should be false for '#{input}'" do
110
+ subject.potential_match?(input).should be false
111
+ end
112
+ end
113
+ end
114
+
115
+ context "with options of '6' or ('7' repeated twice)" do
116
+ let(:items) { [Item.new << (Token.new << '6'), Item.new << (Item.new(:repeat => 2) << (Token.new << '7'))] }
117
+
118
+ %w{6 7 77}.each do |input|
119
+ it "should be true for '#{input}'" do
120
+ pending
121
+ subject.potential_match?(input).should be true
122
+ end
123
+ end
124
+
125
+ %w{5 67 76 66}.each do |input|
126
+ it "should be false for '#{input}'" do
127
+ subject.potential_match?(input).should be false
128
+ end
129
+ end
130
+ end
131
+ end
132
+
133
+ describe "#longest_potential_match" do
134
+ before do
135
+ items.each { |item| subject << item }
136
+ end
137
+
138
+ context "with a single item of '6'" do
139
+ let(:items) { [Item.new << (Token.new << '6')] }
140
+
141
+ %w{6 65 6776}.each do |input|
142
+ it "should be '6' for '#{input}'" do
143
+ subject.longest_potential_match(input).should == '6'
144
+ end
145
+ end
146
+
147
+ %w{5 7 55 56}.each do |input|
148
+ it "should be '' for '#{input}'" do
149
+ subject.longest_potential_match(input).should == ''
150
+ end
151
+ end
152
+ end
153
+
154
+ context "with options of '6' or '7'" do
155
+ let(:items) { [Item.new << (Token.new << '6'), Item.new << (Token.new << '7')] }
156
+
157
+ %w{6 65 6776}.each do |input|
158
+ it "should be '6' for '#{input}'" do
159
+ subject.longest_potential_match(input).should == '6'
160
+ end
161
+ end
162
+
163
+ %w{7 74 726}.each do |input|
164
+ it "should be '7' for '#{input}'" do
165
+ subject.longest_potential_match(input).should == '7'
166
+ end
167
+ end
168
+
169
+ %w{5 55 56}.each do |input|
170
+ it "should be '' for '#{input}'" do
171
+ subject.longest_potential_match(input).should == ''
172
+ end
173
+ end
174
+ end
175
+
176
+ context "with options of '67' or '25'" do
177
+ let(:items) { [Item.new << (Token.new << '6') << (Token.new << '7'), Item.new << (Token.new << '2') << (Token.new << '5')] }
178
+
179
+ %w{6}.each do |input|
180
+ it "should be '6' for '#{input}'" do
181
+ subject.longest_potential_match(input).should == '6'
182
+ end
183
+ end
184
+
185
+ %w{67 675 6767 6756}.each do |input|
186
+ it "should be '67' for '#{input}'" do
187
+ subject.longest_potential_match(input).should == '67'
188
+ end
189
+ end
190
+
191
+ %w{2}.each do |input|
192
+ it "should be '2' for '#{input}'" do
193
+ subject.longest_potential_match(input).should == '2'
194
+ end
195
+ end
196
+
197
+ %w{25 259 2525 2567}.each do |input|
198
+ it "should be '25' for '#{input}'" do
199
+ subject.longest_potential_match(input).should == '25'
200
+ end
201
+ end
202
+
203
+ %w{5 7 72 56}.each do |input|
204
+ it "should be '' for '#{input}'" do
205
+ subject.longest_potential_match(input).should == ''
206
+ end
207
+ end
208
+ end
209
+
210
+ context "with options of '678' or '251'" do
211
+ let(:items) { [Item.new << (Token.new << '6') << (Token.new << '7') << (Token.new << '8'), Item.new << (Token.new << '2') << (Token.new << '5') << (Token.new << '1')] }
212
+
213
+ %w{6}.each do |input|
214
+ it "should be '6' for '#{input}'" do
215
+ subject.longest_potential_match(input).should == '6'
216
+ end
217
+ end
218
+
219
+ %w{67 675 6767 6756}.each do |input|
220
+ it "should be '67' for '#{input}'" do
221
+ subject.longest_potential_match(input).should == '67'
222
+ end
223
+ end
224
+
225
+ %w{678 6785 678678 67856}.each do |input|
226
+ it "should be '678' for '#{input}'" do
227
+ subject.longest_potential_match(input).should == '678'
228
+ end
229
+ end
230
+
231
+ %w{2}.each do |input|
232
+ it "should be '2' for '#{input}'" do
233
+ subject.longest_potential_match(input).should == '2'
234
+ end
235
+ end
236
+
237
+ %w{25 259 2525 2567}.each do |input|
238
+ it "should be '25' for '#{input}'" do
239
+ subject.longest_potential_match(input).should == '25'
240
+ end
241
+ end
242
+
243
+ %w{251 2519 251251 25167}.each do |input|
244
+ it "should be '251' for '#{input}'" do
245
+ subject.longest_potential_match(input).should == '251'
246
+ end
247
+ end
248
+
249
+ %w{5 7 72 56}.each do |input|
250
+ it "should be '' for '#{input}'" do
251
+ subject.longest_potential_match(input).should == ''
252
+ end
253
+ end
254
+ end
255
+
256
+ context "with options of '6' or '7' repeated twice" do
257
+ let(:items) { [Item.new << (Token.new << '6'), Item.new << (Item.new(:repeat => 2) << (Token.new << '7'))] }
258
+
259
+ %w{6 65 6776}.each do |input|
260
+ it "should be '6' for '#{input}'" do
261
+ subject.longest_potential_match(input).should == '6'
262
+ end
263
+ end
264
+
265
+ %w{7 74 726}.each do |input|
266
+ it "should be '7' for '#{input}'" do
267
+ subject.longest_potential_match(input).should == '7'
268
+ end
269
+ end
270
+
271
+ %w{7 77 774 7726}.each do |input|
272
+ it "should be '77' for '#{input}'" do
273
+ pending
274
+ subject.longest_potential_match(input).should == '77'
275
+ end
276
+ end
277
+
278
+ %w{5 55 56}.each do |input|
279
+ it "should be '' for '#{input}'" do
280
+ subject.longest_potential_match(input).should == ''
281
+ end
282
+ end
283
+ end
284
+ end
48
285
  end # OneOf
49
286
  end # GRXML
50
287
  end # RubySpeech
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ module RubySpeech
4
+ module GRXML
5
+ describe PotentialMatch do
6
+ describe "equality" do
7
+ it "should be equal to another PotentialMatch" do
8
+ PotentialMatch.new.should == PotentialMatch.new
9
+ end
10
+
11
+ it "should not equal a match" do
12
+ PotentialMatch.new.should_not == Match.new
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -51,6 +51,11 @@ module RubySpeech
51
51
  it "should accept String" do
52
52
  lambda { subject << 'anything' }.should_not raise_error
53
53
  end
54
+
55
+ it "should allow chaining" do
56
+ subject << 'foo' << 'bar'
57
+ subject.content.should == 'foobar'
58
+ end
54
59
  end
55
60
  end # Token
56
61
  end # GRXML
metadata CHANGED
@@ -1,215 +1,155 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby_speech
3
- version: !ruby/object:Gem::Version
4
- hash: 11
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 5
9
- - 0
10
- version: 0.5.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ben Langfeld
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-03 00:00:00 +00:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-01-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: niceogiri
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2157608980 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 25
30
- segments:
31
- - 0
32
- - 1
33
- - 1
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
34
21
  version: 0.1.1
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: activesupport
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2157608980
25
+ - !ruby/object:Gem::Dependency
26
+ name: activesupport
27
+ requirement: &2157608380 !ruby/object:Gem::Requirement
41
28
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 9
46
- segments:
47
- - 3
48
- - 0
49
- - 7
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
50
32
  version: 3.0.7
51
33
  type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: bundler
55
34
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2157608380
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ requirement: &2157607340 !ruby/object:Gem::Requirement
57
39
  none: false
58
- requirements:
40
+ requirements:
59
41
  - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 23
62
- segments:
63
- - 1
64
- - 0
65
- - 0
42
+ - !ruby/object:Gem::Version
66
43
  version: 1.0.0
67
44
  type: :development
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
45
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2157607340
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: &2157606780 !ruby/object:Gem::Requirement
73
50
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- hash: 19
78
- segments:
79
- - 2
80
- - 7
81
- - 0
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
82
54
  version: 2.7.0
83
55
  type: :development
84
- version_requirements: *id004
85
- - !ruby/object:Gem::Dependency
86
- name: ci_reporter
87
56
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *2157606780
58
+ - !ruby/object:Gem::Dependency
59
+ name: ci_reporter
60
+ requirement: &2157606300 !ruby/object:Gem::Requirement
89
61
  none: false
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- hash: 9
94
- segments:
95
- - 1
96
- - 6
97
- - 3
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
98
65
  version: 1.6.3
99
66
  type: :development
100
- version_requirements: *id005
101
- - !ruby/object:Gem::Dependency
102
- name: yard
103
67
  prerelease: false
104
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *2157606300
69
+ - !ruby/object:Gem::Dependency
70
+ name: yard
71
+ requirement: &2157605820 !ruby/object:Gem::Requirement
105
72
  none: false
106
- requirements:
73
+ requirements:
107
74
  - - ~>
108
- - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 0
112
- - 7
113
- - 0
75
+ - !ruby/object:Gem::Version
114
76
  version: 0.7.0
115
77
  type: :development
116
- version_requirements: *id006
117
- - !ruby/object:Gem::Dependency
118
- name: rake
119
78
  prerelease: false
120
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *2157605820
80
+ - !ruby/object:Gem::Dependency
81
+ name: rake
82
+ requirement: &2157605100 !ruby/object:Gem::Requirement
121
83
  none: false
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- hash: 3
126
- segments:
127
- - 0
128
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
129
88
  type: :development
130
- version_requirements: *id007
131
- - !ruby/object:Gem::Dependency
132
- name: mocha
133
89
  prerelease: false
134
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *2157605100
91
+ - !ruby/object:Gem::Dependency
92
+ name: mocha
93
+ requirement: &2157604620 !ruby/object:Gem::Requirement
135
94
  none: false
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- hash: 3
140
- segments:
141
- - 0
142
- version: "0"
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
143
99
  type: :development
144
- version_requirements: *id008
145
- - !ruby/object:Gem::Dependency
146
- name: i18n
147
100
  prerelease: false
148
- requirement: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *2157604620
102
+ - !ruby/object:Gem::Dependency
103
+ name: i18n
104
+ requirement: &2157603940 !ruby/object:Gem::Requirement
149
105
  none: false
150
- requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- hash: 3
154
- segments:
155
- - 0
156
- version: "0"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
157
110
  type: :development
158
- version_requirements: *id009
159
- - !ruby/object:Gem::Dependency
160
- name: guard
161
111
  prerelease: false
162
- requirement: &id010 !ruby/object:Gem::Requirement
112
+ version_requirements: *2157603940
113
+ - !ruby/object:Gem::Dependency
114
+ name: guard
115
+ requirement: &2157603200 !ruby/object:Gem::Requirement
163
116
  none: false
164
- requirements:
165
- - - ">="
166
- - !ruby/object:Gem::Version
167
- hash: 59
168
- segments:
169
- - 0
170
- - 9
171
- - 0
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
172
120
  version: 0.9.0
173
121
  type: :development
174
- version_requirements: *id010
175
- - !ruby/object:Gem::Dependency
176
- name: guard-rspec
177
122
  prerelease: false
178
- requirement: &id011 !ruby/object:Gem::Requirement
123
+ version_requirements: *2157603200
124
+ - !ruby/object:Gem::Dependency
125
+ name: guard-rspec
126
+ requirement: &2157602480 !ruby/object:Gem::Requirement
179
127
  none: false
180
- requirements:
181
- - - ">="
182
- - !ruby/object:Gem::Version
183
- hash: 3
184
- segments:
185
- - 0
186
- version: "0"
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
187
132
  type: :development
188
- version_requirements: *id011
189
- - !ruby/object:Gem::Dependency
190
- name: ruby_gntp
191
133
  prerelease: false
192
- requirement: &id012 !ruby/object:Gem::Requirement
134
+ version_requirements: *2157602480
135
+ - !ruby/object:Gem::Dependency
136
+ name: ruby_gntp
137
+ requirement: &2157601680 !ruby/object:Gem::Requirement
193
138
  none: false
194
- requirements:
195
- - - ">="
196
- - !ruby/object:Gem::Version
197
- hash: 3
198
- segments:
199
- - 0
200
- version: "0"
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
201
143
  type: :development
202
- version_requirements: *id012
144
+ prerelease: false
145
+ version_requirements: *2157601680
203
146
  description: Prepare SSML and GRXML documents with ease
204
- email:
147
+ email:
205
148
  - ben@langfeld.me
206
149
  executables: []
207
-
208
150
  extensions: []
209
-
210
151
  extra_rdoc_files: []
211
-
212
- files:
152
+ files:
213
153
  - .gitignore
214
154
  - .rspec
215
155
  - .travis.yml
@@ -233,6 +173,7 @@ files:
233
173
  - lib/ruby_speech/grxml/match.rb
234
174
  - lib/ruby_speech/grxml/no_match.rb
235
175
  - lib/ruby_speech/grxml/one_of.rb
176
+ - lib/ruby_speech/grxml/potential_match.rb
236
177
  - lib/ruby_speech/grxml/rule.rb
237
178
  - lib/ruby_speech/grxml/ruleref.rb
238
179
  - lib/ruby_speech/grxml/tag.rb
@@ -261,6 +202,7 @@ files:
261
202
  - spec/ruby_speech/grxml/match_spec.rb
262
203
  - spec/ruby_speech/grxml/no_match_spec.rb
263
204
  - spec/ruby_speech/grxml/one_of_spec.rb
205
+ - spec/ruby_speech/grxml/potential_match_spec.rb
264
206
  - spec/ruby_speech/grxml/rule_spec.rb
265
207
  - spec/ruby_speech/grxml/ruleref_spec.rb
266
208
  - spec/ruby_speech/grxml/tag_spec.rb
@@ -282,46 +224,43 @@ files:
282
224
  - spec/ruby_speech/ssml_spec.rb
283
225
  - spec/spec_helper.rb
284
226
  - spec/support/matchers.rb
285
- has_rdoc: true
286
227
  homepage: https://github.com/benlangfeld/ruby_speech
287
228
  licenses: []
288
-
289
229
  post_install_message:
290
230
  rdoc_options: []
291
-
292
- require_paths:
231
+ require_paths:
293
232
  - lib
294
- required_ruby_version: !ruby/object:Gem::Requirement
233
+ required_ruby_version: !ruby/object:Gem::Requirement
295
234
  none: false
296
- requirements:
297
- - - ">="
298
- - !ruby/object:Gem::Version
299
- hash: 3
300
- segments:
235
+ requirements:
236
+ - - ! '>='
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
239
+ segments:
301
240
  - 0
302
- version: "0"
303
- required_rubygems_version: !ruby/object:Gem::Requirement
241
+ hash: 4175353066931902449
242
+ required_rubygems_version: !ruby/object:Gem::Requirement
304
243
  none: false
305
- requirements:
306
- - - ">="
307
- - !ruby/object:Gem::Version
308
- hash: 3
309
- segments:
244
+ requirements:
245
+ - - ! '>='
246
+ - !ruby/object:Gem::Version
247
+ version: '0'
248
+ segments:
310
249
  - 0
311
- version: "0"
250
+ hash: 4175353066931902449
312
251
  requirements: []
313
-
314
252
  rubyforge_project: ruby_speech
315
- rubygems_version: 1.6.2
253
+ rubygems_version: 1.8.10
316
254
  signing_key:
317
255
  specification_version: 3
318
256
  summary: A ruby library for TTS & ASR document preparation
319
- test_files:
257
+ test_files:
320
258
  - spec/ruby_speech/grxml/grammar_spec.rb
321
259
  - spec/ruby_speech/grxml/item_spec.rb
322
260
  - spec/ruby_speech/grxml/match_spec.rb
323
261
  - spec/ruby_speech/grxml/no_match_spec.rb
324
262
  - spec/ruby_speech/grxml/one_of_spec.rb
263
+ - spec/ruby_speech/grxml/potential_match_spec.rb
325
264
  - spec/ruby_speech/grxml/rule_spec.rb
326
265
  - spec/ruby_speech/grxml/ruleref_spec.rb
327
266
  - spec/ruby_speech/grxml/tag_spec.rb
@@ -343,3 +282,4 @@ test_files:
343
282
  - spec/ruby_speech/ssml_spec.rb
344
283
  - spec/spec_helper.rb
345
284
  - spec/support/matchers.rb
285
+ has_rdoc: