libxml-ruby 2.8.0 → 3.2.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 (204) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY +842 -775
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +217 -184
  6. data/Rakefile +90 -78
  7. data/ext/libxml/extconf.h +3 -0
  8. data/ext/libxml/extconf.rb +61 -116
  9. data/ext/libxml/libxml.c +80 -76
  10. data/ext/libxml/ruby_libxml.h +67 -75
  11. data/ext/libxml/ruby_xml.c +933 -893
  12. data/ext/libxml/ruby_xml.h +10 -10
  13. data/ext/libxml/ruby_xml_attr.c +333 -333
  14. data/ext/libxml/ruby_xml_attr.h +12 -12
  15. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  16. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  17. data/ext/libxml/ruby_xml_attributes.c +275 -275
  18. data/ext/libxml/ruby_xml_attributes.h +15 -15
  19. data/ext/libxml/ruby_xml_cbg.c +85 -85
  20. data/ext/libxml/ruby_xml_document.c +1123 -1147
  21. data/ext/libxml/ruby_xml_document.h +11 -11
  22. data/ext/libxml/ruby_xml_dtd.c +248 -268
  23. data/ext/libxml/ruby_xml_dtd.h +9 -9
  24. data/ext/libxml/ruby_xml_encoding.c +250 -260
  25. data/ext/libxml/ruby_xml_encoding.h +16 -19
  26. data/ext/libxml/ruby_xml_error.c +996 -996
  27. data/ext/libxml/ruby_xml_error.h +12 -12
  28. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  29. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  30. data/ext/libxml/ruby_xml_html_parser_context.c +337 -338
  31. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  32. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  33. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  34. data/ext/libxml/ruby_xml_input_cbg.c +191 -191
  35. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  36. data/ext/libxml/ruby_xml_io.c +47 -50
  37. data/ext/libxml/ruby_xml_io.h +10 -10
  38. data/ext/libxml/ruby_xml_namespace.c +153 -153
  39. data/ext/libxml/ruby_xml_namespace.h +10 -10
  40. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  41. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  42. data/ext/libxml/ruby_xml_node.c +1402 -1452
  43. data/ext/libxml/ruby_xml_node.h +13 -11
  44. data/ext/libxml/ruby_xml_parser.c +91 -94
  45. data/ext/libxml/ruby_xml_parser.h +12 -12
  46. data/ext/libxml/ruby_xml_parser_context.c +999 -1001
  47. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  48. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  49. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  50. data/ext/libxml/ruby_xml_reader.c +1239 -1228
  51. data/ext/libxml/ruby_xml_reader.h +17 -17
  52. data/ext/libxml/ruby_xml_relaxng.c +110 -111
  53. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  54. data/ext/libxml/ruby_xml_sax2_handler.c +326 -328
  55. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  56. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  57. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  58. data/ext/libxml/ruby_xml_schema.c +278 -301
  59. data/ext/libxml/ruby_xml_schema.h +809 -809
  60. data/ext/libxml/ruby_xml_schema_attribute.c +109 -109
  61. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  62. data/ext/libxml/ruby_xml_schema_element.c +95 -94
  63. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  64. data/ext/libxml/ruby_xml_schema_facet.c +52 -52
  65. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  66. data/ext/libxml/ruby_xml_schema_type.c +232 -259
  67. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  68. data/ext/libxml/ruby_xml_version.h +9 -9
  69. data/ext/libxml/ruby_xml_writer.c +1133 -1137
  70. data/ext/libxml/ruby_xml_writer.h +10 -10
  71. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  72. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  73. data/ext/libxml/ruby_xml_xpath.c +194 -188
  74. data/ext/libxml/ruby_xml_xpath.h +13 -13
  75. data/ext/libxml/ruby_xml_xpath_context.c +360 -361
  76. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  77. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  78. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  79. data/ext/libxml/ruby_xml_xpath_object.c +338 -335
  80. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  81. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  82. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  83. data/ext/vc/libxml_ruby.sln +17 -15
  84. data/lib/libxml-ruby.rb +30 -0
  85. data/lib/libxml.rb +3 -33
  86. data/lib/libxml/node.rb +2 -78
  87. data/lib/libxml/parser.rb +0 -266
  88. data/lib/libxml/sax_parser.rb +0 -17
  89. data/lib/libxml/schema.rb +47 -66
  90. data/lib/libxml/schema/attribute.rb +19 -19
  91. data/lib/libxml/schema/element.rb +19 -27
  92. data/lib/libxml/schema/type.rb +21 -29
  93. data/libxml-ruby.gemspec +48 -44
  94. data/script/benchmark/depixelate +634 -634
  95. data/script/benchmark/hamlet.xml +9054 -9054
  96. data/script/benchmark/parsecount +170 -170
  97. data/script/benchmark/throughput +41 -41
  98. data/script/test +6 -6
  99. data/setup.rb +0 -1
  100. data/test/c14n/given/example-1.xml +14 -14
  101. data/test/c14n/given/example-2.xml +11 -11
  102. data/test/c14n/given/example-3.xml +18 -18
  103. data/test/c14n/given/example-4.xml +9 -9
  104. data/test/c14n/given/example-5.xml +12 -12
  105. data/test/c14n/given/example-6.xml +2 -2
  106. data/test/c14n/given/example-7.xml +11 -11
  107. data/test/c14n/given/example-8.xml +11 -11
  108. data/test/c14n/given/example-8.xpath +9 -9
  109. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  110. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  111. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  112. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  113. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  114. data/test/c14n/result/with-comments/example-1 +5 -5
  115. data/test/c14n/result/with-comments/example-2 +10 -10
  116. data/test/c14n/result/with-comments/example-3 +13 -13
  117. data/test/c14n/result/with-comments/example-4 +8 -8
  118. data/test/c14n/result/with-comments/example-5 +3 -3
  119. data/test/c14n/result/without-comments/example-1 +3 -3
  120. data/test/c14n/result/without-comments/example-2 +10 -10
  121. data/test/c14n/result/without-comments/example-3 +13 -13
  122. data/test/c14n/result/without-comments/example-4 +8 -8
  123. data/test/c14n/result/without-comments/example-5 +2 -2
  124. data/test/model/atom.xml +12 -12
  125. data/test/model/bands.iso-8859-1.xml +4 -4
  126. data/test/model/bands.utf-8.xml +4 -4
  127. data/test/model/bands.xml +4 -4
  128. data/test/model/books.xml +153 -153
  129. data/test/model/cwm_1_0.xml +11336 -0
  130. data/test/model/merge_bug_data.xml +58 -58
  131. data/test/model/ruby-lang.html +238 -238
  132. data/test/model/rubynet.xml +79 -79
  133. data/test/model/shiporder.rnc +28 -28
  134. data/test/model/shiporder.rng +86 -86
  135. data/test/model/shiporder.xml +22 -22
  136. data/test/model/shiporder.xsd +39 -39
  137. data/test/model/soap.xml +27 -27
  138. data/test/model/xinclude.xml +4 -4
  139. data/test/test.xml +2 -0
  140. data/test/{tc_attr.rb → test_attr.rb} +23 -25
  141. data/test/{tc_attr_decl.rb → test_attr_decl.rb} +13 -14
  142. data/test/{tc_attributes.rb → test_attributes.rb} +11 -18
  143. data/test/{tc_canonicalize.rb → test_canonicalize.rb} +36 -41
  144. data/test/test_deprecated_require.rb +12 -0
  145. data/test/{tc_document.rb → test_document.rb} +32 -27
  146. data/test/test_document_write.rb +146 -0
  147. data/test/{tc_dtd.rb → test_dtd.rb} +28 -29
  148. data/test/{tc_encoding.rb → test_encoding.rb} +129 -126
  149. data/test/{tc_encoding_sax.rb → test_encoding_sax.rb} +7 -6
  150. data/test/test_error.rb +178 -0
  151. data/test/test_helper.rb +3 -10
  152. data/test/test_html_parser.rb +162 -0
  153. data/test/test_html_parser_context.rb +23 -0
  154. data/test/test_namespace.rb +60 -0
  155. data/test/{tc_namespaces.rb → test_namespaces.rb} +34 -44
  156. data/test/{tc_node.rb → test_node.rb} +68 -47
  157. data/test/{tc_node_cdata.rb → test_node_cdata.rb} +12 -13
  158. data/test/{tc_node_comment.rb → test_node_comment.rb} +7 -8
  159. data/test/{tc_node_copy.rb → test_node_copy.rb} +4 -6
  160. data/test/{tc_node_edit.rb → test_node_edit.rb} +23 -41
  161. data/test/{tc_node_pi.rb → test_node_pi.rb} +37 -40
  162. data/test/{tc_node_text.rb → test_node_text.rb} +10 -12
  163. data/test/{tc_node_write.rb → test_node_write.rb} +18 -29
  164. data/test/test_node_xlink.rb +28 -0
  165. data/test/test_parser.rb +324 -0
  166. data/test/{tc_parser_context.rb → test_parser_context.rb} +41 -42
  167. data/test/{tc_properties.rb → test_properties.rb} +6 -7
  168. data/test/test_reader.rb +363 -0
  169. data/test/test_relaxng.rb +53 -0
  170. data/test/{tc_sax_parser.rb → test_sax_parser.rb} +36 -37
  171. data/test/{tc_schema.rb → test_schema.rb} +43 -37
  172. data/test/test_suite.rb +38 -40
  173. data/test/{tc_traversal.rb → test_traversal.rb} +5 -6
  174. data/test/{tc_writer.rb → test_writer.rb} +468 -448
  175. data/test/{tc_xinclude.rb → test_xinclude.rb} +4 -5
  176. data/test/test_xml.rb +262 -0
  177. data/test/{tc_xpath.rb → test_xpath.rb} +31 -32
  178. data/test/{tc_xpath_context.rb → test_xpath_context.rb} +8 -9
  179. data/test/test_xpath_expression.rb +37 -0
  180. data/test/{tc_xpointer.rb → test_xpointer.rb} +16 -18
  181. metadata +117 -95
  182. data/lib/libxml/ns.rb +0 -22
  183. data/lib/libxml/properties.rb +0 -23
  184. data/lib/libxml/reader.rb +0 -29
  185. data/lib/libxml/xpath_object.rb +0 -16
  186. data/test/etc_doc_to_s.rb +0 -21
  187. data/test/ets_doc_file.rb +0 -17
  188. data/test/ets_doc_to_s.rb +0 -23
  189. data/test/ets_gpx.rb +0 -28
  190. data/test/ets_node_gc.rb +0 -23
  191. data/test/ets_test.xml +0 -2
  192. data/test/ets_tsr.rb +0 -11
  193. data/test/tc_deprecated_require.rb +0 -13
  194. data/test/tc_document_write.rb +0 -196
  195. data/test/tc_error.rb +0 -180
  196. data/test/tc_html_parser.rb +0 -153
  197. data/test/tc_html_parser_context.rb +0 -24
  198. data/test/tc_namespace.rb +0 -62
  199. data/test/tc_node_xlink.rb +0 -29
  200. data/test/tc_parser.rb +0 -381
  201. data/test/tc_reader.rb +0 -400
  202. data/test/tc_relaxng.rb +0 -54
  203. data/test/tc_xml.rb +0 -226
  204. data/test/tc_xpath_expression.rb +0 -38
data/Rakefile CHANGED
@@ -1,79 +1,91 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "rubygems"
4
- require "rake/extensiontask"
5
- require "rake/testtask"
6
- require "rubygems/package_task"
7
- require "rdoc/task"
8
- require "yaml"
9
-
10
- GEM_NAME = "libxml-ruby"
11
- SO_NAME = "libxml_ruby"
12
-
13
- # Read the spec file
14
- spec = Gem::Specification.load("#{GEM_NAME}.gemspec")
15
-
16
- # Setup compile tasks
17
- Rake::ExtensionTask.new do |ext|
18
- ext.gem_spec = spec
19
- ext.name = SO_NAME
20
- ext.ext_dir = "ext/libxml"
21
- ext.lib_dir = "lib/#{RUBY_VERSION.sub(/\.\d$/, '')}"
22
- ext.config_options << "--with-xml2-include=C:/MinGW/local/include/libxml2"
23
- ext.config_options << "--with-zlib-dir=C:/MinGW/local"
24
- end
25
-
26
- # Setup generic gem
27
- Gem::PackageTask.new(spec) do |pkg|
28
- pkg.package_dir = 'pkg'
29
- pkg.need_tar = false
30
- end
31
-
32
- # Setup Windows Gem
33
- if RUBY_PLATFORM.match(/win32|mingw32/)
34
- binaries = (FileList['lib/**/*.so',
35
- 'lib/**/*dll'])
36
-
37
- # Windows specification
38
- win_spec = spec.clone
39
- win_spec.platform = Gem::Platform::CURRENT
40
- win_spec.files += binaries.to_a
41
- win_spec.instance_variable_set(:@cache_file, nil)
42
-
43
- # Unset extensions
44
- win_spec.extensions = nil
45
-
46
- # Rake task to build the windows package
47
- Gem::PackageTask.new(win_spec) do |pkg|
48
- pkg.package_dir = 'pkg'
49
- pkg.need_tar = false
50
- end
51
- end
52
-
53
- # RDoc Task
54
- desc 'Generate rdoc documentation'
55
- RDoc::Task.new("rdoc") do |rdoc|
56
- rdoc.rdoc_dir = 'website/_site/rdoc'
57
- rdoc.title = 'LibXML'
58
- rdoc.generator = 'hanna'
59
-
60
- # Show source inline with line numbers
61
- rdoc.options << '--line-numbers'
62
- rdoc.options << '--charset=utf-8'
63
- # Make the readme file the start page for the generated html
64
- rdoc.main = 'README.rdoc'
65
- rdoc.rdoc_files.include('doc/*.rdoc',
66
- 'ext/**/libxml.c',
67
- 'ext/**/ruby_xml.c',
68
- 'ext/**/*.c',
69
- 'lib/**/*.rb',
70
- 'README.rdoc',
71
- 'HISTORY',
72
- 'LICENSE')
73
- end
74
-
75
- # Test Task
76
- Rake::TestTask.new do |t|
77
- t.libs << "test"
78
- t.verbose = true
1
+ #!/usr/bin/env ruby
2
+
3
+ require "rubygems"
4
+ require "rake/extensiontask"
5
+ require "rake/testtask"
6
+ require "rubygems/package_task"
7
+ require "rdoc/task"
8
+ require "yaml"
9
+
10
+ GEM_NAME = "libxml-ruby"
11
+ SO_NAME = "libxml_ruby"
12
+
13
+ # Read the spec file
14
+ spec = Gem::Specification.load("#{GEM_NAME}.gemspec")
15
+
16
+ task :default => [:test]
17
+
18
+ # Setup compile tasks
19
+ if RUBY_PLATFORM.match(/mswin32|mswin64|mingw32/)
20
+ Rake::ExtensionTask.new do |ext|
21
+ ext.gem_spec = spec
22
+ ext.name = SO_NAME
23
+ ext.ext_dir = "ext/libxml"
24
+ ext.lib_dir = "lib/#{RUBY_VERSION.sub(/\.\d$/, '')}"
25
+ ext.config_options << "--with-xml2-include=C:/msys64/mingw64/include/libxml2"
26
+ end
27
+ else
28
+ Rake::ExtensionTask.new do |ext|
29
+ ext.gem_spec = spec
30
+ ext.name = SO_NAME
31
+ ext.ext_dir = "ext/libxml"
32
+ ext.lib_dir = "lib/#{RUBY_VERSION.sub(/\.\d$/, '')}"
33
+ ext.config_options << "--with-xml2-include=/usr/include/libxml2"
34
+ end
35
+ end
36
+
37
+ # Setup generic gem
38
+ Gem::PackageTask.new(spec) do |pkg|
39
+ pkg.package_dir = 'pkg'
40
+ pkg.need_tar = false
41
+ end
42
+
43
+ # Setup Windows Gem
44
+ if RUBY_PLATFORM.match(/mswin32|mswin64|mingw32/)
45
+ binaries = (FileList['lib/**/*.so',
46
+ 'lib/**/*dll'])
47
+
48
+ # Windows specification
49
+ win_spec = spec.clone
50
+ win_spec.platform = Gem::Platform::CURRENT
51
+ win_spec.files += binaries.to_a
52
+ win_spec.instance_variable_set(:@cache_file, nil)
53
+
54
+ # Unset extensions
55
+ win_spec.extensions = nil
56
+
57
+ # Rake task to build the windows package
58
+ Gem::PackageTask.new(win_spec) do |pkg|
59
+ pkg.package_dir = 'pkg'
60
+ pkg.need_tar = false
61
+ end
62
+ end
63
+
64
+ # RDoc Task
65
+ desc 'Generate rdoc documentation'
66
+ RDoc::Task.new("rdoc") do |rdoc|
67
+ rdoc.rdoc_dir = 'rdoc'
68
+ rdoc.title = 'LibXML'
69
+ rdoc.generator = 'hanna'
70
+
71
+ # Show source inline with line numbers
72
+ rdoc.options << '--line-numbers'
73
+ rdoc.options << '--charset=utf-8'
74
+ # Make the readme file the start page for the generated html
75
+ rdoc.main = 'README.rdoc'
76
+ rdoc.rdoc_files.include('doc/*.rdoc',
77
+ 'ext/**/libxml.c',
78
+ 'ext/**/ruby_xml.c',
79
+ 'ext/**/*.c',
80
+ 'lib/**/*.rb',
81
+ 'README.rdoc',
82
+ 'HISTORY',
83
+ 'LICENSE')
84
+ end
85
+
86
+ # Test Task
87
+ Rake::TestTask.new do |t|
88
+ t.libs << "test"
89
+ t.test_files = FileList['test/test*.rb'] - ['test/test_suite.rb']
90
+ t.verbose = true
79
91
  end
@@ -0,0 +1,3 @@
1
+ #ifndef EXTCONF_H
2
+ #define EXTCONF_H
3
+ #endif
@@ -1,116 +1,61 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rbconfig'
4
-
5
- require 'mkmf'
6
-
7
- if defined?(CFLAGS)
8
- if CFLAGS.index(CONFIG['CCDLFLAGS'])
9
- $CFLAGS = CFLAGS + ' ' + CONFIG['CCDLFLAGS']
10
- else
11
- $CFLAGS = CFLAGS
12
- end
13
- else
14
- $CFLAGS = CONFIG['CFLAGS']
15
- end
16
- $LDFLAGS = CONFIG['LDFLAGS']
17
- $LIBPATH.push(RbConfig::CONFIG['libdir'])
18
-
19
- def crash(str)
20
- printf(" extconf failure: %s\n", str)
21
- exit 1
22
- end
23
-
24
- dir_config('iconv')
25
- dir_config('zlib')
26
-
27
- have_library('socket','socket')
28
- have_library('nsl','gethostbyname')
29
-
30
- unless have_library('m', 'atan')
31
- # try again for gcc 4.0
32
- saveflags = $CFLAGS
33
- $CFLAGS += ' -fno-builtin'
34
- unless have_library('m', 'atan')
35
- crash('need libm')
36
- end
37
- $CFLAGS = saveflags
38
- end
39
-
40
- unless have_library('z', 'inflate') or
41
- have_library('zlib', 'inflate') or
42
- have_library('zlib1', 'inflate') or
43
- have_library('libz', 'inflate')
44
- crash('need zlib')
45
- else
46
- $defs.push('-DHAVE_ZLIB_H')
47
- end
48
-
49
- unless have_library('iconv','iconv_open') or
50
- have_library('iconv','libiconv_open') or
51
- have_library('libiconv', 'libiconv_open') or
52
- have_library('libiconv', 'iconv_open') or
53
- have_library('c','iconv_open') or
54
- have_library('recode','iconv_open') or
55
- have_library('iconv')
56
- crash(<<EOL)
57
- need libiconv.
58
-
59
- Install the libiconv or try passing one of the following options
60
- to extconf.rb:
61
-
62
- --with-iconv-dir=/path/to/iconv
63
- --with-iconv-lib=/path/to/iconv/lib
64
- --with-iconv-include=/path/to/iconv/include
65
- EOL
66
- end
67
-
68
- if (xc = with_config('xml2-config')) or RUBY_PLATFORM.match(/darwin/i) then
69
- xc = 'xml2-config' if xc == true or xc.nil?
70
- cflags = `#{xc} --cflags`.chomp
71
- if $? != 0
72
- cflags = nil
73
- else
74
- libs = `#{xc} --libs`.chomp
75
- if $? != 0
76
- libs = nil
77
- else
78
- $CFLAGS += ' ' + cflags
79
- $libs = libs + " " + $libs
80
- end
81
- end
82
- else
83
- dir_config('xml2')
84
- end
85
-
86
- unless (have_library('xml2', 'xmlParseDoc') or
87
- have_library('libxml2', 'xmlParseDoc') or
88
- find_library('xml2', 'xmlParseDoc', '/opt/lib', '/usr/local/lib', '/usr/lib')) and
89
- (have_header('libxml/xmlversion.h') or
90
- find_header('libxml/xmlversion.h',
91
- '/opt/include/libxml2',
92
- '/usr/local/include/libxml2',
93
- '/usr/include/libxml2'))
94
- crash(<<EOL)
95
- need libxml2.
96
-
97
- Install the library or try one of the following options to extconf.rb:
98
-
99
- --with-xml2-config=/path/to/xml2-config
100
- --with-xml2-dir=/path/to/libxml2
101
- --with-xml2-lib=/path/to/libxml2/lib
102
- --with-xml2-include=/path/to/libxml2/include
103
- EOL
104
- end
105
-
106
- have_func('rb_io_bufwrite', 'ruby/io.h')
107
-
108
- # For FreeBSD add /usr/local/include
109
- $INCFLAGS << " -I/usr/local/include"
110
-
111
- $CFLAGS << ' ' << $INCFLAGS
112
-
113
- #$INSTALLFILES = [["libxml.rb", "$(RUBYLIBDIR)", "../xml"]]
114
-
115
- create_header()
116
- create_makefile('libxml_ruby')
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'mkmf'
4
+
5
+ def crash(str)
6
+ printf(" extconf failure: %s\n", str)
7
+ exit 1
8
+ end
9
+
10
+ xc = with_config('xml2-config')
11
+ if xc
12
+ cflags = `#{xc} --cflags`.chomp
13
+ if $? != 0
14
+ cflags = nil
15
+ else
16
+ libs = `#{xc} --libs`.chomp
17
+ if $? != 0
18
+ libs = nil
19
+ else
20
+ $CFLAGS += ' ' + cflags
21
+ $libs = libs + " " + $libs
22
+ end
23
+ end
24
+ else
25
+ dir_config('xml2')
26
+ end
27
+
28
+ found_header = find_header('libxml/xmlversion.h',
29
+ '/opt/include/libxml2',
30
+ '/opt/local/include/libxml2',
31
+ '/usr/local/include/libxml2',
32
+ '/usr/include/libxml2',
33
+ '/usr/local/include')
34
+
35
+ found_lib = find_library('xml2', 'xmlParseDoc',
36
+ '/opt/lib',
37
+ '/opt/local/lib',
38
+ '/usr/local/lib',
39
+ '/usr/lib')
40
+
41
+ found_lib ||= find_library('libxml2', 'xmlParseDoc',
42
+ '/opt/lib',
43
+ '/opt/local/lib',
44
+ '/usr/local/lib',
45
+ '/usr/lib')
46
+
47
+ if !found_header || !found_lib
48
+ crash(<<~EOL)
49
+ Cannot find libxml2.
50
+
51
+ Install the library or try one of the following options to extconf.rb:
52
+
53
+ --with-xml2-config=/path/to/xml2-config
54
+ --with-xml2-dir=/path/to/libxml2
55
+ --with-xml2-lib=/path/to/libxml2/lib
56
+ --with-xml2-include=/path/to/libxml2/include
57
+ EOL
58
+ end
59
+
60
+ create_header()
61
+ create_makefile('libxml_ruby')
@@ -1,76 +1,80 @@
1
- #include "ruby_libxml.h"
2
-
3
- #if RUBY_INTERN_H
4
- #include <ruby/util.h>
5
- #else
6
- #include <util.h>
7
- #endif
8
-
9
-
10
- VALUE mLibXML;
11
-
12
- static void rxml_init_memory(void)
13
- {
14
- /* Disable for now - broke attributes.
15
- xmlGcMemSetup(
16
- (xmlFreeFunc)ruby_xfree,
17
- (xmlMallocFunc)ruby_xmalloc,
18
- (xmlMallocFunc)ruby_xmalloc,
19
- (xmlReallocFunc)ruby_xrealloc,
20
- (xmlStrdupFunc)ruby_strdup
21
- );*/
22
- }
23
-
24
- void Init_libxml_ruby(void)
25
- {
26
- /* The libxml gem provides Ruby language bindings for GNOME's Libxml2
27
- * XML toolkit. To get started you may:
28
- *
29
- * require 'test_helper'
30
- * document = XML::Document.new
31
- *
32
- * However, when creating an application or library you plan to
33
- * redistribute, it is best to not add the LibXML module to the global
34
- * namespace, in which case you can either write your code like this:
35
- *
36
- * require 'libxml'
37
- * document = LibXML::XML::Document.new
38
- *
39
- * Refer to the README file to get started and the LICENSE file for
40
- * copyright and distribution information.
41
- */
42
- mLibXML = rb_define_module("LibXML");
43
-
44
- rxml_init_memory();
45
- rxml_init_xml();
46
- rxml_init_io();
47
- rxml_init_error();
48
- rxml_init_encoding();
49
- rxml_init_parser();
50
- rxml_init_parser_context();
51
- rxml_init_parser_options();
52
- rxml_init_node();
53
- rxml_init_attributes();
54
- rxml_init_attr();
55
- rxml_init_attr_decl();
56
- rxml_init_document();
57
- rxml_init_namespaces();
58
- rxml_init_namespace();
59
- rxml_init_sax_parser();
60
- rxml_init_sax2_handler();
61
- rxml_init_xinclude();
62
- rxml_init_xpath();
63
- rxml_init_xpath_object();
64
- rxml_init_xpath_context();
65
- rxml_init_xpath_expression();
66
- rxml_init_xpointer();
67
- rxml_init_html_parser();
68
- rxml_init_html_parser_options();
69
- rxml_init_html_parser_context();
70
- rxml_init_input_callbacks();
71
- rxml_init_dtd();
72
- rxml_init_schema();
73
- rxml_init_relaxng();
74
- rxml_init_reader();
75
- rxml_init_writer();
76
- }
1
+ #include "ruby_libxml.h"
2
+
3
+ #if RUBY_INTERN_H
4
+ #include <ruby/util.h>
5
+ #else
6
+ #include <util.h>
7
+ #endif
8
+
9
+
10
+ VALUE mLibXML;
11
+
12
+ static void rxml_init_memory(void)
13
+ {
14
+ /* Disable for now - broke attributes.
15
+ xmlGcMemSetup(
16
+ (xmlFreeFunc)ruby_xfree,
17
+ (xmlMallocFunc)ruby_xmalloc,
18
+ (xmlMallocFunc)ruby_xmalloc,
19
+ (xmlReallocFunc)ruby_xrealloc,
20
+ (xmlStrdupFunc)ruby_strdup
21
+ );*/
22
+ }
23
+
24
+ void Init_libxml_ruby(void)
25
+ {
26
+ /* The libxml gem provides Ruby language bindings for GNOME's Libxml2
27
+ * XML toolkit. To get started you may:
28
+ *
29
+ * require 'test_helper'
30
+ * document = XML::Document.new
31
+ *
32
+ * However, when creating an application or library you plan to
33
+ * redistribute, it is best to not add the LibXML module to the global
34
+ * namespace, in which case you can either write your code like this:
35
+ *
36
+ * require 'libxml'
37
+ * document = LibXML::XML::Document.new
38
+ *
39
+ * Refer to the README file to get started and the LICENSE file for
40
+ * copyright and distribution information.
41
+ */
42
+
43
+ // Seutp for threading. http://xmlsoft.org/threads.html
44
+ xmlInitParser();
45
+
46
+ mLibXML = rb_define_module("LibXML");
47
+
48
+ rxml_init_memory();
49
+ rxml_init_xml();
50
+ rxml_init_io();
51
+ rxml_init_error();
52
+ rxml_init_encoding();
53
+ rxml_init_parser();
54
+ rxml_init_parser_context();
55
+ rxml_init_parser_options();
56
+ rxml_init_node();
57
+ rxml_init_attributes();
58
+ rxml_init_attr();
59
+ rxml_init_attr_decl();
60
+ rxml_init_document();
61
+ rxml_init_namespaces();
62
+ rxml_init_namespace();
63
+ rxml_init_sax_parser();
64
+ rxml_init_sax2_handler();
65
+ rxml_init_xinclude();
66
+ rxml_init_xpath();
67
+ rxml_init_xpath_object();
68
+ rxml_init_xpath_context();
69
+ rxml_init_xpath_expression();
70
+ rxml_init_xpointer();
71
+ rxml_init_html_parser();
72
+ rxml_init_html_parser_options();
73
+ rxml_init_html_parser_context();
74
+ rxml_init_input_callbacks();
75
+ rxml_init_dtd();
76
+ rxml_init_schema();
77
+ rxml_init_relaxng();
78
+ rxml_init_reader();
79
+ rxml_init_writer();
80
+ }