roxml 3.2.2 → 4.1.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.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +13 -0
  3. data/Gemfile +9 -6
  4. data/Gemfile.lock +98 -40
  5. data/History.txt +15 -0
  6. data/README.rdoc +3 -2
  7. data/Rakefile +9 -21
  8. data/VERSION +1 -1
  9. data/examples/search_query.rb +17 -0
  10. data/lib/roxml.rb +9 -3
  11. data/lib/roxml/definition.rb +4 -9
  12. data/lib/roxml/xml/parsers/libxml.rb +11 -27
  13. data/lib/roxml/xml/parsers/nokogiri.rb +13 -26
  14. data/lib/roxml/xml/references.rb +33 -21
  15. data/roxml.gemspec +40 -40
  16. data/spec/definition_spec.rb +85 -104
  17. data/spec/examples/active_record_spec.rb +13 -13
  18. data/spec/examples/amazon_spec.rb +13 -13
  19. data/spec/examples/current_weather_spec.rb +6 -6
  20. data/spec/examples/dashed_elements_spec.rb +3 -3
  21. data/spec/examples/library_spec.rb +3 -3
  22. data/spec/examples/library_with_fines_spec.rb +7 -7
  23. data/spec/examples/person_spec.rb +27 -27
  24. data/spec/examples/post_spec.rb +4 -4
  25. data/spec/examples/search_query_spec.rb +26 -0
  26. data/spec/examples/twitter_spec.rb +4 -4
  27. data/spec/reference_spec.rb +2 -2
  28. data/spec/regression_spec.rb +13 -8
  29. data/spec/roxml_spec.rb +56 -61
  30. data/spec/shared_specs.rb +2 -2
  31. data/spec/spec_helper.rb +2 -0
  32. data/spec/xml/array_spec.rb +2 -2
  33. data/spec/xml/attributes_spec.rb +7 -7
  34. data/spec/xml/encoding_spec.rb +9 -9
  35. data/spec/xml/namespace_spec.rb +40 -21
  36. data/spec/xml/namespaces_spec.rb +3 -3
  37. data/spec/xml/object_spec.rb +7 -7
  38. data/spec/xml/parser_spec.rb +2 -8
  39. data/spec/xml/text_spec.rb +6 -6
  40. data/test/fixtures/book_with_octal_pages.xml +2 -3
  41. data/test/test_helper.rb +1 -2
  42. data/test/unit/definition_test.rb +26 -27
  43. data/test/unit/deprecations_test.rb +23 -2
  44. data/test/unit/to_xml_test.rb +9 -9
  45. data/test/unit/xml_attribute_test.rb +3 -2
  46. data/test/unit/xml_block_test.rb +3 -2
  47. data/test/unit/xml_bool_test.rb +7 -8
  48. data/test/unit/xml_convention_test.rb +4 -3
  49. data/test/unit/xml_hash_test.rb +5 -13
  50. data/test/unit/xml_initialize_test.rb +4 -3
  51. data/test/unit/xml_name_test.rb +3 -2
  52. data/test/unit/xml_namespace_test.rb +4 -3
  53. data/test/unit/xml_object_test.rb +8 -7
  54. data/test/unit/xml_required_test.rb +7 -6
  55. data/test/unit/xml_text_test.rb +3 -2
  56. data/website/index.html +11 -11
  57. metadata +114 -61
  58. data/test/load_test.rb +0 -6
@@ -2,13 +2,13 @@ if defined?(shared_examples_for)
2
2
  shared_examples_for "freezable xml reference" do
3
3
  describe "with :frozen option" do
4
4
  it "should be frozen" do
5
- @frozen.frozen?.should be_true
5
+ expect(@frozen.frozen?).to be_truthy
6
6
  end
7
7
  end
8
8
 
9
9
  describe "without :frozen option" do
10
10
  it "should not be frozen" do
11
- @unfrozen.frozen?.should be_false
11
+ expect(@unfrozen.frozen?).to be_falsey
12
12
  end
13
13
  end
14
14
  end
@@ -2,6 +2,8 @@ require 'ostruct'
2
2
  require 'rubygems'
3
3
  require 'pathname'
4
4
  require 'ostruct'
5
+ require 'rspec/matchers' # req by equivalent-xml custom matcher `be_equivalent_to`
6
+ require 'equivalent-xml'
5
7
 
6
8
  require_relative './../test/support/fixtures'
7
9
  require_relative './../lib/roxml'
@@ -22,7 +22,7 @@ end
22
22
  describe ":as => []" do
23
23
  context "with plural from" do
24
24
  it "should accept the plural name as the name for each item" do
25
- ArraySpec::MyXml.from_xml(%(
25
+ expect(ArraySpec::MyXml.from_xml(%(
26
26
  <myxml>
27
27
  <store>
28
28
  <books><id>1</id><title>first book</title></books>
@@ -30,7 +30,7 @@ describe ":as => []" do
30
30
  <books><id>3</id><title>third book</title></books>
31
31
  </store>
32
32
  </myxml>
33
- )).store.books.size.should == 3
33
+ )).store.books.size).to eq(3)
34
34
  end
35
35
  end
36
36
  end
@@ -16,7 +16,7 @@ describe ROXML::XMLAttributeRef do
16
16
  end
17
17
 
18
18
  it "should return one instance" do
19
- @ref.value_in(@xml).should == "first"
19
+ expect(@ref.value_in(@xml)).to eq("first")
20
20
  end
21
21
  it "should output one instance"
22
22
  end
@@ -27,13 +27,13 @@ describe ROXML::XMLAttributeRef do
27
27
  end
28
28
 
29
29
  it "should collect all instances" do
30
- @ref.value_in(@xml).should == ["first", "second", "third"]
30
+ expect(@ref.value_in(@xml)).to eq(["first", "second", "third"])
31
31
  end
32
32
 
33
33
  it "should output all instances" do
34
34
  xml = ROXML::XML.new_node('myxml')
35
35
  @ref.update_xml(xml, ["first", "second", "third"])
36
- xml.to_s.squeeze(' ').should == @xml.root.to_s.squeeze(' ')
36
+ expect(xml.to_s.squeeze(' ')).to eq(@xml.root.to_s.squeeze(' '))
37
37
  end
38
38
  end
39
39
 
@@ -56,15 +56,15 @@ describe ROXML::XMLAttributeRef do
56
56
  end
57
57
 
58
58
  it "should collect all instances" do
59
- pending "Test bug?"
60
- @ref.value_in(@xml).should == ["first", "second", "third"]
59
+ skip "Test bug?"
60
+ expect(@ref.value_in(@xml)).to eq(["first", "second", "third"])
61
61
  end
62
62
 
63
63
  it "should output all instances with namespaces" do
64
- pending "Full namespace write support"
64
+ skip "Full namespace write support"
65
65
  xml = ROXML::XML.new_node('result')
66
66
  @ref.update_xml(xml, ["first", "second", "third"])
67
- xml.should == @xml.root
67
+ expect(xml).to eq(@xml.root)
68
68
  end
69
69
  end
70
70
  end
@@ -13,41 +13,41 @@ describe ROXML, "encoding" do
13
13
  res.message = "sadfk одловыа jjklsd " #random russian and english charecters
14
14
  doc = ROXML::XML::Document.new
15
15
  doc.root = res.to_xml
16
- if defined?(Nokogiri)
16
+ expect(if defined?(Nokogiri)
17
17
  doc.at('message').inner_text
18
18
  else
19
19
  doc.find_first('message').inner_xml
20
- end.should == "sadfk одловыа jjklsd "
20
+ end).to eq("sadfk одловыа jjklsd ")
21
21
  end
22
22
 
23
23
  it "should output those characters as input via xml" do
24
24
  res = TestResult.from_xml("<test_result><message>sadfk одловыа jjklsd </message></test_result>")
25
25
  doc = ROXML::XML::Document.new
26
26
  doc.root = res.to_xml
27
- if defined?(Nokogiri)
27
+ expect(if defined?(Nokogiri)
28
28
  doc.at('message').inner_text
29
29
  else
30
30
  doc.find_first('message').inner_xml
31
- end.should == "sadfk одловыа jjklsd "
31
+ end).to eq("sadfk одловыа jjklsd ")
32
32
  end
33
33
 
34
34
  it "should allow override via the document" do
35
35
  res = TestResult.from_xml("<test_result><message>sadfk одловыа jjklsd </message></test_result>")
36
- if defined?(Nokogiri)
36
+ expect(if defined?(Nokogiri)
37
37
  xml = res.to_xml
38
38
  doc = xml.document
39
39
  doc.root = xml
40
40
  doc.encoding = 'ISO-8859-1'
41
- doc.to_s.should include('ISO-8859-1')
41
+ expect(doc.to_s).to include('ISO-8859-1')
42
42
  doc.at('message').inner_text
43
43
  else
44
44
  doc = LibXML::XML::Document.new
45
45
  doc.encoding = LibXML::XML::Encoding::ASCII
46
46
  doc.root = res.to_xml
47
- pending "Libxml bug"
48
- doc.to_s.should include('ISO-8859-1')
47
+ skip "Libxml bug"
48
+ expect(doc.to_s).to include('ISO-8859-1')
49
49
  doc.find_first('message').inner_xml
50
- end.should == "sadfk одловыа jjklsd "
50
+ end).to eq("sadfk одловыа jjklsd ")
51
51
  end
52
52
  end
53
53
  end
@@ -28,7 +28,7 @@ EOS
28
28
 
29
29
  xml_name 'NetworkConfig'
30
30
  xml_reader :name, :from => '@name'
31
- xml_reader :errors, :as => []
31
+ xml_reader :errors, :as => [], :from => 'gronk:error'
32
32
  xml_accessor :fence_mode, :from => 'vmw:FenceMode'
33
33
  xml_accessor :dhcp?, :from => 'vmw:Dhcp'
34
34
  end
@@ -50,9 +50,8 @@ EOS
50
50
  describe "#to_xml" do
51
51
  it "should reproduce the input xml" do
52
52
  output = ROXML::XML::Document.new
53
- output.root = VApp.from_xml(@xml).to_xml
54
- pending "Full namespace write support"
55
- output.should == ROXML::XML.parse_string(@xml)
53
+ output.root = VApp.from_xml(@xml).to_xml(:namespaces => {'vmw' => "http://foo.example.com", 'gronk' => "http://gronk.example.com"})
54
+ expect(ROXML::XML.parse_string(output.to_s)).to be_equivalent_to(ROXML::XML.parse_string(@xml))
56
55
  end
57
56
  end
58
57
  end
@@ -61,23 +60,23 @@ EOS
61
60
  context "with a namespacey :from" do
62
61
  context "and an explicit :namespace" do
63
62
  it "should raise" do
64
- proc do
63
+ expect do
65
64
  Class.new do
66
65
  include ROXML
67
66
  xml_reader :default_namespace_with_namespacey_from_and_explicit_namespace, :from => 'namespacey:with_namespacey_from', :namespace => 'explicit'
68
67
  end
69
- end.should raise_error(ROXML::ContradictoryNamespaces)
68
+ end.to raise_error(ROXML::ContradictoryNamespaces)
70
69
  end
71
70
  end
72
71
 
73
72
  context "and :namespace => false" do
74
73
  it "should raise" do
75
- proc do
74
+ expect do
76
75
  Class.new do
77
76
  include ROXML
78
77
  xml_reader :default_namespace_with_namespacey_from_and_namespace_false, :from => 'namespacey:with_namespacey_from', :namespace => false
79
78
  end
80
- end.should raise_error(ROXML::ContradictoryNamespaces)
79
+ end.to raise_error(ROXML::ContradictoryNamespaces)
81
80
  end
82
81
  end
83
82
  end
@@ -87,12 +86,12 @@ EOS
87
86
  it_should_behave_like "roxml namespacey declaration"
88
87
 
89
88
  it "should use the default namespace" do
90
- @instance.default_namespace.should == 'default namespace node'
89
+ expect(@instance.default_namespace).to eq('default namespace node')
91
90
  end
92
91
 
93
92
  context "and :namespace => false" do
94
93
  it "should find the namespace-less node" do
95
- @instance.default_namespace_with_namespace_false.should == 'namespaceless node'
94
+ expect(@instance.default_namespace_with_namespace_false).to eq('namespaceless node')
96
95
  end
97
96
  end
98
97
 
@@ -104,25 +103,37 @@ EOS
104
103
 
105
104
  context "with a namespace-less :from" do
106
105
  it "should use the default namespace" do
107
- @instance.default_namespace_with_namespaceless_from.should == 'default namespace node'
106
+ expect(@instance.default_namespace_with_namespaceless_from).to eq('default namespace node')
108
107
  end
109
108
 
110
109
  context "and :namespace => false" do
111
110
  it "should find the namespace-less node" do
112
- @instance.default_namespace_with_namespaceless_from_and_namespace_false.should == 'namespaceless node'
111
+ expect(@instance.default_namespace_with_namespaceless_from_and_namespace_false).to eq('namespaceless node')
113
112
  end
114
113
  end
115
114
 
116
115
  context "and an explicit :namespace" do
117
116
  it "should use the explicit namespace" do
118
- @instance.default_namespace_with_namespaceless_from_and_explicit_namespace.should == 'explicit namespace node'
117
+ expect(@instance.default_namespace_with_namespaceless_from_and_explicit_namespace).to eq('explicit namespace node')
119
118
  end
120
119
  end
121
120
  end
122
121
 
123
122
  context "with a namespacey :from" do
124
123
  it "should use the :from namespace" do
125
- @instance.default_namespace_with_namespacey_from.should == 'namespacey node'
124
+ expect(@instance.default_namespace_with_namespacey_from).to eq('namespacey node')
125
+ end
126
+ end
127
+
128
+ context "with an namespacey XPath :from" do
129
+ it "should use the given namespace" do
130
+ expect(@instance.default_namespace_with_namespacey_xpath_from).to eq('namespacey xpath node')
131
+ end
132
+ end
133
+
134
+ context "with an XPath :from" do
135
+ it "should use the default namespace" do
136
+ expect(@instance.default_namespace_with_xpath_from).to eq('default namespace with xpath node')
126
137
  end
127
138
  end
128
139
  end
@@ -139,6 +150,8 @@ EOS
139
150
  xml_reader :default_namespace_with_namespaceless_from_and_explicit_namespace, :from => 'with_namespaceless_from', :namespace => 'explicit'
140
151
  xml_reader :default_namespace_with_namespaceless_from_and_namespace_false, :from => 'with_namespaceless_from', :namespace => false
141
152
  xml_reader :default_namespace_with_namespacey_from, :from => 'namespacey:with_namespacey_from'
153
+ xml_reader :default_namespace_with_namespacey_xpath_from, :from => 'xpath/namespacey:default_namespace'
154
+ xml_reader :default_namespace_with_xpath_from, :from => 'xpath/default_namespace'
142
155
 
143
156
  # These are handled in the "roxml namespacey declaration" shared spec
144
157
  # xml_reader :default_namespace_with_namespacey_from_and_namespace_false, :from => 'namespacey:with_namespaceless_from', :namespace => false
@@ -155,6 +168,8 @@ EOS
155
168
  <default_declared:with_namespaceless_from>default namespace node</default_declared:with_namespaceless_from>
156
169
  <explicit:default_and_explicit_namespace>explicit namespace node</explicit:default_and_explicit_namespace>
157
170
  <default_namespace_with_namespace_false>namespaceless node</default_namespace_with_namespace_false>
171
+ <default_declared:xpath><namespacey:default_namespace>namespacey xpath node</namespacey:default_namespace></default_declared:xpath>
172
+ <default_declared:xpath><default_declared:default_namespace>default namespace with xpath node</default_declared:default_namespace></default_declared:xpath>
158
173
  </book>
159
174
  })
160
175
  end
@@ -172,6 +187,8 @@ EOS
172
187
  xml_reader :default_namespace_with_namespaceless_from_and_explicit_namespace, :from => 'with_namespaceless_from', :namespace => 'explicit'
173
188
  xml_reader :default_namespace_with_namespaceless_from_and_namespace_false, :from => 'with_namespaceless_from', :namespace => false
174
189
  xml_reader :default_namespace_with_namespacey_from, :from => 'namespacey:with_namespacey_from'
190
+ xml_reader :default_namespace_with_namespacey_xpath_from, :from => 'xpath/namespacey:default_namespace'
191
+ xml_reader :default_namespace_with_xpath_from, :from => 'xpath/default_namespace'
175
192
 
176
193
  # These are handled in the "roxml namespacey declaration" shared spec
177
194
  # xml_reader :default_namespace_with_namespacey_from_and_namespace_false, :from => 'namespacey:with_namespaceless_from', :namespace => false
@@ -188,6 +205,8 @@ EOS
188
205
  <with_namespaceless_from>default namespace node</with_namespaceless_from>
189
206
  <explicit:default_and_explicit_namespace>explicit namespace node</explicit:default_and_explicit_namespace>
190
207
  <default_namespace_with_namespace_false xmlns="">namespaceless node</default_namespace_with_namespace_false>
208
+ <xpath><namespacey:default_namespace>namespacey xpath node</namespacey:default_namespace></xpath>
209
+ <xpath><default_namespace>default namespace with xpath node</default_namespace></xpath>
191
210
  </book>
192
211
  })
193
212
  end
@@ -228,42 +247,42 @@ EOS
228
247
  it_should_behave_like "roxml namespacey declaration"
229
248
 
230
249
  it "should find the namespace-less node" do
231
- @instance.no_default_namespace.should == 'namespaceless node'
250
+ expect(@instance.no_default_namespace).to eq('namespaceless node')
232
251
  end
233
252
 
234
253
  context "with :namespace => false" do
235
254
  it "should find the namespace-less node" do
236
- @instance.no_default_namespace_with_namespace_false.should == 'namespaceless node'
255
+ expect(@instance.no_default_namespace_with_namespace_false).to eq('namespaceless node')
237
256
  end
238
257
  end
239
258
 
240
259
  context "with an explicit :namespace" do
241
260
  it "should use the explicit namespace" do
242
- @instance.no_default_but_an_explicit_namespace.should == 'explicit namespace node'
261
+ expect(@instance.no_default_but_an_explicit_namespace).to eq('explicit namespace node')
243
262
  end
244
263
  end
245
264
 
246
265
  context "with a namespace-less :from" do
247
266
  it "should find the namespace-less node" do
248
- @instance.no_default_namespace_with_namespaceless_from.should == 'namespaceless node'
267
+ expect(@instance.no_default_namespace_with_namespaceless_from).to eq('namespaceless node')
249
268
  end
250
269
 
251
270
  context "and an explicit :namespace" do
252
271
  it "should use the explicit namespace" do
253
- @instance.no_default_namespace_with_namespaceless_from_and_explicit_namespace.should == 'explicit namespace node'
272
+ expect(@instance.no_default_namespace_with_namespaceless_from_and_explicit_namespace).to eq('explicit namespace node')
254
273
  end
255
274
  end
256
275
 
257
276
  context "with :namespace => false" do
258
277
  it "should find the namespace-less node" do
259
- @instance.no_default_namespace_with_namespaceless_from_and_namespace_false.should == 'namespaceless node'
278
+ expect(@instance.no_default_namespace_with_namespaceless_from_and_namespace_false).to eq('namespaceless node')
260
279
  end
261
280
  end
262
281
  end
263
282
 
264
283
  context "with a namespacey :from" do
265
284
  it "should use the :from namespace" do
266
- @instance.no_default_namespace_with_namespacey_from.should == 'namespacey node'
285
+ expect(@instance.no_default_namespace_with_namespacey_from).to eq('namespacey node')
267
286
  end
268
287
  end
269
288
  end
@@ -25,16 +25,16 @@ describe ROXML, "#xml_namespaces" do
25
25
  end
26
26
 
27
27
  it "should remap default namespaces" do
28
- Tires.from_xml(@xml).car_tires.should =~ ['super slick racing tire', 'all weather tire']
28
+ expect(Tires.from_xml(@xml).car_tires).to match_array(['super slick racing tire', 'all weather tire'])
29
29
  end
30
30
 
31
31
  it "should remap prefix namespaces" do
32
- Tires.from_xml(@xml).bike_tires.should == ['skinny street']
32
+ expect(Tires.from_xml(@xml).bike_tires).to eq(['skinny street'])
33
33
  end
34
34
 
35
35
  context "with namespace-indifferent option" do
36
36
  it "should return all tires" do
37
- Tires.from_xml(@xml).tires.should =~ ['super slick racing tire', 'all weather tire', 'skinny street']
37
+ expect(Tires.from_xml(@xml).tires).to match_array(['super slick racing tire', 'all weather tire', 'skinny street'])
38
38
  end
39
39
  end
40
40
  end
@@ -28,7 +28,7 @@ describe ROXML::XMLObjectRef do
28
28
  end
29
29
 
30
30
  it "should return one instance" do
31
- @ref.value_in(@xml).value.should == "first"
31
+ expect(@ref.value_in(@xml).value).to eq("first")
32
32
  end
33
33
  it "should output one instance"
34
34
  end
@@ -39,13 +39,13 @@ describe ROXML::XMLObjectRef do
39
39
  end
40
40
 
41
41
  it "should collect all instances" do
42
- @ref.value_in(@xml).map(&:value).should == ["first", "second", "third"]
42
+ expect(@ref.value_in(@xml).map(&:value)).to eq(["first", "second", "third"])
43
43
  end
44
44
 
45
45
  it "should output all instances" do
46
46
  xml = ROXML::XML.new_node('myxml')
47
47
  @ref.update_xml(xml, ["first", "second", "third"].map {|value| SubObject.new(value) })
48
- xml.to_s.squeeze(' ').should == @xml.root.to_s.squeeze(' ')
48
+ expect(xml.to_s.squeeze(' ')).to eq(@xml.root.to_s.squeeze(' '))
49
49
  end
50
50
  end
51
51
 
@@ -67,15 +67,15 @@ describe ROXML::XMLObjectRef do
67
67
  end
68
68
 
69
69
  it "should collect all instances" do
70
- pending "Test bug?"
71
- @ref.value_in(@xml).map(&:value).should == ["first", "second", "third"]
70
+ skip "Test bug?"
71
+ expect(@ref.value_in(@xml).map(&:value)).to eq(["first", "second", "third"])
72
72
  end
73
73
 
74
74
  it "should output all instances with namespaces" do
75
- pending "Full namespace write support"
75
+ skip "Full namespace write support"
76
76
  xml = ROXML::XML.new_node('myxml')
77
77
  @ref.update_xml(xml, ["first", "second", "third"].map {|value| SubObject.new(value) })
78
- xml.should == @xml.root
78
+ expect(xml).to eq(@xml.root)
79
79
  end
80
80
  end
81
81
  end
@@ -1,21 +1,15 @@
1
1
  require_relative './../spec_helper.rb'
2
2
 
3
3
  describe ROXML::XML do
4
- it "should raise on malformed xml" do
5
- if ROXML::XML_PARSER == 'libxml' # nokogiri is less strict and auto-closes for some reason
6
- proc { Book.from_xml(fixture(:book_malformed)) }.should raise_error(LibXML::XML::Error)
7
- end
8
- end
9
-
10
4
  it "should escape invalid characters on output to text node" do
11
5
  node = ROXML::XML.new_node("entities")
12
6
  ROXML::XML.set_content(node, " < > ' \" & ")
13
- node.to_s.should == "<entities> &lt; &gt; ' \" &amp; </entities>"
7
+ expect(node.to_s).to eq("<entities> &lt; &gt; ' \" &amp; </entities>")
14
8
  end
15
9
 
16
10
  it "should esape invalid characters for attribute name" do
17
11
  node = ROXML::XML.new_node("attr_holder")
18
12
  ROXML::XML.set_attribute(node, "entities", "\"'<>&")
19
- node.to_s.should == %{<attr_holder entities="&quot;'&lt;&gt;&amp;"/>}
13
+ expect(node.to_s).to eq(%{<attr_holder entities="&quot;'&lt;&gt;&amp;"/>})
20
14
  end
21
15
  end
@@ -18,7 +18,7 @@ describe ROXML::XMLTextRef do
18
18
  end
19
19
 
20
20
  it "should return one instance" do
21
- @ref.value_in(@xml).should == "first"
21
+ expect(@ref.value_in(@xml)).to eq("first")
22
22
  end
23
23
  it "should output one instance"
24
24
  end
@@ -29,13 +29,13 @@ describe ROXML::XMLTextRef do
29
29
  end
30
30
 
31
31
  it "should collect all instances" do
32
- @ref.value_in(@xml).should == ["first", "second", "third"]
32
+ expect(@ref.value_in(@xml)).to eq(["first", "second", "third"])
33
33
  end
34
34
 
35
35
  it "should output all instances" do
36
36
  xml = ROXML::XML.new_node('myxml')
37
37
  @ref.update_xml(xml, ["first", "second", "third"])
38
- xml.to_s.squeeze(' ').should == @xml.root.to_s.squeeze(' ')
38
+ expect(xml.to_s.squeeze(' ')).to eq(@xml.root.to_s.squeeze(' '))
39
39
  end
40
40
  end
41
41
 
@@ -57,14 +57,14 @@ describe ROXML::XMLTextRef do
57
57
  end
58
58
 
59
59
  it "should collect all instances" do
60
- @ref.value_in(@xml).should == ["first", "second", "third"]
60
+ expect(@ref.value_in(@xml)).to eq(["first", "second", "third"])
61
61
  end
62
62
 
63
63
  it "should output all instances with namespaces" do
64
- pending "Full namespace write support"
64
+ skip "Full namespace write support"
65
65
  xml = ROXML::XML.new_node('myxml')
66
66
  @ref.update_xml(xml, ["first", "second", "third"])
67
- xml.should == @xml.root
67
+ expect(xml).to eq(@xml.root)
68
68
  end
69
69
  end
70
70
  end