libxslt-ruby 0.6.0-x86-mswin32-60 → 0.7.0-x86-mswin32-60
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.
- data/README +125 -136
- data/doc/classes/XSLT.html +215 -0
- data/doc/classes/XSLT/Stylesheet.html +244 -0
- data/doc/classes/XSLT/TransformContext.html +111 -0
- data/doc/created.rid +1 -0
- data/doc/files/CHANGES.html +168 -0
- data/doc/files/LICENSE.html +133 -0
- data/doc/files/README.html +269 -0
- data/doc/files/ext/libxslt/libxslt_c.html +101 -0
- data/doc/files/ext/libxslt/ruby_xslt_stylesheet_c.html +101 -0
- data/doc/files/ext/libxslt/ruby_xslt_transform_context_c.html +101 -0
- data/doc/files/lib/deprecated_rb.html +101 -0
- data/doc/files/lib/libxslt_rb.html +110 -0
- data/doc/fr_class_index.html +29 -0
- data/doc/fr_file_index.html +34 -0
- data/doc/fr_method_index.html +28 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/ext/libxslt/libxslt.c +21 -212
- data/ext/libxslt/libxslt.h +0 -17
- data/ext/libxslt/ruby_xslt_stylesheet.c +135 -173
- data/ext/libxslt/ruby_xslt_stylesheet.h +5 -10
- data/ext/libxslt/ruby_xslt_transform_context.c +5 -2
- data/ext/libxslt/version.h +2 -2
- data/lib/deprecated.rb +66 -0
- data/lib/libxslt.rb +1 -0
- data/lib/libxslt_ruby.so +0 -0
- data/mingw/libxslt_ruby.so +0 -0
- data/tests/files/commentary.dtd +34 -0
- data/tests/files/fuzface.xml +154 -0
- data/tests/files/fuzface.xsl +4 -0
- data/tests/files/params.xml +2 -0
- data/tests/files/params.xsl +11 -0
- data/tests/files/ramblings.xsl +46 -0
- data/tests/test_deprecated.rb +99 -0
- data/tests/test_libxslt.rb +21 -0
- data/tests/test_stylesheet.rb +64 -0
- data/tests/test_suite.rb +3 -0
- data/vc/libxslt_ruby.sln +1 -1
- data/vc/libxslt_ruby.vcproj +3 -3
- metadata +41 -10
- data/mingw/mingw.rake +0 -36
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Methods
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Methods</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Methods</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="classes/XSLT/Stylesheet.html#M000002">apply (XSLT::Stylesheet)</a><br />
|
24
|
+
<a href="classes/XSLT/Stylesheet.html#M000001">new (XSLT::Stylesheet)</a><br />
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</body>
|
28
|
+
</html>
|
data/doc/index.html
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
5
|
+
|
6
|
+
<!--
|
7
|
+
|
8
|
+
libxml-xslt
|
9
|
+
|
10
|
+
-->
|
11
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
12
|
+
<head>
|
13
|
+
<title>libxml-xslt</title>
|
14
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
15
|
+
</head>
|
16
|
+
<frameset rows="20%, 80%">
|
17
|
+
<frameset cols="25%,35%,45%">
|
18
|
+
<frame src="fr_file_index.html" title="Files" name="Files" />
|
19
|
+
<frame src="fr_class_index.html" name="Classes" />
|
20
|
+
<frame src="fr_method_index.html" name="Methods" />
|
21
|
+
</frameset>
|
22
|
+
<frame src="files/README.html" name="docwin" />
|
23
|
+
</frameset>
|
24
|
+
</html>
|
data/doc/rdoc-style.css
ADDED
@@ -0,0 +1,208 @@
|
|
1
|
+
|
2
|
+
body {
|
3
|
+
font-family: Verdana,Arial,Helvetica,sans-serif;
|
4
|
+
font-size: 90%;
|
5
|
+
margin: 0;
|
6
|
+
margin-left: 40px;
|
7
|
+
padding: 0;
|
8
|
+
background: white;
|
9
|
+
}
|
10
|
+
|
11
|
+
h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
|
12
|
+
h1 { font-size: 150%; }
|
13
|
+
h2,h3,h4 { margin-top: 1em; }
|
14
|
+
|
15
|
+
a { background: #eef; color: #039; text-decoration: none; }
|
16
|
+
a:hover { background: #039; color: #eef; }
|
17
|
+
|
18
|
+
/* Override the base stylesheet's Anchor inside a table cell */
|
19
|
+
td > a {
|
20
|
+
background: transparent;
|
21
|
+
color: #039;
|
22
|
+
text-decoration: none;
|
23
|
+
}
|
24
|
+
|
25
|
+
/* and inside a section title */
|
26
|
+
.section-title > a {
|
27
|
+
background: transparent;
|
28
|
+
color: #eee;
|
29
|
+
text-decoration: none;
|
30
|
+
}
|
31
|
+
|
32
|
+
/* === Structural elements =================================== */
|
33
|
+
|
34
|
+
div#index {
|
35
|
+
margin: 0;
|
36
|
+
margin-left: -40px;
|
37
|
+
padding: 0;
|
38
|
+
font-size: 90%;
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
div#index a {
|
43
|
+
margin-left: 0.7em;
|
44
|
+
}
|
45
|
+
|
46
|
+
div#index .section-bar {
|
47
|
+
margin-left: 0px;
|
48
|
+
padding-left: 0.7em;
|
49
|
+
background: #ccc;
|
50
|
+
font-size: small;
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
div#classHeader, div#fileHeader {
|
55
|
+
width: auto;
|
56
|
+
color: white;
|
57
|
+
padding: 0.5em 1.5em 0.5em 1.5em;
|
58
|
+
margin: 0;
|
59
|
+
margin-left: -40px;
|
60
|
+
border-bottom: 3px solid #006;
|
61
|
+
}
|
62
|
+
|
63
|
+
div#classHeader a, div#fileHeader a {
|
64
|
+
background: inherit;
|
65
|
+
color: white;
|
66
|
+
}
|
67
|
+
|
68
|
+
div#classHeader td, div#fileHeader td {
|
69
|
+
background: inherit;
|
70
|
+
color: white;
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
div#fileHeader {
|
75
|
+
background: #057;
|
76
|
+
}
|
77
|
+
|
78
|
+
div#classHeader {
|
79
|
+
background: #048;
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
.class-name-in-header {
|
84
|
+
font-size: 180%;
|
85
|
+
font-weight: bold;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
div#bodyContent {
|
90
|
+
padding: 0 1.5em 0 1.5em;
|
91
|
+
}
|
92
|
+
|
93
|
+
div#description {
|
94
|
+
padding: 0.5em 1.5em;
|
95
|
+
background: #efefef;
|
96
|
+
border: 1px dotted #999;
|
97
|
+
}
|
98
|
+
|
99
|
+
div#description h1,h2,h3,h4,h5,h6 {
|
100
|
+
color: #125;;
|
101
|
+
background: transparent;
|
102
|
+
}
|
103
|
+
|
104
|
+
div#validator-badges {
|
105
|
+
text-align: center;
|
106
|
+
}
|
107
|
+
div#validator-badges img { border: 0; }
|
108
|
+
|
109
|
+
div#copyright {
|
110
|
+
color: #333;
|
111
|
+
background: #efefef;
|
112
|
+
font: 0.75em sans-serif;
|
113
|
+
margin-top: 5em;
|
114
|
+
margin-bottom: 0;
|
115
|
+
padding: 0.5em 2em;
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
/* === Classes =================================== */
|
120
|
+
|
121
|
+
table.header-table {
|
122
|
+
color: white;
|
123
|
+
font-size: small;
|
124
|
+
}
|
125
|
+
|
126
|
+
.type-note {
|
127
|
+
font-size: small;
|
128
|
+
color: #DEDEDE;
|
129
|
+
}
|
130
|
+
|
131
|
+
.xxsection-bar {
|
132
|
+
background: #eee;
|
133
|
+
color: #333;
|
134
|
+
padding: 3px;
|
135
|
+
}
|
136
|
+
|
137
|
+
.section-bar {
|
138
|
+
color: #333;
|
139
|
+
border-bottom: 1px solid #999;
|
140
|
+
margin-left: -20px;
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
.section-title {
|
145
|
+
background: #79a;
|
146
|
+
color: #eee;
|
147
|
+
padding: 3px;
|
148
|
+
margin-top: 2em;
|
149
|
+
margin-left: -30px;
|
150
|
+
border: 1px solid #999;
|
151
|
+
}
|
152
|
+
|
153
|
+
.top-aligned-row { vertical-align: top }
|
154
|
+
.bottom-aligned-row { vertical-align: bottom }
|
155
|
+
|
156
|
+
/* --- Context section classes ----------------------- */
|
157
|
+
|
158
|
+
.context-row { }
|
159
|
+
.context-item-name { font-family: monospace; font-weight: bold; color: black; }
|
160
|
+
.context-item-value { font-size: small; color: #448; }
|
161
|
+
.context-item-desc { color: #333; padding-left: 2em; }
|
162
|
+
|
163
|
+
/* --- Method classes -------------------------- */
|
164
|
+
.method-detail {
|
165
|
+
background: #efefef;
|
166
|
+
padding: 0;
|
167
|
+
margin-top: 0.5em;
|
168
|
+
margin-bottom: 1em;
|
169
|
+
border: 1px dotted #ccc;
|
170
|
+
}
|
171
|
+
.method-heading {
|
172
|
+
color: black;
|
173
|
+
background: #ccc;
|
174
|
+
border-bottom: 1px solid #666;
|
175
|
+
padding: 0.2em 0.5em 0 0.5em;
|
176
|
+
}
|
177
|
+
.method-signature { color: black; background: inherit; }
|
178
|
+
.method-name { font-weight: bold; }
|
179
|
+
.method-args { font-style: italic; }
|
180
|
+
.method-description { padding: 0 0.5em 0 0.5em; }
|
181
|
+
|
182
|
+
/* --- Source code sections -------------------- */
|
183
|
+
|
184
|
+
a.source-toggle { font-size: 90%; }
|
185
|
+
div.method-source-code {
|
186
|
+
background: #262626;
|
187
|
+
color: #ffdead;
|
188
|
+
margin: 1em;
|
189
|
+
padding: 0.5em;
|
190
|
+
border: 1px dashed #999;
|
191
|
+
overflow: hidden;
|
192
|
+
}
|
193
|
+
|
194
|
+
div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
195
|
+
|
196
|
+
/* --- Ruby keyword styles --------------------- */
|
197
|
+
|
198
|
+
.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
|
199
|
+
|
200
|
+
.ruby-constant { color: #7fffd4; background: transparent; }
|
201
|
+
.ruby-keyword { color: #00ffff; background: transparent; }
|
202
|
+
.ruby-ivar { color: #eedd82; background: transparent; }
|
203
|
+
.ruby-operator { color: #00ffee; background: transparent; }
|
204
|
+
.ruby-identifier { color: #ffdead; background: transparent; }
|
205
|
+
.ruby-node { color: #ffa07a; background: transparent; }
|
206
|
+
.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
|
207
|
+
.ruby-regexp { color: #ffa07a; background: transparent; }
|
208
|
+
.ruby-value { color: #7fffd4; background: transparent; }
|
data/ext/libxslt/libxslt.c
CHANGED
@@ -5,205 +5,30 @@
|
|
5
5
|
#include "libxslt.h"
|
6
6
|
#include "libxml/xmlversion.h"
|
7
7
|
|
8
|
-
VALUE mXML;
|
9
|
-
VALUE cXMLDocument;
|
10
|
-
|
11
8
|
VALUE cXSLT;
|
12
9
|
VALUE eXMLXSLTStylesheetRequireParsedDoc;
|
13
10
|
|
14
|
-
/*
|
15
|
-
*
|
16
|
-
*
|
17
|
-
*
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
*
|
28
|
-
*
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
ruby_xml_document_t *rxd;
|
35
|
-
ruby_xslt_transform_context *rxtc;
|
36
|
-
|
37
|
-
if (rb_obj_is_kind_of(xml_doc_obj, cXMLDocument) == Qfalse)
|
38
|
-
rb_raise(rb_eTypeError, "Invalid argument: must be of type XML::Document");
|
39
|
-
|
40
|
-
Data_Get_Struct(self, ruby_xslt, rxslt);
|
41
|
-
rxslt->xml_doc_obj = xml_doc_obj;
|
42
|
-
|
43
|
-
Data_Get_Struct(xml_doc_obj, ruby_xml_document_t, rxd);
|
44
|
-
if (rxd->doc == NULL)
|
45
|
-
return(Qnil);
|
46
|
-
|
47
|
-
rxslt->ctxt = ruby_xslt_transform_context_new3(self);
|
48
|
-
Data_Get_Struct(rxslt->ctxt, ruby_xslt_transform_context, rxtc);
|
11
|
+
/*
|
12
|
+
* Document-class: XSLT
|
13
|
+
*
|
14
|
+
* The libxslt gem provides Ruby language bindings for GNOME's Libxslt
|
15
|
+
* toolkit. It is free software, released under the MIT License.
|
16
|
+
*
|
17
|
+
* Using the bindings is straightforward:
|
18
|
+
*
|
19
|
+
* stylesheet_doc = XML::Document.file('stylesheet_file')
|
20
|
+
* stylesheet = XSLT::Stylesheet.new(stylesheet_doc)
|
21
|
+
*
|
22
|
+
* xml_doc = XML::Document.file('xml_file')
|
23
|
+
* result = stylesheet.apply(xml_doc)
|
24
|
+
*
|
25
|
+
*
|
26
|
+
*/
|
27
|
+
|
28
|
+
#ifdef RDOC_NEVER_DEFINED
|
29
|
+
cXSLT = rb_define_module("XSLT");
|
30
|
+
#endif
|
49
31
|
|
50
|
-
if (rxslt->xsp == NULL || rxd->doc == NULL)
|
51
|
-
return(Qnil);
|
52
|
-
|
53
|
-
rxtc->ctxt = xsltNewTransformContext(rxslt->xsp, rxd->doc) ;
|
54
|
-
|
55
|
-
return(rxslt->xml_doc_obj);
|
56
|
-
}
|
57
|
-
|
58
|
-
/* call-seq:
|
59
|
-
* xslt.filename => "filename.xsl"
|
60
|
-
*
|
61
|
-
* Obtain the stylesheet filename.
|
62
|
-
*/
|
63
|
-
VALUE
|
64
|
-
ruby_xslt_filename_get(VALUE self) {
|
65
|
-
ruby_xslt *rxslt;
|
66
|
-
Data_Get_Struct(self, ruby_xslt, rxslt);
|
67
|
-
|
68
|
-
if (rxslt->data_type != RUBY_LIBXSLT_SRC_TYPE_FILE)
|
69
|
-
return(Qnil);
|
70
|
-
else
|
71
|
-
return((VALUE)rxslt->data);
|
72
|
-
}
|
73
|
-
|
74
|
-
|
75
|
-
/* call-seq:
|
76
|
-
* xslt.filename = "filename.xsl"
|
77
|
-
*
|
78
|
-
* Set the stylesheet filename.
|
79
|
-
*/
|
80
|
-
VALUE
|
81
|
-
ruby_xslt_filename_set(VALUE self, VALUE filename) {
|
82
|
-
ruby_xslt *rxslt;
|
83
|
-
Check_Type(filename, T_STRING);
|
84
|
-
Data_Get_Struct(self, ruby_xslt, rxslt);
|
85
|
-
|
86
|
-
if (rxslt->data_type != RUBY_LIBXSLT_SRC_TYPE_NULL)
|
87
|
-
return(Qnil);
|
88
|
-
|
89
|
-
rxslt->data_type = RUBY_LIBXSLT_SRC_TYPE_FILE;
|
90
|
-
rxslt->data = (void *)filename;
|
91
|
-
return(filename);
|
92
|
-
}
|
93
|
-
|
94
|
-
|
95
|
-
void
|
96
|
-
ruby_xslt_free(ruby_xslt *rxslt) {
|
97
|
-
if (rxslt != NULL)
|
98
|
-
ruby_xfree(rxslt);
|
99
|
-
}
|
100
|
-
|
101
|
-
|
102
|
-
void
|
103
|
-
ruby_xslt_mark(ruby_xslt *rxslt) {
|
104
|
-
if (rxslt == NULL) return;
|
105
|
-
if (!NIL_P(rxslt->ctxt)) rb_gc_mark(rxslt->ctxt);
|
106
|
-
if (!NIL_P(rxslt->str)) rb_gc_mark(rxslt->str);
|
107
|
-
if (!NIL_P(rxslt->xml_doc_obj)) rb_gc_mark(rxslt->xml_doc_obj);
|
108
|
-
|
109
|
-
switch(rxslt->data_type) {
|
110
|
-
case RUBY_LIBXSLT_SRC_TYPE_FILE:
|
111
|
-
if (rxslt->data != NULL)
|
112
|
-
rb_gc_mark((VALUE)rxslt->data);
|
113
|
-
break;
|
114
|
-
}
|
115
|
-
}
|
116
|
-
|
117
|
-
|
118
|
-
/* call-seq:
|
119
|
-
* XML::XSLT.new => #<XML::XSLT...>
|
120
|
-
*
|
121
|
-
* Create a new XSLT instance. You will need to specify
|
122
|
-
* a filename and document for the instance after it is
|
123
|
-
* created.
|
124
|
-
*/
|
125
|
-
VALUE
|
126
|
-
ruby_xslt_new(VALUE class) {
|
127
|
-
ruby_xslt *rxslt = ALLOC(ruby_xslt);
|
128
|
-
|
129
|
-
if (rxslt == NULL)
|
130
|
-
rb_raise(rb_eNoMemError, "No memory left for XSLT struct");
|
131
|
-
|
132
|
-
rxslt->ctxt = Qnil;
|
133
|
-
rxslt->data = NULL;
|
134
|
-
rxslt->data_type = RUBY_LIBXSLT_SRC_TYPE_NULL;
|
135
|
-
rxslt->str = Qnil;
|
136
|
-
rxslt->xml_doc_obj = Qnil;
|
137
|
-
rxslt->xsp = NULL;
|
138
|
-
|
139
|
-
return(Data_Wrap_Struct(class, ruby_xslt_mark, ruby_xslt_free, rxslt));
|
140
|
-
}
|
141
|
-
|
142
|
-
/* call-seq:
|
143
|
-
* XML::XSLT.file("filename.xsl") => #<XML::XSLT...>
|
144
|
-
*
|
145
|
-
* Create a new XSLT instance with the supplied stylesheet filename.
|
146
|
-
*/
|
147
|
-
VALUE
|
148
|
-
ruby_xslt_new_file(VALUE class, VALUE filename) {
|
149
|
-
VALUE xslt;
|
150
|
-
|
151
|
-
xslt = ruby_xslt_new(class);
|
152
|
-
ruby_xslt_filename_set(xslt, filename);
|
153
|
-
return(xslt);
|
154
|
-
}
|
155
|
-
|
156
|
-
/* call-seq:
|
157
|
-
* xslt.parse => #<XML::XSLT::Stylesheet...>
|
158
|
-
*
|
159
|
-
* Parse the xsl source (specified by +filename+) and create
|
160
|
-
* a +Stylesheet+ instance that will apply it against the
|
161
|
-
* source document. If a parsed XML::Document isn't associated
|
162
|
-
* with this +XSLT+ instance (via #doc=) then a
|
163
|
-
* Stylesheet::RequireParsedDoc exception is raised.
|
164
|
-
*/
|
165
|
-
VALUE
|
166
|
-
ruby_xslt_parse(VALUE self) {
|
167
|
-
ruby_xml_document_t *rxd;
|
168
|
-
ruby_xslt *rxslt;
|
169
|
-
ruby_xslt_stylesheet *xss;
|
170
|
-
VALUE xssobj;
|
171
|
-
xsltStylesheetPtr sheet;
|
172
|
-
|
173
|
-
Data_Get_Struct(self, ruby_xslt, rxslt);
|
174
|
-
|
175
|
-
if (rxslt->data_type == RUBY_LIBXSLT_SRC_TYPE_FILE) {
|
176
|
-
/*xssobj = ruby_xslt_stylesheet_new(cXSLTStylesheet,
|
177
|
-
xsltParseStylesheetFile((const xmlChar *)
|
178
|
-
STR2CSTR(rxslt->data)));*/
|
179
|
-
sheet = xsltParseStylesheetFile((const xmlChar *) STR2CSTR(rxslt->data));
|
180
|
-
|
181
|
-
if (sheet) {
|
182
|
-
xssobj = ruby_xslt_stylesheet_new(cXSLTStylesheet, sheet);
|
183
|
-
Data_Get_Struct(xssobj, ruby_xslt_stylesheet, xss);
|
184
|
-
xss->data = (void *)rb_obj_dup((VALUE)rxslt->data);
|
185
|
-
xss->xml_doc_obj = rxslt->xml_doc_obj;
|
186
|
-
} else
|
187
|
-
xssobj = Qnil;
|
188
|
-
|
189
|
-
} else if (rxslt->xml_doc_obj != Qnil) {
|
190
|
-
Data_Get_Struct(rxslt->xml_doc_obj, ruby_xml_document_t, rxd);
|
191
|
-
/*xssobj = ruby_xslt_stylesheet_new(cXSLTStylesheet,
|
192
|
-
xsltParseStylesheetDoc(rxd->doc));*/
|
193
|
-
sheet = xsltParseStylesheetDoc(rxd->doc);
|
194
|
-
if (sheet) {
|
195
|
-
xssobj = ruby_xslt_stylesheet_new(cXSLTStylesheet,sheet);
|
196
|
-
Data_Get_Struct(xssobj, ruby_xslt_stylesheet, xss);
|
197
|
-
xss->xml_doc_obj = rxslt->xml_doc_obj;
|
198
|
-
} else
|
199
|
-
xssobj = Qnil;
|
200
|
-
|
201
|
-
} else {
|
202
|
-
xssobj = Qnil;
|
203
|
-
}
|
204
|
-
|
205
|
-
return(xssobj);
|
206
|
-
}
|
207
32
|
|
208
33
|
#if defined(_WIN32)
|
209
34
|
__declspec(dllexport)
|
@@ -213,11 +38,7 @@ void
|
|
213
38
|
Init_libxslt_ruby(void) {
|
214
39
|
LIBXML_TEST_VERSION;
|
215
40
|
|
216
|
-
|
217
|
-
mXML = rb_const_get(rb_cObject, rb_intern("XML"));
|
218
|
-
cXMLDocument = rb_const_get(mXML, rb_intern("Document"));
|
219
|
-
|
220
|
-
cXSLT = rb_define_class_under(mXML, "XSLT", rb_cObject);
|
41
|
+
cXSLT = rb_define_module("XSLT");
|
221
42
|
|
222
43
|
rb_define_const(cXSLT, "MAX_DEPTH", INT2NUM(xsltMaxDepth));
|
223
44
|
rb_define_const(cXSLT, "MAX_SORT", INT2NUM(XSLT_MAX_SORT));
|
@@ -236,16 +57,4 @@ Init_libxslt_ruby(void) {
|
|
236
57
|
|
237
58
|
ruby_init_xslt_stylesheet();
|
238
59
|
ruby_init_xslt_transform_context();
|
239
|
-
|
240
|
-
|
241
|
-
rb_define_singleton_method(cXSLT, "file", ruby_xslt_new_file, 1);
|
242
|
-
rb_define_singleton_method(cXSLT, "new", ruby_xslt_new, 0);
|
243
|
-
|
244
|
-
rb_define_method(cXSLT, "doc", ruby_xslt_doc_get, 0);
|
245
|
-
rb_define_method(cXSLT, "doc=", ruby_xslt_doc_set, 1);
|
246
|
-
rb_define_method(cXSLT, "filename", ruby_xslt_filename_get, 0);
|
247
|
-
rb_define_method(cXSLT, "filename=", ruby_xslt_filename_set, 1);
|
248
|
-
rb_define_method(cXSLT, "parse", ruby_xslt_parse, 0);
|
249
|
-
|
250
|
-
//exsltRegisterAll();
|
251
60
|
}
|