ruby-xml-smart 0.1.11-i486-linux → 0.1.12-i486-linux

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
File without changes
data/Changelog CHANGED
@@ -1,3 +1,10 @@
1
+ 0.1.12 "Oh my dear, a wall is missing in my flat and it's getting cold"
2
+ * XML::SMART::DOM::save_unformated => defaults to false
3
+ * XML::SMART::DOM::#xinclude!
4
+ * XML::SMART::DOM::ELEMENT::#xinclude!
5
+ * XML::SMART::DOM::#validate_against(XML::SMART.open("some_file.rng"))
6
+ -> will validate against XML Schema if ever libxml supports it :-)
7
+
1
8
  0.1.11 "name has to be selected"
2
9
  * Made usage in threads more robust (examples/concurrent.rb)
3
10
  (namespace related bug? gone!)
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ require 'rake/gempackagetask'
6
6
  require 'rdoc/rdoc'
7
7
 
8
8
  PKG_FILE = 'ruby-xml-smart'
9
- PKG_FILES = Dir.glob("_darcs/current/**/*").collect{ |i| i.gsub(/_darcs\/current\//,"") }
9
+ PKG_FILES = `git ls-files`.split(/\r?\n/)
10
10
  PKG_VERSION = File.read('rbxs.h').to_s.match(/RBXS_VERSION\s+"([^"]+)"/)[1]
11
11
  PKG_CURRENT = PKG_FILE + "-" + PKG_VERSION
12
12
 
@@ -32,23 +32,23 @@ end
32
32
 
33
33
  desc "Clean directory"
34
34
  task :clean do
35
- if File.exists?("_darcs")
36
- Dir.glob("**/*").collect{ |i| i unless i=~/^_darcs/ || i=~/^rdoc/ || i=~/^extconf/ || i=~/^Makefile/ }.compact.each { |i|
37
- unless PKG_FILES.include?(i)
35
+ if File.exists?(".git")
36
+ Dir.glob("**/*").collect{ |i| i unless i=~/^i\.git/ || i=~/^rdoc/ || i=~/^extconf/ || i=~/^Makefile/ }.compact.each do |i|
37
+ if !PKG_FILES.include?(i) && !File.directory?(i)
38
38
  rm_r i if File.exists?(i)
39
39
  end
40
- }
40
+ end
41
41
  else
42
42
  system "make clean"
43
43
  end
44
44
  end
45
45
  task :distclean do
46
- if File.exists?("_darcs")
47
- Dir.glob("**/*").collect{ |i| i unless i=~/_darcs/ }.compact.each { |i|
48
- unless PKG_FILES.include?(i)
46
+ if File.exists?(".git")
47
+ Dir.glob("**/*").collect{ |i| i unless i=~/^\.git/ }.compact.each do |i|
48
+ if !PKG_FILES.include?(i) && !File.directory?(i)
49
49
  rm_r i if File.exists?(i)
50
50
  end
51
- }
51
+ end
52
52
  else
53
53
  system "make distclean"
54
54
  end
@@ -99,12 +99,6 @@ Rake::RDocTask.new(:doc) do |rdoc|
99
99
  rdoc.rdoc_files.include 'rbxs_pullattribute.c'
100
100
  end
101
101
 
102
- desc "Creating package"
103
- task :darcs_package do
104
- system "export DARCS_REPO=#{Dir.pwd}; " +
105
- "darcs dist -d #{PKG_CURRENT}"
106
- end
107
-
108
102
  Rake::TestTask.new do |t|
109
103
  t.libs << "test"
110
104
  t.pattern = "test/*_test.rb"
data/TODO CHANGED
@@ -1,3 +1,22 @@
1
+ Known Bugs
2
+
3
+ * I have to deal with dup's, clone's and new's for XML::Smart::DOM::*
4
+
5
+ require 'xml/smart'
6
+ require 'date'
7
+
8
+ xmldoc = XML::Smart.open('crasher.xml')
9
+ xpath = '/eveapi/currentTime/text()'
10
+ text_str = xmldoc.root.find(xpath)[0]
11
+ puts DateTime.parse(text_str)
12
+ # or text_str.dup
13
+
14
+ ########################
15
+ <?xml version='1.0' encoding='UTF-8'?>
16
+ <eveapi version="2">
17
+ <currentTime>2008-10-10 02:40:49</currentTime>
18
+ </eveapi>
19
+
1
20
  Todo + Ideas:
2
21
 
3
22
  * add apply_style to dom (apply xslts) - keep in touch with Ken Wronkiewicz <wh at wirewd dot com>
@@ -0,0 +1 @@
1
+ <hello>hello curucamp</hello>
@@ -0,0 +1,14 @@
1
+ <element name="hellos" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0">
2
+ <oneOrMore>
3
+ <element name="hello">
4
+ <data type="string">
5
+ <param name="pattern">hello .+</param>
6
+ </data>
7
+ </element>
8
+ </oneOrMore>
9
+ <element name="include" ns="http://www.w3.org/2001/XInclude">
10
+ <attribute name="href">
11
+ <data type="anyURI"/>
12
+ </attribute>
13
+ </element>
14
+ </element>
@@ -0,0 +1,8 @@
1
+ <hellos xmlns:xi="http://www.w3.org/2001/XInclude">
2
+ <hello>hello world</hello>
3
+ <hello>hello obama</hello>
4
+ <hello>hello china</hello>
5
+ <hello>hello austria</hello>
6
+ <hello>hello me</hello>
7
+ <xi:include href="HELLO-MORE.xml"/>
8
+ </hellos>
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/ruby
2
+ require "#{File.dirname($0)}/../smart"
3
+
4
+ stime = Time.now.to_f
5
+ nums = 1000
6
+ # Watch the power
7
+ nums.times do
8
+ doc = XML::Smart.open(File.dirname($0) + "/HELLO.xml")
9
+ rng = XML::Smart.open(File.dirname($0) + "/HELLO.rng")
10
+ doc.validate_against(rng)
11
+ end
12
+ puts "#{nums} validations done: #{Time.now.to_f - stime} seconds"
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/ruby
2
+ require "#{File.dirname($0)}/../smart"
3
+
4
+ stime = Time.now.to_f
5
+ nums = 100000
6
+ # Watch the power
7
+ nums.times do
8
+ doc = XML::Smart.open(File.dirname($0) + "/HELLO.xml")
9
+ doc.xinclude!
10
+
11
+ # doc.find("//hellos").each do |e|
12
+ # e.xinclude!
13
+ # end
14
+ end
15
+ puts "#{nums} loads and xincludes done: #{Time.now.to_f - stime} seconds"
data/rbxs.h CHANGED
@@ -41,8 +41,9 @@
41
41
  #include <libxml/xpathInternals.h>
42
42
  #include <libxml/xmlreader.h>
43
43
  #include <libxml/xmlsave.h>
44
+ #include <libxml/xinclude.h>
44
45
 
45
- #define RBXS_VERSION "0.1.11"
46
+ #define RBXS_VERSION "0.1.12"
46
47
 
47
48
  #define RBXS_PARSER_TYPE_DOM 0
48
49
  #define RBXS_PARSER_TYPE_READER 1
data/rbxs_dom.c CHANGED
@@ -128,6 +128,31 @@ VALUE rbxs_dom_encode_entities_set(VALUE self, VALUE value)
128
128
  }
129
129
  }
130
130
 
131
+ /*
132
+ * Documentation
133
+ */
134
+ VALUE rbxs_dom_xinclude(VALUE self)
135
+ {
136
+ xmlNodePtr root = NULL;
137
+ int err = 0;
138
+ rbxs_dom *prbxs_dom;
139
+
140
+ Data_Get_Struct(self, rbxs_dom, prbxs_dom);
141
+ err = xmlXIncludeProcess(prbxs_dom->doc);
142
+
143
+ root = (xmlNodePtr) prbxs_dom->doc->children;
144
+ while(root && root->type != XML_ELEMENT_NODE && root->type != XML_XINCLUDE_START) {
145
+ root = root->next;
146
+ }
147
+ if (root) {
148
+ rbxs_dom_remove_xinclude_nodes(root);
149
+ }
150
+
151
+ if (err)
152
+ return(Qtrue);
153
+ return(Qfalse);
154
+ }
155
+
131
156
  /*
132
157
  * Documentation
133
158
  */
@@ -140,6 +165,38 @@ VALUE rbxs_dom_encode_entities_q(VALUE self)
140
165
  else
141
166
  return(Qtrue);
142
167
  }
168
+
169
+ /*
170
+ * Documentation
171
+ */
172
+ VALUE rbxs_dom_save_unformated_set(VALUE self, VALUE value)
173
+ {
174
+ rbxs_dom *prbxs_dom;
175
+ Data_Get_Struct(self, rbxs_dom, prbxs_dom);
176
+ switch (TYPE(value)) {
177
+ case T_FALSE:
178
+ prbxs_dom->saveUnformated = 1;
179
+ return Qfalse;
180
+ case T_TRUE:
181
+ prbxs_dom->saveUnformated = 0;
182
+ return Qtrue;
183
+ default:
184
+ rb_raise(rb_eArgError, "can be set to TRUE or FALSE");
185
+ }
186
+ }
187
+
188
+ /*
189
+ * Documentation
190
+ */
191
+ VALUE rbxs_dom_save_unformated_q(VALUE self)
192
+ {
193
+ rbxs_dom *prbxs_dom;
194
+ Data_Get_Struct(self, rbxs_dom, prbxs_dom);
195
+ if (prbxs_dom->saveUnformated == 1)
196
+ return(Qfalse);
197
+ else
198
+ return(Qtrue);
199
+ }
143
200
 
144
201
  /*
145
202
  * Documentation
@@ -157,6 +214,55 @@ VALUE rbxs_dom_root(VALUE self)
157
214
  return(Qnil);
158
215
  }
159
216
 
217
+ /*
218
+ * Documentation
219
+ */
220
+ VALUE rbxs_dom_validate_relaxng(VALUE self, VALUE rdoc)
221
+ {
222
+ xmlRelaxNGParserCtxtPtr parser;
223
+ xmlRelaxNGPtr sptr;
224
+ xmlRelaxNGValidCtxtPtr vptr;
225
+ int is_valid;
226
+
227
+ rbxs_dom *prbxs_dom;
228
+ rbxs_dom *prbxs_rdom;
229
+
230
+ Data_Get_Struct(self, rbxs_dom, prbxs_dom);
231
+ Data_Get_Struct(rdoc, rbxs_dom, prbxs_rdom);
232
+
233
+ if (rb_obj_is_kind_of(rdoc, cSmartDom)) {
234
+ parser = xmlRelaxNGNewDocParserCtxt(prbxs_rdom->doc);
235
+
236
+ xmlRelaxNGSetParserErrors(parser,
237
+ (xmlRelaxNGValidityErrorFunc) fprintf,
238
+ (xmlRelaxNGValidityWarningFunc) fprintf,
239
+ stderr);
240
+ sptr = xmlRelaxNGParse(parser);
241
+ xmlRelaxNGFreeParserCtxt(parser);
242
+ if (!sptr)
243
+ rb_raise(rb_eRuntimeError, "Invalid RelaxNG");
244
+
245
+ vptr = xmlRelaxNGNewValidCtxt(sptr);
246
+ if (!vptr) {
247
+ xmlRelaxNGFree(sptr);
248
+ rb_raise(rb_eRuntimeError, "Invalid RelaxNG Validation Context");
249
+ }
250
+
251
+ xmlRelaxNGSetValidErrors(vptr,
252
+ (xmlRelaxNGValidityErrorFunc) fprintf,
253
+ (xmlRelaxNGValidityErrorFunc) fprintf,
254
+ stderr);
255
+ is_valid = xmlRelaxNGValidateDoc(vptr, prbxs_dom->doc);
256
+ xmlRelaxNGFree(sptr);
257
+ xmlRelaxNGFreeValidCtxt(vptr);
258
+
259
+ if (is_valid == 0)
260
+ return(Qtrue);
261
+ return(Qfalse);
262
+ } else
263
+ rb_raise(rb_eArgError, "takes a dom document as argument");
264
+ }
265
+
160
266
  /*
161
267
  * Documentation
162
268
  */
@@ -290,6 +396,39 @@ void rbxs_dom_change_handlers_execute(rbxs_dom *prbxs_dom, unsigned short int ty
290
396
  }
291
397
  }
292
398
 
399
+ xmlNodePtr rbxs_dom_free_xinclude_node(xmlNodePtr cur) {
400
+ xmlNodePtr xincnode;
401
+ xincnode = cur;
402
+ cur = cur->next;
403
+ xmlUnlinkNode(xincnode);
404
+ xmlFreeNode(xincnode);
405
+ return cur;
406
+ }
407
+
408
+ void rbxs_dom_remove_xinclude_nodes(xmlNodePtr cur) {
409
+ while(cur) {
410
+ if (cur->type == XML_XINCLUDE_START) {
411
+ rbxs_dom_free_xinclude_node(cur);
412
+
413
+ while(cur && cur->type != XML_XINCLUDE_END) {
414
+ if (cur->type == XML_ELEMENT_NODE) {
415
+ rbxs_dom_remove_xinclude_nodes(cur->children);
416
+ }
417
+ cur = cur->next;
418
+ }
419
+
420
+ if (cur && cur->type == XML_XINCLUDE_END) {
421
+ cur = rbxs_dom_free_xinclude_node(cur);
422
+ }
423
+ } else {
424
+ if (cur->type == XML_ELEMENT_NODE) {
425
+ rbxs_dom_remove_xinclude_nodes(cur->children);
426
+ }
427
+ cur = cur->next;
428
+ }
429
+ }
430
+ }
431
+
293
432
  //***********************************************************************************
294
433
  // Constructors
295
434
  //***********************************************************************************
@@ -327,6 +466,7 @@ VALUE rbxs_dom_string(VALUE string) {
327
466
  prbxs_dom->changeHandlers = rb_ary_new2(0);
328
467
  prbxs_dom->namespaces = rb_hash_new();
329
468
  prbxs_dom->encodeEntities = 1;
469
+ prbxs_dom->saveUnformated = 1;
330
470
  prbxs_dom->doc = ctxt->myDoc;
331
471
 
332
472
  xmlFreeParserCtxt(ctxt);
@@ -397,6 +537,7 @@ VALUE rbxs_dom_open(VALUE name, char *root, unsigned short int lock, unsigned sh
397
537
 
398
538
  prbxs_dom->type = RBXS_DOM_TYPE_FILE;
399
539
  prbxs_dom->encodeEntities = 1;
540
+ prbxs_dom->saveUnformated = 1;
400
541
  prbxs_dom->changeHandlers = rb_ary_new2(0);
401
542
  prbxs_dom->namespaces = rb_hash_new();
402
543
  prbxs_dom->lock = lock;
@@ -438,7 +579,7 @@ VALUE rbxs_dom_open(VALUE name, char *root, unsigned short int lock, unsigned sh
438
579
  rb_yield(Data_Wrap_Struct(cSmartDom, rbxs_dom_mark, rbxs_dom_free, prbxs_dom));
439
580
  if (save > 0) {
440
581
  int status = -1;
441
- status = xmlSaveFormatFile(StringValuePtr(name), prbxs_dom->doc, 1);
582
+ status = xmlSaveFormatFile(StringValuePtr(name), prbxs_dom->doc, prbxs_dom->saveUnformated);
442
583
  if (prbxs_dom->lock > 0) {
443
584
  unlink(lockfile);
444
585
  free(lockfile);
@@ -468,16 +609,20 @@ void init_rbxs_dom( void ) {
468
609
  rb_define_const(cSmartDom, "SIGNAL_CHANGE", INT2NUM(RBXS_DOM_SIGNAL_CHANGE));
469
610
  rb_define_const(cSmartDom, "SIGNAL_DELETE", INT2NUM(RBXS_DOM_SIGNAL_DELETE));
470
611
 
471
- rb_define_method(cSmartDom, "inspect", rbxs_dom_inspect, 0);
472
- rb_define_method(cSmartDom, "to_s", rbxs_dom_to_s, 0);
473
- rb_define_method(cSmartDom, "root", rbxs_dom_root, 0);
474
- rb_define_method(cSmartDom, "root=", rbxs_dom_root_set, 1);
475
- rb_define_method(cSmartDom, "find", rbxs_dom_find, -1);
476
- rb_define_method(cSmartDom, "on_change", rbxs_dom_change_handler_set, 0);
477
- rb_define_method(cSmartDom, "change_handlers", rbxs_dom_change_handlers, 0);
478
- rb_define_method(cSmartDom, "save_as", rbxs_dom_save_as, 1);
479
- rb_define_method(cSmartDom, "namespaces=", rbxs_dom_namespaces_set, 1);
480
- rb_define_method(cSmartDom, "namespaces", rbxs_dom_namespaces_get, 0);
481
- rb_define_method(cSmartDom, "encode_entities=", rbxs_dom_encode_entities_set, 1);
482
- rb_define_method(cSmartDom, "encode_entities?", rbxs_dom_encode_entities_q, 0);
612
+ rb_define_method(cSmartDom, "inspect", rbxs_dom_inspect, 0);
613
+ rb_define_method(cSmartDom, "to_s", rbxs_dom_to_s, 0);
614
+ rb_define_method(cSmartDom, "root", rbxs_dom_root, 0);
615
+ rb_define_method(cSmartDom, "root=", rbxs_dom_root_set, 1);
616
+ rb_define_method(cSmartDom, "find", rbxs_dom_find, -1);
617
+ rb_define_method(cSmartDom, "on_change", rbxs_dom_change_handler_set, 0);
618
+ rb_define_method(cSmartDom, "change_handlers", rbxs_dom_change_handlers, 0);
619
+ rb_define_method(cSmartDom, "save_as", rbxs_dom_save_as, 1);
620
+ rb_define_method(cSmartDom, "namespaces=", rbxs_dom_namespaces_set, 1);
621
+ rb_define_method(cSmartDom, "namespaces", rbxs_dom_namespaces_get, 0);
622
+ rb_define_method(cSmartDom, "encode_entities=", rbxs_dom_encode_entities_set, 1);
623
+ rb_define_method(cSmartDom, "encode_entities?", rbxs_dom_encode_entities_q, 0);
624
+ rb_define_method(cSmartDom, "save_unformated=", rbxs_dom_save_unformated_set, 1);
625
+ rb_define_method(cSmartDom, "save_unformated?", rbxs_dom_save_unformated_q, 0);
626
+ rb_define_method(cSmartDom, "xinclude!", rbxs_dom_xinclude, 0);
627
+ rb_define_method(cSmartDom, "validate_against", rbxs_dom_validate_relaxng, 1);
483
628
  }
data/rbxs_dom.h CHANGED
@@ -16,6 +16,7 @@ RUBY_EXTERN VALUE cSmartDom;
16
16
 
17
17
  typedef struct rbxs_dom {
18
18
  unsigned short int encodeEntities;
19
+ unsigned short int saveUnformated;
19
20
  int type;
20
21
  unsigned short int lock;
21
22
  xmlDocPtr doc;
@@ -24,6 +25,8 @@ typedef struct rbxs_dom {
24
25
  } rbxs_dom;
25
26
 
26
27
  void rbxs_dom_change_handlers_execute(rbxs_dom *prbxs_dom, unsigned short int type, VALUE node);
28
+ xmlNodePtr rbxs_dom_free_xinclude_node(xmlNodePtr cur);
29
+ void rbxs_dom_remove_xinclude_nodes(xmlNodePtr cur);
27
30
 
28
31
  RUBY_EXTERN VALUE rbxs_dom_open(VALUE name, char *root, unsigned short int lock, unsigned short int save);
29
32
  RUBY_EXTERN VALUE rbxs_dom_string(VALUE string);
data/rbxs_domelement.c CHANGED
@@ -566,6 +566,28 @@ VALUE rbxs_domelement_namespace_q(VALUE self)
566
566
  return(Qfalse);
567
567
  }
568
568
 
569
+ /*
570
+ * Documentation
571
+ */
572
+ VALUE rbxs_domelement_xinclude(VALUE self)
573
+ {
574
+ xmlNodePtr node = NULL;
575
+ int err = 0;
576
+ rbxs_domelement *prbxs_domelement;
577
+
578
+ Data_Get_Struct(self, rbxs_domelement, prbxs_domelement);
579
+
580
+ node = (xmlNodePtr) prbxs_domelement->node;
581
+ if (node) {
582
+ err = xmlXIncludeProcessTree(node);
583
+ rbxs_dom_remove_xinclude_nodes(node);
584
+ }
585
+
586
+ if (err)
587
+ return(Qtrue);
588
+ return(Qfalse);
589
+ }
590
+
569
591
  /*
570
592
  * Documentation
571
593
  */
@@ -653,4 +675,5 @@ void init_rbxs_domelement(void) {
653
675
  rb_define_method(cSmartDomElement, "namespace", rbxs_domelement_namespace, 0);
654
676
  rb_define_method(cSmartDomElement, "namespace?", rbxs_domelement_namespace_q, 0);
655
677
  rb_define_method(cSmartDomElement, "namespace=", rbxs_domelement_namespace_set, 1);
678
+ rb_define_method(cSmartDomElement, "xinclude!", rbxs_domelement_xinclude, 0);
656
679
  }
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: ruby-xml-smart
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.11
7
- date: 2008-08-22 00:00:00 +02:00
6
+ version: 0.1.12
7
+ date: 2009-03-14 00:00:00 +01:00
8
8
  summary: easy to use and stable libxml2 binding
9
9
  require_paths:
10
10
  - .
@@ -28,85 +28,84 @@ cert_chain:
28
28
  authors:
29
29
  - "J\xC3\xBCrgen Mangler"
30
30
  files:
31
- - test
31
+ - .gitignore
32
+ - AUTHORS
33
+ - COPYING
34
+ - Changelog
35
+ - README
36
+ - Rakefile
37
+ - TODO
38
+ - examples/EXAMPLE.xml
39
+ - examples/EXAMPLE.xml.sic
40
+ - examples/HELLO-MORE.xml
41
+ - examples/HELLO.rng
42
+ - examples/HELLO.xml
43
+ - examples/Visualise/EXAMPLE.xml
44
+ - examples/Visualise/term-ansicolor-0.0.4/CHANGES
45
+ - examples/Visualise/term-ansicolor-0.0.4/GPL
46
+ - examples/Visualise/term-ansicolor-0.0.4/README.en
47
+ - examples/Visualise/term-ansicolor-0.0.4/Rakefile
48
+ - examples/Visualise/term-ansicolor-0.0.4/VERSION
49
+ - examples/Visualise/term-ansicolor-0.0.4/examples/cdiff.rb
50
+ - examples/Visualise/term-ansicolor-0.0.4/examples/example.rb
51
+ - examples/Visualise/term-ansicolor-0.0.4/install.rb
52
+ - examples/Visualise/term-ansicolor-0.0.4/lib/term/ansicolor.rb
53
+ - examples/Visualise/xpath_visual.rb
54
+ - examples/add_children.rb
55
+ - examples/add_elements.rb
56
+ - examples/attrs.rb
57
+ - examples/children.rb
58
+ - examples/concurrent.rb
59
+ - examples/copy.rb
60
+ - examples/create.rb
61
+ - examples/delete.rb
62
+ - examples/move_elements.rb
63
+ - examples/namespace.rb
64
+ - examples/namespace_detailed.rb
65
+ - examples/namespace_find.rb
66
+ - examples/pull.rb
67
+ - examples/qname.rb
68
+ - examples/relaxng.rb
69
+ - examples/replace.rb
70
+ - examples/set_OR_replace.rb
71
+ - examples/signals.rb
72
+ - examples/string.rb
73
+ - examples/write.rb
74
+ - examples/xinclude.rb
75
+ - examples/xpath_attrs.rb
76
+ - examples/xpath_functions.rb
77
+ - examples/xpath_root.rb
78
+ - extconf.rb
79
+ - rbxs.c
80
+ - rbxs.h
81
+ - rbxs_dom.c
82
+ - rbxs_dom.h
32
83
  - rbxs_domattribute.c
33
84
  - rbxs_domattribute.h
34
- - rbxs_pullattribute.c
35
- - rbxs_pullattribute.h
36
- - rbxs_pullattributeset.c
37
- - rbxs_pullattributeset.h
38
- - Rakefile
39
- - README
40
- - rbxs_qname.c
41
- - rbxs_qname.h
85
+ - rbxs_domattributeset.c
86
+ - rbxs_domattributeset.h
87
+ - rbxs_domelement.c
88
+ - rbxs_domelement.h
89
+ - rbxs_domnamespace.c
90
+ - rbxs_domnamespace.h
42
91
  - rbxs_domnamespaceset.c
43
92
  - rbxs_domnamespaceset.h
44
93
  - rbxs_domnodeset.c
45
94
  - rbxs_domnodeset.h
95
+ - rbxs_domother.c
96
+ - rbxs_domother.h
46
97
  - rbxs_domtext.c
47
98
  - rbxs_domtext.h
48
- - rbxs_domnamespace.c
49
- - rbxs_domnamespace.h
50
- - rbxs.c
51
- - rbxs.h
52
99
  - rbxs_pull.c
53
100
  - rbxs_pull.h
54
- - rbxs_domelement.c
55
- - rbxs_domelement.h
56
- - rbxs_dom.c
57
- - rbxs_dom.h
58
- - AUTHORS
59
- - rbxs_domattributeset.c
60
- - rbxs_domattributeset.h
61
- - examples
101
+ - rbxs_pullattribute.c
102
+ - rbxs_pullattribute.h
103
+ - rbxs_pullattributeset.c
104
+ - rbxs_pullattributeset.h
105
+ - rbxs_qname.c
106
+ - rbxs_qname.h
62
107
  - rbxs_utils.h
63
- - Changelog
64
- - COPYING
65
- - TODO
66
- - rbxs_domother.c
67
- - rbxs_domother.h
68
- - extconf.rb
69
108
  - test/namespace_test.rb
70
- - examples/pull.rb
71
- - examples/copy.rb
72
- - examples/EXAMPLE.xml
73
- - examples/Visualise
74
- - examples/attrs.rb
75
- - examples/string.rb
76
- - examples/xpath_root.rb
77
- - examples/xpath_functions.rb
78
- - examples/add_elements.rb
79
- - examples/add_children.rb
80
- - examples/namespace_detailed.rb
81
- - examples/move_elements.rb
82
- - examples/EXAMPLE.xml.sic
83
- - examples/namespace.rb
84
- - examples/delete.rb
85
- - examples/replace.rb
86
- - examples/qname.rb
87
- - examples/create.rb
88
- - examples/set_OR_replace.rb
89
- - examples/write.rb
90
- - examples/xpath_attrs.rb
91
- - examples/signals.rb
92
- - examples/children.rb
93
- - examples/namespace_find.rb
94
- - examples/concurrent.rb
95
- - examples/Visualise/EXAMPLE.xml
96
- - examples/Visualise/xpath_visual.rb
97
- - examples/Visualise/term-ansicolor-0.0.4
98
- - examples/Visualise/term-ansicolor-0.0.4/GPL
99
- - examples/Visualise/term-ansicolor-0.0.4/lib
100
- - examples/Visualise/term-ansicolor-0.0.4/README.en
101
- - examples/Visualise/term-ansicolor-0.0.4/Rakefile
102
- - examples/Visualise/term-ansicolor-0.0.4/install.rb
103
- - examples/Visualise/term-ansicolor-0.0.4/VERSION
104
- - examples/Visualise/term-ansicolor-0.0.4/CHANGES
105
- - examples/Visualise/term-ansicolor-0.0.4/examples
106
- - examples/Visualise/term-ansicolor-0.0.4/lib/term
107
- - examples/Visualise/term-ansicolor-0.0.4/lib/term/ansicolor.rb
108
- - examples/Visualise/term-ansicolor-0.0.4/examples/example.rb
109
- - examples/Visualise/term-ansicolor-0.0.4/examples/cdiff.rb
110
109
  test_files:
111
110
  - test/namespace_test.rb
112
111
  rdoc_options: