ruby_speech 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1a8d3e73e5f227d7d3da08899c03911a31608f8d
4
- data.tar.gz: 56f12469b5e17e34b587a0158b7cbe112db4f5a4
3
+ metadata.gz: caf6dc66fd5b216e0825c25c2df9c16324e955e1
4
+ data.tar.gz: ecd61a61b6a362521b6915d7eac46b47556f55c0
5
5
  SHA512:
6
- metadata.gz: 041a96833583708890574c64eb659a0d1898b4d7b86296a6ca0932ea3696a4918aba4bee41343689e6a30ec67f20b8761d5b44e0e5a7d9e540aa8245524f96a8
7
- data.tar.gz: 932a81c99d79b66ea580f1377c0c4ed2b84b40fd67f3b132e650385ffa6fa2e377073c46acac5c72c2251d4b0666820fa4b1dffc93553f0261d116024b55c930
6
+ metadata.gz: 1a08ac02e15a99aaf0f4ec753cb22fbf63304d4d42df34215dffe15255d344cf2d06bc23ab448f2152069e1c074d3d47b9a4978a4e04a1a746124a5658ce8a1e
7
+ data.tar.gz: 4a96f1f2fb4a56a08f6328bd6caa89ec4b47ee8638ee1c0d2e7bd3e2a867274b1d19d43039b423144e7e195140380e474c1533109e5ca0d165fc919e3b63fc69
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # [develop](https://github.com/benlangfeld/ruby_speech)
2
2
 
3
+ # [2.1.2](https://github.com/benlangfeld/ruby_speech/compare/v2.1.1...v2.1.2) - [2013-06-05](https://rubygems.org/gems/ruby_speech/versions/2.1.2)
4
+ * Bugfix: Allow wrapping a pre-parsed XML node nested arbitrary deeply as an NLSML document
5
+
3
6
  # [2.1.1](https://github.com/benlangfeld/ruby_speech/compare/v2.1.0...v2.1.1) - [2013-05-09](https://rubygems.org/gems/ruby_speech/versions/2.1.1)
4
7
  * Bugfix: Support numeric SISR literal tags
5
8
 
@@ -4,15 +4,16 @@ module RubySpeech
4
4
  module NLSML
5
5
  class Document < SimpleDelegator
6
6
  def initialize(xml)
7
- unless xml.root.namespace
8
- xml.root.default_namespace = NLSML_NAMESPACE
9
- xml = Nokogiri::XML.parse xml.to_xml, nil, nil, Nokogiri::XML::ParseOptions::NOBLANKS
7
+ result = xml.respond_to?(:root) ? xml.root : xml
8
+ unless result.namespace
9
+ result.default_namespace = NLSML_NAMESPACE
10
+ result = Nokogiri::XML.parse(xml.to_xml, nil, nil, Nokogiri::XML::ParseOptions::NOBLANKS).root
10
11
  end
11
- super
12
+ super result
12
13
  end
13
14
 
14
15
  def grammar
15
- result['grammar']
16
+ self['grammar']
16
17
  end
17
18
 
18
19
  def interpretations
@@ -44,15 +45,15 @@ module RubySpeech
44
45
  end
45
46
 
46
47
  def nomatch_elements
47
- result.xpath 'ns:interpretation/ns:input/ns:nomatch', 'ns' => NLSML_NAMESPACE
48
+ xpath 'ns:interpretation/ns:input/ns:nomatch', 'ns' => NLSML_NAMESPACE
48
49
  end
49
50
 
50
51
  def noinput_elements
51
- result.xpath 'ns:interpretation/ns:input/ns:noinput', 'ns' => NLSML_NAMESPACE
52
+ xpath 'ns:interpretation/ns:input/ns:noinput', 'ns' => NLSML_NAMESPACE
52
53
  end
53
54
 
54
55
  def input_elements
55
- result.xpath 'ns:interpretation/ns:input', 'ns' => NLSML_NAMESPACE
56
+ xpath 'ns:interpretation/ns:input', 'ns' => NLSML_NAMESPACE
56
57
  end
57
58
 
58
59
  def input_hash_for_interpretation(interpretation)
@@ -107,12 +108,8 @@ module RubySpeech
107
108
  }
108
109
  end
109
110
 
110
- def result
111
- root
112
- end
113
-
114
111
  def interpretation_nodes
115
- nodes = result.xpath 'ns:interpretation', 'ns' => NLSML_NAMESPACE
112
+ nodes = xpath 'ns:interpretation', 'ns' => NLSML_NAMESPACE
116
113
  nodes.sort_by { |int| -int[:confidence].to_f }
117
114
  end
118
115
  end
@@ -1,3 +1,3 @@
1
1
  module RubySpeech
2
- VERSION = "2.1.1"
2
+ VERSION = "2.1.2"
3
3
  end
@@ -124,6 +124,41 @@ describe RubySpeech::NLSML do
124
124
  subject.should_not be == RubySpeech.parse(empty_result)
125
125
  end
126
126
 
127
+ context "when the XML is already parsed and is not the root of a document" do
128
+ let :example_document do
129
+ '''
130
+ <foo>
131
+ <result xmlns="http://www.ietf.org/xml/ns/mrcpv2" grammar="http://flight">
132
+ <interpretation confidence="0.6">
133
+ <input mode="speech">I want to go to Pittsburgh</input>
134
+ <instance>
135
+ <airline>
136
+ <to_city>Pittsburgh</to_city>
137
+ </airline>
138
+ </instance>
139
+ </interpretation>
140
+ <interpretation confidence="0.4">
141
+ <input>I want to go to Stockholm</input>
142
+ <instance>
143
+ <airline>
144
+ <to_city>Stockholm</to_city>
145
+ </airline>
146
+ </instance>
147
+ </interpretation>
148
+ </result>
149
+ </foo>
150
+ '''
151
+ end
152
+
153
+ let(:node) { Nokogiri::XML(example_document).at_xpath('//mrcp:result', mrcp: "http://www.ietf.org/xml/ns/mrcpv2") }
154
+
155
+ subject do
156
+ RubySpeech::NLSML::Document.new node
157
+ end
158
+
159
+ its(:grammar) { should == 'http://flight' }
160
+ end
161
+
127
162
  context "with an interpretation that has no instance" do
128
163
  let :example_document do
129
164
  '''
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.1.1
4
+ version: 2.1.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: 2013-05-09 00:00:00.000000000 Z
11
+ date: 2013-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: niceogiri
@@ -319,7 +319,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
319
  version: '0'
320
320
  requirements: []
321
321
  rubyforge_project: ruby_speech
322
- rubygems_version: 2.0.0
322
+ rubygems_version: 2.0.3
323
323
  signing_key:
324
324
  specification_version: 4
325
325
  summary: A Ruby library for TTS & ASR document preparation