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 +0 -0
- data/Changelog +7 -0
- data/Rakefile +9 -15
- data/TODO +19 -0
- data/examples/HELLO-MORE.xml +1 -0
- data/examples/HELLO.rng +14 -0
- data/examples/HELLO.xml +8 -0
- data/examples/relaxng.rb +12 -0
- data/examples/xinclude.rb +15 -0
- data/rbxs.h +2 -1
- data/rbxs_dom.c +158 -13
- data/rbxs_dom.h +3 -0
- data/rbxs_domelement.c +23 -0
- metadata +68 -69
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 =
|
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?("
|
36
|
-
Dir.glob("**/*").collect{ |i| i unless i=~/^
|
37
|
-
|
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?("
|
47
|
-
Dir.glob("**/*").collect{ |i| i unless i
|
48
|
-
|
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>
|
data/examples/HELLO.rng
ADDED
@@ -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>
|
data/examples/HELLO.xml
ADDED
data/examples/relaxng.rb
ADDED
@@ -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.
|
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,
|
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",
|
472
|
-
rb_define_method(cSmartDom, "to_s",
|
473
|
-
rb_define_method(cSmartDom, "root",
|
474
|
-
rb_define_method(cSmartDom, "root=",
|
475
|
-
rb_define_method(cSmartDom, "find",
|
476
|
-
rb_define_method(cSmartDom, "on_change",
|
477
|
-
rb_define_method(cSmartDom, "change_handlers",
|
478
|
-
rb_define_method(cSmartDom, "save_as",
|
479
|
-
rb_define_method(cSmartDom, "namespaces=",
|
480
|
-
rb_define_method(cSmartDom, "namespaces",
|
481
|
-
rb_define_method(cSmartDom, "encode_entities=",
|
482
|
-
rb_define_method(cSmartDom, "encode_entities?",
|
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.
|
7
|
-
date:
|
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
|
-
-
|
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
|
-
-
|
35
|
-
-
|
36
|
-
-
|
37
|
-
-
|
38
|
-
-
|
39
|
-
-
|
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
|
-
-
|
55
|
-
-
|
56
|
-
-
|
57
|
-
-
|
58
|
-
-
|
59
|
-
-
|
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:
|