libxml-ruby 3.2.4 → 4.1.0

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
  SHA256:
3
- metadata.gz: 4f06b4949ffd040a0587458c5e06af9638a8bbd5138d9febdade9c1ffe89f9e9
4
- data.tar.gz: d4e6ba9273e3b897fe09710e56a6e13faf9b37b99ac409dfac950f9ebce8cca7
3
+ metadata.gz: 5738b9c6f8515720321fdc1c4909d71642dae0eb6ece45df56715fc9e3a07c2f
4
+ data.tar.gz: 84b056d7300ad1b03cc09f9799839bbaaf648c50b3508c55f1d2c9aa9c554e04
5
5
  SHA512:
6
- metadata.gz: 87a83e5460f26c7ee1678587b2123ca5663cb45af60f2f8aef4e49486e7c77c6f0b7d74f15c9c6e45f025d3206e9f0b986bc416a18077af1cc35c9ce5f2c7d52
7
- data.tar.gz: c6bb25a27405a90be3ce34cffea4c79c2a359daebd82041dd1f2c2b536a1c064bcedeb75157b440ca2cc629c6c86cbaad7d58eaba1a877c383f6cffc8930fd05
6
+ metadata.gz: 76ba083abeb55264d7fbba86c82127afd4794cbdf93a1437623c2e71f02037f96fab3ef8a20b2648a61d53ec049af18f19917397dcefaab185135abbeae698b0
7
+ data.tar.gz: 807e907bde2917f2a1157a0e3c8fbf7b0da7cfa0cdf2806a28965aa1d51a630b0f81f93efc2e96449d407e947e597a613323f7a9265117af40e5daf877c6bb31
data/HISTORY CHANGED
@@ -1,5 +1,15 @@
1
1
  = Release History
2
2
 
3
+ == 4.1.0 / 2023-04-30
4
+
5
+ * Fix compile warning (or error) for rxml_encoding_to_rb_encoding (Charlie Savage)
6
+ * Breaking - Remove LibXML::XML.features since its uses functionality deprecated in LibXML (Charlie Savage)
7
+
8
+ == 4.0.0 / 2022-12-28
9
+
10
+ * Breaking - Remove support for XPointer since libxml2 has deprecated it and will remove it (Charlie Savage)
11
+ * Breaking - Remove support for ancient setup.rb script (Charlie Savage)
12
+
3
13
  == 3.2.4 / 2022-10-29
4
14
 
5
15
  * Support libxml2 version 2.10.2 (Charlie Savage)
data/ext/libxml/libxml.c CHANGED
@@ -67,7 +67,6 @@ void Init_libxml_ruby(void)
67
67
  rxml_init_xpath_object();
68
68
  rxml_init_xpath_context();
69
69
  rxml_init_xpath_expression();
70
- rxml_init_xpointer();
71
70
  rxml_init_html_parser();
72
71
  rxml_init_html_parser_options();
73
72
  rxml_init_html_parser_context();
@@ -25,7 +25,6 @@ cXMLXInclude DATA
25
25
  cXMLXPathContext DATA
26
26
  cXMLXPathExpression DATA
27
27
  cXMLXPathObject DATA
28
- cXMLXPointer DATA
29
28
  eXMLError DATA
30
29
  mLibXML DATA
31
30
  mXML DATA
@@ -34,7 +34,6 @@
34
34
  #include "ruby_xml_xpath_expression.h"
35
35
  #include "ruby_xml_xpath_context.h"
36
36
  #include "ruby_xml_xpath_object.h"
37
- #include "ruby_xml_xpointer.h"
38
37
  #include "ruby_xml_input_cbg.h"
39
38
  #include "ruby_xml_dtd.h"
40
39
  #include "ruby_xml_schema.h"
@@ -479,7 +479,7 @@ static VALUE rxml_default_line_numbers_set(VALUE klass, VALUE value)
479
479
  }
480
480
  }
481
481
 
482
- int rxml_libxml_default_options()
482
+ int rxml_libxml_default_options(void)
483
483
  {
484
484
  int options = 0;
485
485
 
@@ -757,45 +757,6 @@ static VALUE rxml_default_save_no_empty_tags_set(VALUE klass, VALUE value)
757
757
  }
758
758
  }
759
759
 
760
- /*
761
- * call-seq:
762
- * XML.features -> ["feature", ..., "feature"]
763
- *
764
- * Obtains an array of strings representing features supported
765
- * (and enabled) by the installed libxml.
766
- */
767
- static VALUE rxml_features(VALUE klass)
768
- {
769
- #ifndef LIBXML_LEGACY_ENABLED
770
- return Qnil;
771
- #else
772
- VALUE arr, str;
773
- int i, len = MAX_LIBXML_FEATURES_LEN;
774
- char **list = NULL;
775
-
776
- list = ALLOC_N(char *,MAX_LIBXML_FEATURES_LEN);
777
- MEMZERO(list, char *, MAX_LIBXML_FEATURES_LEN);
778
-
779
- arr = rb_ary_new();
780
- if (xmlGetFeaturesList(&len, (const char **) list) == -1)
781
- return Qnil;
782
-
783
- for (i = 0; i < len; i++)
784
- {
785
- str = rb_str_new2((const char *) list[i]);
786
- rb_gc_unregister_address(&str);
787
- rb_ary_push(arr, str);
788
- }
789
-
790
- if (len == MAX_LIBXML_FEATURES_LEN)
791
- rb_warn(
792
- "Please contact libxml-devel@rubyforge.org and ask to have the \"MAX_LIBXML_FEATURES_LEN increased\" because you could possibly be seeing an incomplete list");
793
-
794
- ruby_xfree(list);
795
- return (arr);
796
- #endif /* LIBXML_LEGACY_ENABLED */
797
- }
798
-
799
760
  /*
800
761
  * call-seq:
801
762
  * XML.indent_tree_output -> (true|false)
@@ -931,7 +892,6 @@ void rxml_init_xml(void)
931
892
  rb_define_module_function(mXML, "default_warnings=", rxml_default_warnings_set, 1);
932
893
  rb_define_module_function(mXML, "default_save_no_empty_tags", rxml_default_save_no_empty_tags_get, 0);
933
894
  rb_define_module_function(mXML, "default_save_no_empty_tags=", rxml_default_save_no_empty_tags_set, 1);
934
- rb_define_module_function(mXML, "features", rxml_features, 0);
935
895
  rb_define_module_function(mXML, "indent_tree_output", rxml_indent_tree_output_get, 0);
936
896
  rb_define_module_function(mXML, "indent_tree_output=", rxml_indent_tree_output_set, 1);
937
897
  rb_define_module_function(mXML, "memory_dump", rxml_memory_dump, 0);
@@ -4,7 +4,7 @@
4
4
  #define __RUBY_XML_H__
5
5
 
6
6
  extern VALUE mXML;
7
- int rxml_libxml_default_options();
7
+ int rxml_libxml_default_options(void);
8
8
  void rxml_init_xml(void);
9
9
 
10
10
  #endif
@@ -79,7 +79,7 @@ int deb_Close(void *context)
79
79
  return 1;
80
80
  }
81
81
 
82
- void deb_register_cbg()
82
+ void deb_register_cbg(void)
83
83
  {
84
84
  xmlRegisterInputCallbacks(deb_Match, deb_Open, deb_Read, deb_Close);
85
85
  }
@@ -235,7 +235,7 @@ static VALUE rxml_dtd_initialize(int argc, VALUE *argv, VALUE self)
235
235
  return self;
236
236
  }
237
237
 
238
- void rxml_init_dtd()
238
+ void rxml_init_dtd(void)
239
239
  {
240
240
  cXMLDtd = rb_define_class_under(mXML, "Dtd", rb_cObject);
241
241
  rb_define_alloc_func(cXMLDtd, rxml_dtd_alloc);
@@ -182,7 +182,7 @@ rb_encoding* rxml_figure_encoding(const xmlChar* xencoding)
182
182
  VALUE rxml_new_cstr(const xmlChar* xstr, const xmlChar* xencoding)
183
183
  {
184
184
  rb_encoding *rbencoding = rxml_figure_encoding(xencoding);
185
- return rb_external_str_new_with_enc((const char*)xstr, strlen((const char*)xstr), rbencoding);
185
+ return rb_external_str_new_with_enc((const char*)xstr, (long)strlen((const char*)xstr), rbencoding);
186
186
  }
187
187
 
188
188
  VALUE rxml_new_cstr_len(const xmlChar* xstr, const long length, const xmlChar* xencoding)
@@ -197,7 +197,7 @@ void rxml_init_encoding(void)
197
197
  rb_define_module_function(mXMLEncoding, "from_s", rxml_encoding_from_s, 1);
198
198
  rb_define_module_function(mXMLEncoding, "to_s", rxml_encoding_to_s, 1);
199
199
 
200
- rb_define_module_function(mXMLEncoding, "to_rb_encoding", rxml_encoding_to_rb_encoding, 2);
200
+ rb_define_module_function(mXMLEncoding, "to_rb_encoding", rxml_encoding_to_rb_encoding, 1);
201
201
 
202
202
  /* -1: No char encoding detected. */
203
203
  rb_define_const(mXMLEncoding, "ERROR", INT2NUM(XML_CHAR_ENCODING_ERROR));
@@ -44,7 +44,7 @@ static ID ERROR_HANDLER_ID;
44
44
  * Returns the proc that will be called when libxml generates
45
45
  * warning, error or fatal error messages.
46
46
  */
47
- static VALUE rxml_error_get_handler()
47
+ static VALUE rxml_error_get_handler(void)
48
48
  {
49
49
  VALUE block = rb_cvar_get(eXMLError, ERROR_HANDLER_ID);
50
50
  return block;
@@ -165,7 +165,7 @@ NORETURN(void rxml_raise(xmlErrorPtr xerror))
165
165
  rb_exc_raise(error);
166
166
  }
167
167
 
168
- void rxml_init_error()
168
+ void rxml_init_error(void)
169
169
  {
170
170
  CALL_METHOD = rb_intern("call");
171
171
  ERROR_HANDLER_ID = rb_intern("@@__error_handler_callback__");
@@ -7,7 +7,7 @@
7
7
 
8
8
  extern VALUE eXMLError;
9
9
 
10
- void rxml_init_error();
10
+ void rxml_init_error(void);
11
11
  VALUE rxml_error_wrap(xmlErrorPtr xerror);
12
12
  NORETURN(void rxml_raise(xmlErrorPtr xerror));
13
13
 
@@ -88,7 +88,7 @@ int ic_close(void *context)
88
88
  *
89
89
  * Register a new set of I/O callback for handling parser input.
90
90
  */
91
- static VALUE input_callbacks_register_input_callbacks()
91
+ static VALUE input_callbacks_register_input_callbacks(void)
92
92
  {
93
93
  xmlRegisterInputCallbacks(ic_match, ic_open, ic_read, ic_close);
94
94
  return (Qtrue);
@@ -30,7 +30,7 @@ int rxml_write_callback(VALUE io, const char *buffer, int len)
30
30
  {
31
31
  // Could be StringIO
32
32
  VALUE written, string;
33
- string = rb_external_str_new_with_enc(buffer, strlen(buffer), rb_enc_get(io));
33
+ string = rb_external_str_new_with_enc(buffer, (long)strlen(buffer), rb_enc_get(io));
34
34
  written = rb_funcall(io, WRITE_METHOD, 1, string);
35
35
  return NUM2INT(written);
36
36
  }
@@ -1001,17 +1001,6 @@ static VALUE rxml_node_path(VALUE self)
1001
1001
  return result;
1002
1002
  }
1003
1003
 
1004
- /*
1005
- * call-seq:
1006
- * node.pointer -> XML::NodeSet
1007
- *
1008
- * Evaluates an XPointer expression relative to this node.
1009
- */
1010
- static VALUE rxml_node_pointer(VALUE self, VALUE xptr_str)
1011
- {
1012
- return (rxml_xpointer_point2(self, xptr_str));
1013
- }
1014
-
1015
1004
  /*
1016
1005
  * call-seq:
1017
1006
  * node.prev -> XML::Node
@@ -1397,7 +1386,6 @@ void rxml_init_node(void)
1397
1386
  rb_define_method(cXMLNode, "output_escaping?", rxml_node_output_escaping_q, 0);
1398
1387
  rb_define_method(cXMLNode, "output_escaping=", rxml_node_output_escaping_set, 1);
1399
1388
  rb_define_method(cXMLNode, "path", rxml_node_path, 0);
1400
- rb_define_method(cXMLNode, "pointer", rxml_node_pointer, 1);
1401
1389
  rb_define_method(cXMLNode, "remove!", rxml_node_remove_ex, 0);
1402
1390
  rb_define_method(cXMLNode, "space_preserve", rxml_node_space_preserve_get, 0);
1403
1391
  rb_define_method(cXMLNode, "space_preserve=", rxml_node_space_preserve_set, 1);
@@ -3,8 +3,6 @@
3
3
  #ifndef __RXML_PARSER__
4
4
  #define __RXML_PARSER__
5
5
 
6
- #define MAX_LIBXML_FEATURES_LEN 50
7
-
8
6
  extern VALUE cXMLParser;
9
7
 
10
8
  void rxml_init_parser();
@@ -3,8 +3,6 @@
3
3
  #ifndef __RXML_PARSER_OPTIONS__
4
4
  #define __RXML_PARSER_OPTIONS__
5
5
 
6
- #define MAX_LIBXML_FEATURES_LEN 50
7
-
8
6
  extern VALUE mXMLParserOptions;
9
7
 
10
8
  void rxml_init_parser_options();
@@ -1,9 +1,9 @@
1
1
  /* Don't nuke this block! It is used for automatically updating the
2
2
  * versions below. VERSION = string formatting, VERNUM = numbered
3
3
  * version for inline testing: increment both or none at all.*/
4
- #define RUBY_LIBXML_VERSION "3.2.4"
5
- #define RUBY_LIBXML_VERNUM 324
6
- #define RUBY_LIBXML_VER_MAJ 3
7
- #define RUBY_LIBXML_VER_MIN 2
8
- #define RUBY_LIBXML_VER_MIC 4
4
+ #define RUBY_LIBXML_VERSION "4.1.0"
5
+ #define RUBY_LIBXML_VERNUM 400
6
+ #define RUBY_LIBXML_VER_MAJ 4
7
+ #define RUBY_LIBXML_VER_MIN 1
8
+ #define RUBY_LIBXML_VER_MIC 0
9
9
  #define RUBY_LIBXML_VER_PATCH 0
data/lib/libxml-ruby.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  begin
5
5
  RUBY_VERSION =~ /(\d+.\d+)/
6
6
  require "#{$1}/libxml_ruby"
7
- rescue LoadError => e
7
+ rescue LoadError
8
8
  require "libxml_ruby"
9
9
  end
10
10
 
data/test/test_xml.rb CHANGED
@@ -249,14 +249,6 @@ class TestXml < Minitest::Test
249
249
  assert_instance_of(Integer, LibXML::XML::VERNUM)
250
250
  end
251
251
 
252
- def test_libxml_parser_features
253
- if windows?
254
- assert_nil(LibXML::XML.features)
255
- else
256
- assert_instance_of(Array, LibXML::XML.features)
257
- end
258
- end
259
-
260
252
  def test_default_options
261
253
  assert_equal(0, LibXML::XML.default_options)
262
254
  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: 3.2.4
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Bamform
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2022-10-29 00:00:00.000000000 Z
17
+ date: 2023-04-30 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: rake-compiler
@@ -58,7 +58,6 @@ extra_rdoc_files: []
58
58
  files:
59
59
  - HISTORY
60
60
  - LICENSE
61
- - MANIFEST
62
61
  - README.rdoc
63
62
  - Rakefile
64
63
  - ext/libxml/extconf.h
@@ -136,8 +135,6 @@ files:
136
135
  - ext/libxml/ruby_xml_xpath_expression.h
137
136
  - ext/libxml/ruby_xml_xpath_object.c
138
137
  - ext/libxml/ruby_xml_xpath_object.h
139
- - ext/libxml/ruby_xml_xpointer.c
140
- - ext/libxml/ruby_xml_xpointer.h
141
138
  - ext/vc/libxml_ruby.sln
142
139
  - lib/libxml-ruby.rb
143
140
  - lib/libxml.rb
@@ -168,7 +165,6 @@ files:
168
165
  - script/benchmark/sock_entries.xml
169
166
  - script/benchmark/throughput
170
167
  - script/test
171
- - setup.rb
172
168
  - test/c14n/given/doc.dtd
173
169
  - test/c14n/given/example-1.xml
174
170
  - test/c14n/given/example-2.xml
@@ -252,7 +248,6 @@ files:
252
248
  - test/test_relaxng.rb
253
249
  - test/test_sax_parser.rb
254
250
  - test/test_schema.rb
255
- - test/test_suite.rb
256
251
  - test/test_traversal.rb
257
252
  - test/test_writer.rb
258
253
  - test/test_xinclude.rb
@@ -260,7 +255,6 @@ files:
260
255
  - test/test_xpath.rb
261
256
  - test/test_xpath_context.rb
262
257
  - test/test_xpath_expression.rb
263
- - test/test_xpointer.rb
264
258
  homepage: https://xml4r.github.io/libxml-ruby/
265
259
  licenses:
266
260
  - MIT
@@ -280,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
280
274
  - !ruby/object:Gem::Version
281
275
  version: '0'
282
276
  requirements: []
283
- rubygems_version: 3.3.14
277
+ rubygems_version: 3.4.8
284
278
  signing_key:
285
279
  specification_version: 4
286
280
  summary: Ruby Bindings for LibXML2
@@ -317,7 +311,6 @@ test_files:
317
311
  - test/test_relaxng.rb
318
312
  - test/test_sax_parser.rb
319
313
  - test/test_schema.rb
320
- - test/test_suite.rb
321
314
  - test/test_traversal.rb
322
315
  - test/test_writer.rb
323
316
  - test/test_xinclude.rb
@@ -325,4 +318,3 @@ test_files:
325
318
  - test/test_xpath.rb
326
319
  - test/test_xpath_context.rb
327
320
  - test/test_xpath_expression.rb
328
- - test/test_xpointer.rb
data/MANIFEST DELETED
@@ -1,166 +0,0 @@
1
- #!mast -x doc/libxml-ruby/rdoc -i .gitignore ext doc lib script test [A-Z]*
2
- ext/libxml/extconf.rb
3
- ext/libxml/libxml.c
4
- ext/libxml/ruby_libxml.h
5
- ext/libxml/ruby_xml.c
6
- ext/libxml/ruby_xml.h
7
- ext/libxml/ruby_xml_attr.c
8
- ext/libxml/ruby_xml_attr.h
9
- ext/libxml/ruby_xml_attr_decl.c
10
- ext/libxml/ruby_xml_attr_decl.h
11
- ext/libxml/ruby_xml_attributes.c
12
- ext/libxml/ruby_xml_attributes.h
13
- ext/libxml/ruby_xml_cbg.c
14
- ext/libxml/ruby_xml_document.c
15
- ext/libxml/ruby_xml_document.h
16
- ext/libxml/ruby_xml_dtd.c
17
- ext/libxml/ruby_xml_dtd.h
18
- ext/libxml/ruby_xml_encoding.c
19
- ext/libxml/ruby_xml_encoding.h
20
- ext/libxml/ruby_xml_error.c
21
- ext/libxml/ruby_xml_error.h
22
- ext/libxml/ruby_xml_html_parser.c
23
- ext/libxml/ruby_xml_html_parser.h
24
- ext/libxml/ruby_xml_html_parser_context.c
25
- ext/libxml/ruby_xml_html_parser_context.h
26
- ext/libxml/ruby_xml_html_parser_options.c
27
- ext/libxml/ruby_xml_html_parser_options.h
28
- ext/libxml/ruby_xml_input_cbg.c
29
- ext/libxml/ruby_xml_input_cbg.h
30
- ext/libxml/ruby_xml_io.c
31
- ext/libxml/ruby_xml_io.h
32
- ext/libxml/ruby_xml_namespace.c
33
- ext/libxml/ruby_xml_namespace.h
34
- ext/libxml/ruby_xml_namespaces.c
35
- ext/libxml/ruby_xml_namespaces.h
36
- ext/libxml/ruby_xml_node.c
37
- ext/libxml/ruby_xml_node.h
38
- ext/libxml/ruby_xml_parser.c
39
- ext/libxml/ruby_xml_parser.h
40
- ext/libxml/ruby_xml_parser_context.c
41
- ext/libxml/ruby_xml_parser_context.h
42
- ext/libxml/ruby_xml_parser_options.c
43
- ext/libxml/ruby_xml_parser_options.h
44
- ext/libxml/ruby_xml_reader.c
45
- ext/libxml/ruby_xml_reader.h
46
- ext/libxml/ruby_xml_relaxng.c
47
- ext/libxml/ruby_xml_relaxng.h
48
- ext/libxml/ruby_xml_sax2_handler.c
49
- ext/libxml/ruby_xml_sax2_handler.h
50
- ext/libxml/ruby_xml_sax_parser.c
51
- ext/libxml/ruby_xml_sax_parser.h
52
- ext/libxml/ruby_xml_schema.c
53
- ext/libxml/ruby_xml_schema.h
54
- ext/libxml/ruby_xml_version.h
55
- ext/libxml/ruby_xml_xinclude.c
56
- ext/libxml/ruby_xml_xinclude.h
57
- ext/libxml/ruby_xml_xpath.c
58
- ext/libxml/ruby_xml_xpath.h
59
- ext/libxml/ruby_xml_xpath_context.c
60
- ext/libxml/ruby_xml_xpath_context.h
61
- ext/libxml/ruby_xml_xpath_expression.c
62
- ext/libxml/ruby_xml_xpath_expression.h
63
- ext/libxml/ruby_xml_xpath_object.c
64
- ext/libxml/ruby_xml_xpath_object.h
65
- ext/libxml/ruby_xml_xpointer.c
66
- ext/libxml/ruby_xml_xpointer.h
67
- ext/mingw/Rakefile
68
- ext/mingw/build.rake
69
- ext/mingw/libiconv-2.dll
70
- ext/mingw/libxml2-2.dll
71
- ext/mingw/libxml_ruby.dll.a
72
- ext/mingw/libxml_ruby.so
73
- ext/vc/libxml_ruby.sln
74
- ext/vc/libxml_ruby_18/libxml_ruby.vcproj
75
- ext/vc/libxml_ruby_19/libxml_ruby_19.vcproj
76
- doc/.htaccess
77
- doc/.rsync-filter
78
- lib/libxml/attr.rb
79
- lib/libxml/attr_decl.rb
80
- lib/libxml/attributes.rb
81
- lib/libxml/document.rb
82
- lib/libxml/error.rb
83
- lib/libxml/hpricot.rb
84
- lib/libxml/html_parser.rb
85
- lib/libxml/namespace.rb
86
- lib/libxml/namespaces.rb
87
- lib/libxml/node.rb
88
- lib/libxml/ns.rb
89
- lib/libxml/parser.rb
90
- lib/libxml/properties.rb
91
- lib/libxml/reader.rb
92
- lib/libxml/sax_callbacks.rb
93
- lib/libxml/sax_parser.rb
94
- lib/libxml/tree.rb
95
- lib/libxml/xpath_object.rb
96
- lib/libxml.rb
97
- lib/xml/libxml.rb
98
- lib/xml.rb
99
- script/benchmark/depixelate
100
- script/benchmark/hamlet.xml
101
- script/benchmark/parsecount
102
- script/benchmark/sock_entries.xml
103
- script/benchmark/throughput
104
- script/test
105
- test/etc_doc_to_s.rb
106
- test/ets_doc_file.rb
107
- test/ets_doc_to_s.rb
108
- test/ets_gpx.rb
109
- test/ets_node_gc.rb
110
- test/ets_test.xml
111
- test/ets_tsr.rb
112
- test/model/atom.xml
113
- test/model/bands.xml
114
- test/model/books.xml
115
- test/model/merge_bug_data.xml
116
- test/model/ruby-lang.html
117
- test/model/rubynet.xml
118
- test/model/rubynet_project
119
- test/model/shiporder.rnc
120
- test/model/shiporder.rng
121
- test/model/shiporder.xml
122
- test/model/shiporder.xsd
123
- test/model/soap.xml
124
- test/model/xinclude.xml
125
- test/test_attr.rb
126
- test/test_attr_decl.rb
127
- test/test_attributes.rb
128
- test/test_deprecated_require.rb
129
- test/test_document.rb
130
- test/test_document_write.rb
131
- test/test_dtd.rb
132
- test/test_error.rb
133
- test/test_html_parser.rb
134
- test/test_namespace.rb
135
- test/test_namespaces.rb
136
- test/test_node.rb
137
- test/test_node_cdata.rb
138
- test/test_node_comment.rb
139
- test/test_node_copy.rb
140
- test/test_node_edit.rb
141
- test/test_node_pi.rb
142
- test/test_node_text.rb
143
- test/test_node_write.rb
144
- test/test_node_xlink.rb
145
- test/test_parser.rb
146
- test/test_parser_context.rb
147
- test/test_properties.rb
148
- test/test_reader.rb
149
- test/test_relaxng.rb
150
- test/test_sax_parser.rb
151
- test/test_schema.rb
152
- test/test_traversal.rb
153
- test/test_xinclude.rb
154
- test/test_xml.rb
155
- test/test_xpath.rb
156
- test/test_xpath_context.rb
157
- test/test_xpath_expression.rb
158
- test/test_xpointer.rb
159
- test/test_suite.rb
160
- Rakefile
161
- HISTORY.rdoc
162
- PROFILE
163
- TODO
164
- LICENSE
165
- README.rdoc
166
- VERSION
@@ -1,103 +0,0 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #include "ruby_libxml.h"
4
- #include "ruby_xml_xpointer.h"
5
-
6
- #ifdef LIBXML_XPTR_ENABLED
7
- #include <libxml/xpointer.h>
8
- #endif
9
-
10
- VALUE cXMLXPointer;
11
-
12
- /*
13
- * Document-class: LibXML::XML::XPointer
14
- *
15
- * The XML::Pointer class provides a standards based API for searching an xml document.
16
- * XPointer is based on the XML Path Language (XML::XPath) and is documented
17
- * at http://www.w3.org/TR/WD-xptr.
18
- */
19
-
20
- static VALUE rxml_xpointer_point(VALUE class, VALUE rnode, VALUE xptr_str)
21
- {
22
- #ifdef LIBXML_XPTR_ENABLED
23
- xmlNodePtr xnode;
24
- xmlXPathContextPtr xctxt;
25
- xmlXPathObjectPtr xpop;
26
-
27
- VALUE context;
28
- VALUE result;
29
- VALUE argv[1];
30
-
31
- Check_Type(xptr_str, T_STRING);
32
- if (rb_obj_is_kind_of(rnode, cXMLNode) == Qfalse)
33
- rb_raise(rb_eTypeError, "require an XML::Node object");
34
-
35
- Data_Get_Struct(rnode, xmlNode, xnode);
36
-
37
- argv[0] = rb_funcall(rnode, rb_intern("doc"), 0);
38
- context = rb_class_new_instance(1, argv, cXMLXPathContext);
39
- Data_Get_Struct(context, xmlXPathContext, xctxt);
40
-
41
- xpop = xmlXPtrEval((xmlChar*)StringValuePtr(xptr_str), xctxt);
42
- if (!xpop)
43
- rxml_raise(&xmlLastError);
44
-
45
- result = rxml_xpath_object_wrap(xnode->doc, xpop);
46
- rb_iv_set(result, "@context", context);
47
-
48
- return(result);
49
- #else
50
- rb_warn("libxml was compiled without XPointer support");
51
- return (Qfalse);
52
- #endif
53
- }
54
-
55
- VALUE rxml_xpointer_point2(VALUE node, VALUE xptr_str)
56
- {
57
- return (rxml_xpointer_point(cXMLXPointer, node, xptr_str));
58
- }
59
-
60
- /*
61
- * call-seq:
62
- * XML::XPointer.range(start_node, end_node) -> xpath
63
- *
64
- * Create an xpath representing the range between the supplied
65
- * start and end node.
66
- */
67
- static VALUE rxml_xpointer_range(VALUE class, VALUE rstart, VALUE rend)
68
- {
69
- #if defined LIBXML_XPTR_ENABLED && defined LIBXML_XPTR_LOCS_ENABLED
70
- xmlNodePtr start, end;
71
- VALUE rxxp;
72
- xmlXPathObjectPtr xpath;
73
-
74
- if (rb_obj_is_kind_of(rstart, cXMLNode) == Qfalse)
75
- rb_raise(rb_eTypeError, "require an XML::Node object as a starting point");
76
- if (rb_obj_is_kind_of(rend, cXMLNode) == Qfalse)
77
- rb_raise(rb_eTypeError, "require an XML::Node object as an ending point");
78
-
79
- Data_Get_Struct(rstart, xmlNode, start);
80
- if (start == NULL)
81
- return(Qnil);
82
-
83
- Data_Get_Struct(rend, xmlNode, end);
84
- if (end == NULL)
85
- return(Qnil);
86
-
87
- xpath = xmlXPtrNewRangeNodes(start, end);
88
- if (xpath == NULL)
89
- rb_fatal("You shouldn't be able to have this happen");
90
-
91
- rxxp = rxml_xpath_object_wrap(start->doc, xpath);
92
- return(rxxp);
93
- #else
94
- rb_warn("libxml was compiled without XPointer support");
95
- return (Qfalse);
96
- #endif
97
- }
98
-
99
- void rxml_init_xpointer(void)
100
- {
101
- cXMLXPointer = rb_define_class_under(mXML, "XPointer", rb_cObject);
102
- rb_define_singleton_method(cXMLXPointer, "range", rxml_xpointer_range, 2);
103
- }
@@ -1,11 +0,0 @@
1
- /* Please see the LICENSE file for copyright and distribution information */
2
-
3
- #ifndef __RXML_XPOINTER__
4
- #define __RXML_XPOINTER__
5
-
6
- extern VALUE cXMLXPointer;
7
-
8
- void rxml_init_xpointer(void);
9
- VALUE rxml_xpointer_point2(VALUE node, VALUE xptr_str);
10
-
11
- #endif