libxml-ruby 5.0.3 → 5.0.5

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY +13 -2
  3. data/README.rdoc +1 -1
  4. data/ext/libxml/extconf.rb +5 -0
  5. data/ext/libxml/ruby_xml.c +556 -556
  6. data/ext/libxml/ruby_xml_attributes.h +17 -17
  7. data/ext/libxml/ruby_xml_document.c +1129 -1129
  8. data/ext/libxml/ruby_xml_dtd.c +257 -257
  9. data/ext/libxml/ruby_xml_encoding.c +250 -250
  10. data/ext/libxml/ruby_xml_error.c +1003 -1003
  11. data/ext/libxml/ruby_xml_error.h +14 -14
  12. data/ext/libxml/ruby_xml_html_parser_context.c +351 -351
  13. data/ext/libxml/ruby_xml_input_cbg.c +188 -188
  14. data/ext/libxml/ruby_xml_namespace.c +151 -151
  15. data/ext/libxml/ruby_xml_parser.h +10 -10
  16. data/ext/libxml/ruby_xml_parser_context.c +1009 -1009
  17. data/ext/libxml/ruby_xml_parser_options.c +74 -74
  18. data/ext/libxml/ruby_xml_parser_options.h +10 -10
  19. data/ext/libxml/ruby_xml_sax2_handler.c +326 -326
  20. data/ext/libxml/ruby_xml_sax_parser.c +108 -108
  21. data/ext/libxml/ruby_xml_version.h +9 -9
  22. data/ext/libxml/ruby_xml_writer.c +1124 -1138
  23. data/lib/libxml/attr.rb +122 -122
  24. data/lib/libxml/attr_decl.rb +80 -80
  25. data/lib/libxml/attributes.rb +13 -13
  26. data/lib/libxml/document.rb +194 -194
  27. data/lib/libxml/error.rb +95 -95
  28. data/lib/libxml/hpricot.rb +77 -77
  29. data/lib/libxml/html_parser.rb +96 -96
  30. data/lib/libxml/namespace.rb +61 -61
  31. data/lib/libxml/namespaces.rb +37 -37
  32. data/lib/libxml/node.rb +323 -323
  33. data/lib/libxml/parser.rb +102 -102
  34. data/lib/libxml/sax_callbacks.rb +179 -179
  35. data/lib/libxml/sax_parser.rb +40 -40
  36. data/lib/libxml/tree.rb +28 -28
  37. data/lib/libxml.rb +4 -4
  38. data/lib/xml/libxml.rb +10 -10
  39. data/lib/xml.rb +13 -13
  40. data/libxml-ruby.gemspec +50 -48
  41. data/test/test_document.rb +140 -140
  42. data/test/test_document_write.rb +142 -142
  43. data/test/test_dtd.rb +126 -126
  44. data/test/test_encoding.rb +126 -126
  45. data/test/test_error.rb +194 -194
  46. data/test/test_helper.rb +20 -20
  47. data/test/test_namespace.rb +58 -58
  48. data/test/test_node.rb +235 -235
  49. data/test/test_node_write.rb +93 -93
  50. data/test/test_parser.rb +333 -333
  51. data/test/test_reader.rb +364 -364
  52. data/test/test_sax_parser.rb +25 -6
  53. data/test/test_xml.rb +168 -168
  54. metadata +19 -8
@@ -79,24 +79,43 @@ class TestSaxParser < Minitest::Test
79
79
  assert_equal("startdoc", result[i+=1])
80
80
  assert_equal("pi: xml-stylesheet type=\"text/xsl\" href=\"my_stylesheet.xsl\"", result[i+=1])
81
81
  assert_equal("start_element: feed, attr: {}", result[i+=1])
82
- assert_equal("start_element_ns: feed, attr: {}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {nil=>\"http://www.w3.org/2005/Atom\"}", result[i+=1])
82
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.4')
83
+ assert_equal("start_element_ns: feed, attr: {}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {nil=>\"http://www.w3.org/2005/Atom\"}", result[i+=1])
84
+ else
85
+ assert_equal("start_element_ns: feed, attr: {}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {nil => \"http://www.w3.org/2005/Atom\"}", result[i+=1])
86
+ end
83
87
  assert_equal("characters: \n ", result[i+=1])
84
88
  assert_equal("comment: Not a valid atom entry ", result[i+=1])
85
89
  assert_equal("characters: \n ", result[i+=1])
86
90
  assert_equal("start_element: entry, attr: {}", result[i+=1])
87
91
  assert_equal("start_element_ns: entry, attr: {}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {}", result[i+=1])
88
92
  assert_equal("characters: \n ", result[i+=1])
89
- assert_equal("start_element: title, attr: {\"type\"=>\"html\"}", result[i+=1])
90
- assert_equal("start_element_ns: title, attr: {\"type\"=>\"html\"}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {}", result[i+=1])
93
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.4')
94
+ assert_equal("start_element: title, attr: {\"type\"=>\"html\"}", result[i+=1])
95
+ assert_equal("start_element_ns: title, attr: {\"type\"=>\"html\"}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {}", result[i+=1])
96
+ else
97
+ assert_equal("start_element: title, attr: {\"type\" => \"html\"}", result[i+=1])
98
+ assert_equal("start_element_ns: title, attr: {\"type\" => \"html\"}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {}", result[i+=1])
99
+ end
100
+
91
101
  assert_equal("cdata: <<strong>>", result[i+=1])
92
102
  assert_equal("end_element: title", result[i+=1])
93
103
  assert_equal("end_element_ns title, prefix: , uri: http://www.w3.org/2005/Atom", result[i+=1])
94
104
  assert_equal("characters: \n ", result[i+=1])
95
- assert_equal("start_element: content, attr: {\"type\"=>\"xhtml\"}", result[i+=1])
96
- assert_equal("start_element_ns: content, attr: {\"type\"=>\"xhtml\"}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {}", result[i+=1])
105
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.4')
106
+ assert_equal("start_element: content, attr: {\"type\"=>\"xhtml\"}", result[i+=1])
107
+ assert_equal("start_element_ns: content, attr: {\"type\"=>\"xhtml\"}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {}", result[i+=1])
108
+ else
109
+ assert_equal("start_element: content, attr: {\"type\" => \"xhtml\"}", result[i+=1])
110
+ assert_equal("start_element_ns: content, attr: {\"type\" => \"xhtml\"}, prefix: , uri: http://www.w3.org/2005/Atom, ns: {}", result[i+=1])
111
+ end
97
112
  assert_equal("characters: \n ", result[i+=1])
98
113
  assert_equal("start_element: xhtml:div, attr: {}", result[i+=1])
99
- assert_equal("start_element_ns: div, attr: {}, prefix: xhtml, uri: http://www.w3.org/1999/xhtml, ns: {\"xhtml\"=>\"http://www.w3.org/1999/xhtml\"}", result[i+=1])
114
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.4')
115
+ assert_equal("start_element_ns: div, attr: {}, prefix: xhtml, uri: http://www.w3.org/1999/xhtml, ns: {\"xhtml\"=>\"http://www.w3.org/1999/xhtml\"}", result[i+=1])
116
+ else
117
+ assert_equal("start_element_ns: div, attr: {}, prefix: xhtml, uri: http://www.w3.org/1999/xhtml, ns: {\"xhtml\" => \"http://www.w3.org/1999/xhtml\"}", result[i+=1])
118
+ end
100
119
  assert_equal("characters: \n ", result[i+=1])
101
120
  assert_equal("start_element: xhtml:p, attr: {}", result[i+=1])
102
121
  assert_equal("start_element_ns: p, attr: {}, prefix: xhtml, uri: http://www.w3.org/1999/xhtml, ns: {}", result[i+=1])
data/test/test_xml.rb CHANGED
@@ -1,168 +1,168 @@
1
- # encoding: UTF-8
2
-
3
- require_relative './test_helper'
4
- require 'stringio'
5
-
6
- class TestXml < Minitest::Test
7
- # ----- Constants ------
8
- def test_lib_versions
9
- assert(LibXML::XML.check_lib_versions)
10
- end
11
-
12
- def test_default_compression
13
- return unless LibXML::XML.default_compression
14
-
15
- original = LibXML::XML.default_compression
16
-
17
- 0.upto(9) do |i|
18
- LibXML::XML.default_compression = i
19
- assert_equal(i, LibXML::XML.default_compression)
20
- end
21
-
22
- 9.downto(0) do |i|
23
- assert_equal(i, LibXML::XML.default_compression = i)
24
- assert_equal(i, LibXML::XML.default_compression)
25
- end
26
-
27
- 0.downto(-10) do |i|
28
- assert_equal(i, LibXML::XML.default_compression = i)
29
- assert_equal(0, LibXML::XML.default_compression)
30
- end
31
-
32
- 10.upto(20) do |i|
33
- assert_equal(i, LibXML::XML.default_compression = i)
34
- assert_equal(9, LibXML::XML.default_compression)
35
- end
36
-
37
- LibXML::XML.default_compression = original
38
- end
39
-
40
- def test_default_tree_indent_string
41
- original = LibXML::XML.default_tree_indent_string
42
-
43
- s = LibXML::XML.default_tree_indent_string
44
- assert_instance_of(String, s)
45
- assert_equal(' ', s)
46
- LibXML::XML.default_tree_indent_string = 'uga'
47
- s = LibXML::XML.default_tree_indent_string
48
- assert_instance_of(String, s)
49
- assert_equal('uga', s)
50
- LibXML::XML.default_tree_indent_string = ' '
51
- s = LibXML::XML.default_tree_indent_string
52
- assert_instance_of(String, s)
53
- assert_equal(' ', s)
54
-
55
- LibXML::XML.default_tree_indent_string = original
56
- end
57
-
58
- def test_enabled_automata
59
- assert(LibXML::XML.enabled_automata?)
60
- end
61
-
62
- def test_enabled_c14n
63
- assert(LibXML::XML.enabled_c14n?)
64
- end
65
-
66
- def test_enabled_catalog
67
- assert(LibXML::XML.enabled_catalog?)
68
- end
69
-
70
- def test_enabled_debug
71
- assert(LibXML::XML.enabled_debug?)
72
- end
73
-
74
- def test_enabled_docbook
75
- if windows?
76
- refute(LibXML::XML.enabled_docbook?)
77
- else
78
- assert(LibXML::XML.enabled_docbook?)
79
- end
80
- end
81
-
82
- def test_enabled_ftp
83
- if windows?
84
- refute(LibXML::XML.enabled_ftp?)
85
- else
86
- assert(LibXML::XML.enabled_ftp?)
87
- end
88
- end
89
-
90
- def test_enabled_http
91
- assert(LibXML::XML.enabled_http?)
92
- end
93
-
94
- def test_enabled_html
95
- assert(LibXML::XML.enabled_html?)
96
- end
97
-
98
- def test_enabled_iconv
99
- iconv_enabled = RUBY_PLATFORM !~ /darwin/
100
- assert_equal(iconv_enabled, LibXML::XML.enabled_iconv?)
101
- end
102
-
103
- def test_enabled_memory_debug
104
- assert_equal(false, LibXML::XML.enabled_memory_debug?)
105
- end
106
-
107
- def test_enabled_regexp
108
- assert(LibXML::XML.enabled_regexp?)
109
- end
110
-
111
- def test_enabled_schemas
112
- assert(LibXML::XML.enabled_schemas?)
113
- end
114
-
115
- def test_enabled_thread
116
- assert(LibXML::XML.enabled_thread?)
117
- end
118
-
119
- def test_enabled_unicode
120
- assert(LibXML::XML.enabled_unicode?)
121
- end
122
-
123
- def test_enabled_xinclude
124
- assert(LibXML::XML.enabled_xinclude?)
125
- end
126
-
127
- def test_enabled_xpath
128
- assert(LibXML::XML.enabled_xpath?)
129
- end
130
-
131
- def test_enabled_xpointer
132
- assert(LibXML::XML.enabled_xpointer?)
133
- end
134
-
135
- def test_enabled_zlib
136
- assert(LibXML::XML.enabled_zlib?.is_a?(TrueClass) || LibXML::XML.enabled_zlib?.is_a?(FalseClass))
137
- end
138
-
139
- def test_intent_tree_output
140
- assert(TrueClass, LibXML::XML.indent_tree_output)
141
-
142
- LibXML::XML.indent_tree_output = false
143
- assert(FalseClass, LibXML::XML.indent_tree_output)
144
-
145
- LibXML::XML.indent_tree_output = true
146
- assert(TrueClass, LibXML::XML.indent_tree_output)
147
- end
148
-
149
- def test_version
150
- assert_instance_of(String, LibXML::XML::VERSION)
151
- end
152
-
153
- def test_vernum
154
- assert_instance_of(Integer, LibXML::XML::VERNUM)
155
- end
156
-
157
- def test_default_save_no_empty_tags
158
- original = LibXML::XML.default_save_no_empty_tags
159
-
160
- LibXML::XML.default_save_no_empty_tags = false
161
- refute(LibXML::XML.default_save_no_empty_tags)
162
-
163
- LibXML::XML.default_save_no_empty_tags = true
164
- assert(LibXML::XML.default_save_no_empty_tags)
165
-
166
- LibXML::XML.default_save_no_empty_tags = original
167
- end
168
- end
1
+ # encoding: UTF-8
2
+
3
+ require_relative './test_helper'
4
+ require 'stringio'
5
+
6
+ class TestXml < Minitest::Test
7
+ # ----- Constants ------
8
+ def test_lib_versions
9
+ assert(LibXML::XML.check_lib_versions)
10
+ end
11
+
12
+ def test_default_compression
13
+ return unless LibXML::XML.default_compression
14
+
15
+ original = LibXML::XML.default_compression
16
+
17
+ 0.upto(9) do |i|
18
+ LibXML::XML.default_compression = i
19
+ assert_equal(i, LibXML::XML.default_compression)
20
+ end
21
+
22
+ 9.downto(0) do |i|
23
+ assert_equal(i, LibXML::XML.default_compression = i)
24
+ assert_equal(i, LibXML::XML.default_compression)
25
+ end
26
+
27
+ 0.downto(-10) do |i|
28
+ assert_equal(i, LibXML::XML.default_compression = i)
29
+ assert_equal(0, LibXML::XML.default_compression)
30
+ end
31
+
32
+ 10.upto(20) do |i|
33
+ assert_equal(i, LibXML::XML.default_compression = i)
34
+ assert_equal(9, LibXML::XML.default_compression)
35
+ end
36
+
37
+ LibXML::XML.default_compression = original
38
+ end
39
+
40
+ def test_default_tree_indent_string
41
+ original = LibXML::XML.default_tree_indent_string
42
+
43
+ s = LibXML::XML.default_tree_indent_string
44
+ assert_instance_of(String, s)
45
+ assert_equal(' ', s)
46
+ LibXML::XML.default_tree_indent_string = 'uga'
47
+ s = LibXML::XML.default_tree_indent_string
48
+ assert_instance_of(String, s)
49
+ assert_equal('uga', s)
50
+ LibXML::XML.default_tree_indent_string = ' '
51
+ s = LibXML::XML.default_tree_indent_string
52
+ assert_instance_of(String, s)
53
+ assert_equal(' ', s)
54
+
55
+ LibXML::XML.default_tree_indent_string = original
56
+ end
57
+
58
+ def test_enabled_automata
59
+ assert(LibXML::XML.enabled_automata?)
60
+ end
61
+
62
+ def test_enabled_c14n
63
+ assert(LibXML::XML.enabled_c14n?)
64
+ end
65
+
66
+ def test_enabled_catalog
67
+ assert(LibXML::XML.enabled_catalog?)
68
+ end
69
+
70
+ def test_enabled_debug
71
+ assert(LibXML::XML.enabled_debug?)
72
+ end
73
+
74
+ def test_enabled_docbook
75
+ if windows?
76
+ refute(LibXML::XML.enabled_docbook?)
77
+ else
78
+ assert(LibXML::XML.enabled_docbook?)
79
+ end
80
+ end
81
+
82
+ def test_enabled_ftp
83
+ if windows?
84
+ refute(LibXML::XML.enabled_ftp?)
85
+ else
86
+ assert(LibXML::XML.enabled_ftp?)
87
+ end
88
+ end
89
+
90
+ def test_enabled_http
91
+ assert(LibXML::XML.enabled_http?)
92
+ end
93
+
94
+ def test_enabled_html
95
+ assert(LibXML::XML.enabled_html?)
96
+ end
97
+
98
+ def test_enabled_iconv
99
+ iconv_enabled = RUBY_PLATFORM !~ /darwin/
100
+ assert_equal(iconv_enabled, LibXML::XML.enabled_iconv?)
101
+ end
102
+
103
+ def test_enabled_memory_debug
104
+ assert_equal(false, LibXML::XML.enabled_memory_debug?)
105
+ end
106
+
107
+ def test_enabled_regexp
108
+ assert(LibXML::XML.enabled_regexp?)
109
+ end
110
+
111
+ def test_enabled_schemas
112
+ assert(LibXML::XML.enabled_schemas?)
113
+ end
114
+
115
+ def test_enabled_thread
116
+ assert(LibXML::XML.enabled_thread?)
117
+ end
118
+
119
+ def test_enabled_unicode
120
+ assert(LibXML::XML.enabled_unicode?)
121
+ end
122
+
123
+ def test_enabled_xinclude
124
+ assert(LibXML::XML.enabled_xinclude?)
125
+ end
126
+
127
+ def test_enabled_xpath
128
+ assert(LibXML::XML.enabled_xpath?)
129
+ end
130
+
131
+ def test_enabled_xpointer
132
+ assert(LibXML::XML.enabled_xpointer?)
133
+ end
134
+
135
+ def test_enabled_zlib
136
+ assert(LibXML::XML.enabled_zlib?.is_a?(TrueClass) || LibXML::XML.enabled_zlib?.is_a?(FalseClass))
137
+ end
138
+
139
+ def test_intent_tree_output
140
+ assert(TrueClass, LibXML::XML.indent_tree_output)
141
+
142
+ LibXML::XML.indent_tree_output = false
143
+ assert(FalseClass, LibXML::XML.indent_tree_output)
144
+
145
+ LibXML::XML.indent_tree_output = true
146
+ assert(TrueClass, LibXML::XML.indent_tree_output)
147
+ end
148
+
149
+ def test_version
150
+ assert_instance_of(String, LibXML::XML::VERSION)
151
+ end
152
+
153
+ def test_vernum
154
+ assert_instance_of(Integer, LibXML::XML::VERNUM)
155
+ end
156
+
157
+ def test_default_save_no_empty_tags
158
+ original = LibXML::XML.default_save_no_empty_tags
159
+
160
+ LibXML::XML.default_save_no_empty_tags = false
161
+ refute(LibXML::XML.default_save_no_empty_tags)
162
+
163
+ LibXML::XML.default_save_no_empty_tags = true
164
+ assert(LibXML::XML.default_save_no_empty_tags)
165
+
166
+ LibXML::XML.default_save_no_empty_tags = original
167
+ end
168
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libxml-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.3
4
+ version: 5.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Bamform
@@ -11,11 +11,24 @@ authors:
11
11
  - Anurag Priyam
12
12
  - Charlie Savage
13
13
  - Ryan Johnson
14
- autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
- date: 2024-03-11 00:00:00.000000000 Z
16
+ date: 2025-07-30 00:00:00.000000000 Z
18
17
  dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: logger
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: '0'
25
+ type: :development
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: '0'
19
32
  - !ruby/object:Gem::Dependency
20
33
  name: rake-compiler
21
34
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +63,6 @@ description: |2
50
63
  Libxml-ruby's primary advantage over REXML is performance - if speed
51
64
  is your need, these are good libraries to consider, as demonstrated
52
65
  by the informal benchmark below.
53
- email:
54
66
  executables: []
55
67
  extensions:
56
68
  - ext/libxml/extconf.rb
@@ -259,8 +271,8 @@ files:
259
271
  homepage: https://xml4r.github.io/libxml-ruby/
260
272
  licenses:
261
273
  - MIT
262
- metadata: {}
263
- post_install_message:
274
+ metadata:
275
+ documentation_uri: https://xml4r.github.io/libxml-ruby/
264
276
  rdoc_options: []
265
277
  require_paths:
266
278
  - lib
@@ -275,8 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
287
  - !ruby/object:Gem::Version
276
288
  version: '0'
277
289
  requirements: []
278
- rubygems_version: 3.5.6
279
- signing_key:
290
+ rubygems_version: 3.7.1
280
291
  specification_version: 4
281
292
  summary: Ruby Bindings for LibXML2
282
293
  test_files: