ruby_speech 2.3.1 → 2.3.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: daffff8bc7ff4b9142bb4c02ebe5a86ea36af289
4
- data.tar.gz: 27fa66cc2be22d51bb2df0dd0b19d53cfdc37507
3
+ metadata.gz: bb37334ff6ea56b3b11705f1f8091c966de69ab4
4
+ data.tar.gz: a9ef15cb9fe4fae5ae8a7b7731930d5ad7821fa7
5
5
  SHA512:
6
- metadata.gz: 0a9e0f01cc3967c4a6b77bbf45c9daae4f26b6e9e3fbae46367c670621ddcd522715d638aff7c325f8ea199a7cac150e541a25e4d868f8fe4c4e5d91c12a5d0b
7
- data.tar.gz: 3d041f2dfefc467fe83afb05fb7d1c88fda27d96aa6203e598e3fc134969c13e50c91f6ff13e936957434e91b75f40b4aa93d5b63500b8b577d91dd60c6dd040
6
+ metadata.gz: 5ed551a6e78ef2e19ecf8ce194d5e1c5e04334f8974585ab7e101cbaef5bdece0c7cbb0156d721e6f682ab41170573f67a3d58eb7e0e7a7ce735d9f9d550f513
7
+ data.tar.gz: 88c7b894a74862c146256c29970b67626072f837d81bd05108ce16ab93ee338d4c17d3a7455e4e5adf2dd4bef68520d2198e73628886125c9a4e9815e55de881
data/.hound.yml ADDED
@@ -0,0 +1,2 @@
1
+ LineLength:
2
+ Enabled: false
data/.travis.yml CHANGED
@@ -4,8 +4,8 @@ rvm:
4
4
  - 1.9.3
5
5
  - 2.0.0
6
6
  - 2.1.0
7
- - jruby-19mode
8
- - rbx-19mode
7
+ - jruby
8
+ - rbx
9
9
  - ruby-head
10
10
  matrix:
11
11
  allow_failures:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # [develop](https://github.com/benlangfeld/ruby_speech)
2
2
 
3
+ # [2.3.2](https://github.com/benlangfeld/ruby_speech/compare/v2.3.1...v2.3.2) - [2014-04-21](https://rubygems.org/gems/ruby_speech/versions/2.3.2)
4
+ * Bugfix: String nodes should take non-strings and cast to a string (`#to_s`)
5
+ * Bugfix: Cleanly handle NLSML with no input tag
6
+ * Bugfix: Drawing an NLSML doc should return something structured/parsed
7
+ * Bugfix: Cloning SSML documents no longer turns them into GRXML docs
8
+
3
9
  # [2.3.1](https://github.com/benlangfeld/ruby_speech/compare/v2.3.0...v2.3.1) - [2014-02-24](https://rubygems.org/gems/ruby_speech/versions/2.3.1)
4
10
  * Bugfix: Phone number grammar should only allow a single instance of '*'/'x'
5
11
  * Bugfix: Concatenating documents containing strings across the border inserts appropriate spacing (#21).
data/README.md CHANGED
@@ -259,7 +259,7 @@ require 'ruby_speech'
259
259
 
260
260
  nlsml = RubySpeech::NLSML.draw grammar: 'http://flight' do
261
261
  interpretation confidence: 0.6 do
262
- input "I want to go to Pittsburgh", mode: :speech
262
+ input "I want to go to Pittsburgh", mode: :voice
263
263
 
264
264
  instance do
265
265
  airline do
@@ -288,7 +288,7 @@ becomes:
288
288
  <?xml version="1.0"?>
289
289
  <result xmlns="http://www.ietf.org/xml/ns/mrcpv2" grammar="http://flight">
290
290
  <interpretation confidence="0.6">
291
- <input mode="speech">I want to go to Pittsburgh</input>
291
+ <input mode="voice">I want to go to Pittsburgh</input>
292
292
  <instance>
293
293
  <airline>
294
294
  <to_city>Pittsburgh</to_city>
@@ -315,7 +315,7 @@ document.match? # => true
315
315
  document.interpretations # => [
316
316
  {
317
317
  confidence: 0.6,
318
- input: { mode: :speech, content: 'I want to go to Pittsburgh' },
318
+ input: { mode: :voice, content: 'I want to go to Pittsburgh' },
319
319
  instance: { airline: { to_city: 'Pittsburgh' } }
320
320
  },
321
321
  {
@@ -326,7 +326,7 @@ document.interpretations # => [
326
326
  ]
327
327
  document.best_interpretation # => {
328
328
  confidence: 0.6,
329
- input: { mode: :speech, content: 'I want to go to Pittsburgh' },
329
+ input: { mode: :voice, content: 'I want to go to Pittsburgh' },
330
330
  instance: { airline: { to_city: 'Pittsburgh' } }
331
331
  }
332
332
  ```
@@ -172,11 +172,11 @@ module RubySpeech
172
172
  end
173
173
 
174
174
  def string(other)
175
- self << Nokogiri::XML::Text.new(other, document)
175
+ self << Nokogiri::XML::Text.new(other.to_s, document)
176
176
  end
177
177
 
178
178
  def clone
179
- GRXML.import to_xml
179
+ self.class.import to_xml
180
180
  end
181
181
 
182
182
  def traverse(&block)
@@ -5,11 +5,12 @@ module RubySpeech
5
5
 
6
6
  def initialize(options = {}, &block)
7
7
  options = {'xmlns' => NLSML_NAMESPACE}.merge(options)
8
- @document = Nokogiri::XML::Builder.new do |builder|
8
+ xml_doc = Nokogiri::XML::Builder.new do |builder|
9
9
  builder.result options do |r|
10
10
  apply_block r, &block
11
11
  end
12
12
  end.doc
13
+ @document = RubySpeech::NLSML::Document.new xml_doc
13
14
  end
14
15
 
15
16
  def interpretation(*args, &block)
@@ -38,6 +38,10 @@ module RubySpeech
38
38
  noinput_elements.any?
39
39
  end
40
40
 
41
+ def to_xml
42
+ document.to_xml
43
+ end
44
+
41
45
  private
42
46
 
43
47
  def nomatch?
@@ -58,6 +62,7 @@ module RubySpeech
58
62
 
59
63
  def input_hash_for_interpretation(interpretation)
60
64
  input_element = interpretation.at_xpath 'ns:input', 'ns' => NLSML_NAMESPACE
65
+ return unless input_element
61
66
  { content: input_element.content }.tap do |h|
62
67
  h[:mode] = input_element['mode'].to_sym if input_element['mode']
63
68
  end
@@ -1,3 +1,3 @@
1
1
  module RubySpeech
2
- VERSION = "2.3.1"
2
+ VERSION = "2.3.2"
3
3
  end
@@ -242,7 +242,7 @@ module RubySpeech
242
242
  string "HELLO?"
243
243
  item :weight => 2.5
244
244
  one_of do
245
- item { "1" }
245
+ item { string 1 }
246
246
  item { "2" }
247
247
  end
248
248
  ruleref :uri => '#test'
@@ -55,6 +55,22 @@ describe RubySpeech::NLSML do
55
55
  document.to_xml.should == expected_document
56
56
  end
57
57
 
58
+ it "should return a structured/parsed document" do
59
+ document = RubySpeech::NLSML.draw(grammar: 'http://flight') do
60
+ interpretation confidence: 0.6 do
61
+ input "I want to go to Pittsburgh", mode: :speech
62
+
63
+ instance do
64
+ airline do
65
+ to_city 'Pittsburgh'
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ document.should be_match
72
+ end
73
+
58
74
  context "with a string instance" do
59
75
  let :example_document do
60
76
  '''
@@ -198,6 +214,38 @@ describe RubySpeech::NLSML do
198
214
  its(:best_interpretation) { should == expected_best_interpretation }
199
215
  end
200
216
 
217
+ context "with an interpretation that has no input" do
218
+ let :example_document do
219
+ '''
220
+ <result xmlns="http://www.ietf.org/xml/ns/mrcpv2" grammar="http://flight">
221
+ <interpretation confidence="0.6">
222
+ <instance>
223
+ <airline>
224
+ <to_city>Pittsburgh</to_city>
225
+ </airline>
226
+ </instance>
227
+ </interpretation>
228
+ </result>
229
+ '''
230
+ end
231
+
232
+ let(:expected_best_interpretation) do
233
+ {
234
+ confidence: 0.6,
235
+ input: nil,
236
+ instance: { airline: { to_city: 'Pittsburgh' } },
237
+ instances: [{ airline: { to_city: 'Pittsburgh' } }]
238
+ }
239
+ end
240
+
241
+ let(:expected_interpretations) do
242
+ [expected_best_interpretation]
243
+ end
244
+
245
+ its(:interpretations) { should == expected_interpretations }
246
+ its(:best_interpretation) { should == expected_best_interpretation }
247
+ end
248
+
201
249
  context "with a string instance" do
202
250
  let :example_document do
203
251
  '''
@@ -81,6 +81,30 @@ module RubySpeech
81
81
  SSML.draw { string foo }.should == expected_doc
82
82
  end
83
83
 
84
+ describe 'cloning' do
85
+ context 'SSML documents' do
86
+ let :original do
87
+ RubySpeech::SSML.draw do
88
+ string "Hi, I'm Fred."
89
+ end
90
+ end
91
+
92
+ subject { original.clone }
93
+
94
+ it 'should match the contents of the original document' do
95
+ subject.to_s.should == original.to_s
96
+ end
97
+
98
+ it 'should match the class of the original document' do
99
+ subject.class.should == original.class
100
+ end
101
+
102
+ it 'should be equal to the original document' do
103
+ subject.should == original
104
+ end
105
+ end
106
+ end
107
+
84
108
  describe "embedding" do
85
109
  it "SSML documents" do
86
110
  doc1 = RubySpeech::SSML.draw do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_speech
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Langfeld
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-24 00:00:00.000000000 Z
11
+ date: 2014-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -207,6 +207,7 @@ extensions:
207
207
  extra_rdoc_files: []
208
208
  files:
209
209
  - ".gitignore"
210
+ - ".hound.yml"
210
211
  - ".rspec"
211
212
  - ".travis.yml"
212
213
  - CHANGELOG.md
@@ -316,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
316
317
  version: '0'
317
318
  requirements: []
318
319
  rubyforge_project: ruby_speech
319
- rubygems_version: 2.2.0
320
+ rubygems_version: 2.2.2
320
321
  signing_key:
321
322
  specification_version: 4
322
323
  summary: A Ruby library for TTS & ASR document preparation