ruby-xslt 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,24 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+
21
+ ## PROJECT::SPECIFIC
22
+ ext/xslt_lib/Makefile
23
+ ext/xslt_lib/mkmf.log
24
+ examples
data/AUTHORS CHANGED
@@ -23,6 +23,9 @@ St
23
23
  Tom <tom@spongecell.com>
24
24
  * Found and patched some serious memory leaks
25
25
 
26
+ Rian Bigg
27
+ * Ruby 1.9 compatible version
28
+
26
29
  == Thanks to :
27
30
 
28
31
  knu <knu at freebsd dot org> for FreeBSD port (see http://www.freshports.org/textproc/ruby-xslt/)
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ 0.9.7 :
2
+ * Ruby 1.9
3
+ * Bug correction (Issue #1)
4
+
1
5
  0.9.6 :
2
6
  * "found and patched some serious memory leaks" (thanks to Tom)
3
7
 
@@ -0,0 +1,124 @@
1
+ = Ruby/XSLT
2
+
3
+ == About
4
+
5
+ Ruby/XSLT is a simple XSLT class based on libxml <http://xmlsoft.org/> and libxslt <http://xmlsoft.org/XSLT/>
6
+
7
+ == Licence
8
+
9
+ Copyright (C) 2003-2010 Gregoire Lejeune <gregoire dot lejeune at free dot fr>
10
+
11
+ Ruby/XSLT is freely distributable according to the terms of the
12
+ GNU General Public License (see the file 'COPYING').
13
+
14
+ This program is distributed without any warranty. See the file
15
+ 'COPYING' for details.
16
+
17
+ == INSTALLATION
18
+
19
+ sudo gem install ruby-xslt
20
+
21
+ or
22
+
23
+ ruby extconf.rb # see CONFIGURATION for more options
24
+ make
25
+ make test
26
+ make doc
27
+ sudo make install
28
+
29
+ === CONFIGURATION
30
+
31
+ --help display this help and exit
32
+
33
+ --with-xslt-lib=PATH
34
+ --with-xslt-include=PATH
35
+ --with-xslt-dir=PATH specify the directory name for the libxslt include
36
+ files and/or library
37
+
38
+ --disable-error-handler disables the new error handler
39
+
40
+ --disable-exslt disables libexslt support <http://exslt.org/>
41
+
42
+
43
+ == EXAMPLES
44
+
45
+ === Simple example
46
+ require 'xml/xslt'
47
+
48
+ xslt = XML::XSLT.new()
49
+ xslt.xml = "text.xml"
50
+ xslt.xsl = "test.xsl"
51
+
52
+ out = xslt.serve()
53
+ print out;
54
+
55
+ === REXML support
56
+ require 'rexml/document'
57
+ require 'xml/xslt'
58
+
59
+ xslt = XML::XSLT.new()
60
+
61
+ xslt.xml = REXML::Document.new File.read( "test.xml" )
62
+ xslt.xsl = REXML::Document.new File.read( "test.xsl" )
63
+
64
+ out = xslt.serve()
65
+ print out;
66
+
67
+ === XML::Smart support
68
+ require 'xml/smart'
69
+ require 'xml/xslt'
70
+
71
+ xslt = XML::XSLT.new()
72
+
73
+ xslt.xml = XML::Smart.open( "test.xml" )
74
+ xslt.xsl = XML::Smart.open( "test.xsl" )
75
+
76
+ out = xslt.serve()
77
+ print out;
78
+
79
+ === Parameters support
80
+ require "xml/xslt"
81
+
82
+ xslt = XML::XSLT.new()
83
+ xslt.xsl = "parameter.xsl"
84
+ xslt.xml = "test.xml"
85
+ xslt.parameters = { "p1" => "the first parameter ...",
86
+ "p2" => "'and the second one!'" }
87
+ xslt.save("test1.html")
88
+
89
+ xslt.parameters = { "p1" => "Ruby...",
90
+ "p2" => "'...is cool !'" }
91
+ xslt.save("test2.html")
92
+
93
+ === External functions support
94
+ require "xml/xslt"
95
+
96
+ xslt = XML::XSLT.new()
97
+ xslt.xsl = "functions.xsl"
98
+ xslt.xml = "test.xml"
99
+
100
+ XML::XSLT.registerExtFunc("http://test.none", "round-trip") do |arg|
101
+ arg
102
+ end
103
+
104
+ XML::XSLT.registerExtFunc("http://test.none", "type") do |arg|
105
+ arg.class.to_s
106
+ end
107
+
108
+ print xslt.serve
109
+
110
+ === Error handling
111
+
112
+ XML::XSLT.registerErrorHandler { |string| puts string }
113
+
114
+ xslt = XML::XSLT.new
115
+ xslt.xml = "not xml"
116
+
117
+ This fragment would print:
118
+
119
+ Entity: line 1:
120
+ parser
121
+ error :
122
+ Start Tag expected, '<' not found
123
+ not xml
124
+ ^
@@ -0,0 +1,52 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "ruby-xslt"
8
+ gem.summary = %Q{Ruby/XSLT is a simple XSLT class based on libxml <http://xmlsoft.org/> and libxslt <http://xmlsoft.org/XSLT/> }
9
+ gem.description = gem.summary
10
+ gem.email = "gregoire.lejeune@free.fr"
11
+ gem.homepage = "http://github.com/glejeune/ruby-xslt"
12
+ gem.authors = ["Gregoire Lejeune"]
13
+ gem.extensions = FileList["ext/**/extconf.rb"].to_a
14
+ end
15
+ Jeweler::GemcutterTasks.new
16
+ rescue LoadError
17
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
18
+ end
19
+
20
+ require 'rake/testtask'
21
+ Rake::TestTask.new(:test) do |test|
22
+ test.libs << 'lib' << 'test'
23
+ test.pattern = 'test/**/test_*.rb'
24
+ test.verbose = true
25
+ end
26
+
27
+ begin
28
+ require 'rcov/rcovtask'
29
+ Rcov::RcovTask.new do |test|
30
+ test.libs << 'test'
31
+ test.pattern = 'test/**/test_*.rb'
32
+ test.verbose = true
33
+ end
34
+ rescue LoadError
35
+ task :rcov do
36
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
37
+ end
38
+ end
39
+
40
+ task :test => :check_dependencies
41
+
42
+ task :default => :test
43
+
44
+ require 'rake/rdoctask'
45
+ Rake::RDocTask.new do |rdoc|
46
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
47
+
48
+ rdoc.rdoc_dir = 'rdoc'
49
+ rdoc.title = "syncftp #{version}"
50
+ rdoc.rdoc_files.include('README*')
51
+ rdoc.rdoc_files.include('lib/**/*.rb')
52
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.9.7
@@ -45,6 +45,10 @@ dir_config( 'xslt' )
45
45
  have_library "xml2", "xmlParseDoc" || crash("need libxml2")
46
46
  have_library "xslt", "xsltParseStylesheetFile" || crash("need libxslt")
47
47
 
48
+ if /^1.8/.match RUBY_VERSION
49
+ $CFLAGS += " -DRUBY_1_8"
50
+ end
51
+
48
52
  if enable_config("exslt", true)
49
53
  have_library "exslt", "exsltRegisterAll"
50
54
  $CFLAGS += " -DUSE_EXSLT"
@@ -138,7 +138,7 @@ xmlXPathObjectPtr value2xpathObj (VALUE val) {
138
138
  int i,j;
139
139
  ret = xmlXPathNewNodeSet(NULL);
140
140
 
141
- for(i = RARRAY(val)->len; i > 0; i--) {
141
+ for(i = RARRAY_LEN(val); i > 0; i--) {
142
142
  xmlXPathObjectPtr obj = value2xpathObj( rb_ary_shift( val ) );
143
143
  if ((obj->nodesetval != NULL) && (obj->nodesetval->nodeNr != 0)) {
144
144
  for(j = 0; j < obj->nodesetval->nodeNr; j++) {
@@ -21,7 +21,7 @@
21
21
  /**
22
22
  * parameters support, patch from :
23
23
  *
24
- * Eust�quio "TaQ" Rangel
24
+ * Eustáquio "TaQ" Rangel
25
25
  * eustaquiorangel@yahoo.com
26
26
  * http://beam.to/taq
27
27
  *
@@ -39,8 +39,8 @@ VALUE process_pair( VALUE pair, VALUE rbparams ) {
39
39
 
40
40
  Check_Type( pair, T_ARRAY );
41
41
 
42
- key = RARRAY(pair)->ptr[0];
43
- value = RARRAY(pair)->ptr[1];
42
+ key = RARRAY_PTR(pair)[0];
43
+ value = rb_obj_clone( RARRAY_PTR(pair)[1] );
44
44
 
45
45
  Check_Type( key, T_STRING );
46
46
  Check_Type( value, T_STRING );
@@ -22,7 +22,11 @@
22
22
  #define __RUBY_RB_UTILS_H__
23
23
 
24
24
  #include <ruby.h>
25
- #include <rubyio.h>
25
+ #ifdef RUBY_1_8
26
+ #include <rubyio.h>
27
+ #else
28
+ #include <ruby/io.h>
29
+ #endif
26
30
 
27
31
  #include <stdio.h>
28
32
  #include <string.h>
@@ -22,7 +22,11 @@
22
22
  #define __RUBY_XSLT_H__
23
23
 
24
24
  #include <ruby.h>
25
- #include <rubyio.h>
25
+ #ifdef RUBY_1_8
26
+ #include <rubyio.h>
27
+ #else
28
+ #include <ruby/io.h>
29
+ #endif
26
30
 
27
31
  #include <string.h>
28
32
 
@@ -53,8 +57,8 @@
53
57
  #include "parameters.h"
54
58
  #include "extfunc.h"
55
59
 
56
- #define RUBY_XSLT_VERSION "0.9.6"
57
- #define RUBY_XSLT_VERNUM 096
60
+ #define RUBY_XSLT_VERSION "0.9.7"
61
+ #define RUBY_XSLT_VERNUM 097
58
62
 
59
63
  #define RUBY_XSLT_XSLSRC_TYPE_NULL 0
60
64
  #define RUBY_XSLT_XSLSRC_TYPE_STR 1
@@ -501,7 +501,7 @@ VALUE ruby_xslt_to_s( VALUE self ) {
501
501
  if (vXSLTSheet == NULL) return Qnil;
502
502
 
503
503
  vStrOut = rb_str_new( 0, strlen(xKlassName)+1024 );
504
- (void) sprintf( RSTRING(vStrOut)->ptr,
504
+ (void) sprintf( RSTRING_PTR(vStrOut),
505
505
  "#<%s: parent=%p,next=%p,imports=%p,docList=%p,"
506
506
  "doc=%p,stripSpaces=%p,stripAll=%d,cdataSection=%p,"
507
507
  "variables=%p,templates=%p,templatesHash=%p,"
@@ -530,7 +530,7 @@ VALUE ruby_xslt_to_s( VALUE self ) {
530
530
  vXSLTSheet->exclPrefix, vXSLTSheet->exclPrefixTab, vXSLTSheet->exclPrefixNr,
531
531
  vXSLTSheet->exclPrefixMax );
532
532
 
533
- RSTRING(vStrOut)->len = strlen( RSTRING(vStrOut)->ptr );
533
+ vStrOut = strlen(RSTRING_PTR(vStrOut));
534
534
  if( OBJ_TAINTED(self) ) OBJ_TAINT(vStrOut);
535
535
 
536
536
  // xsltFreeStylesheet(vXSLTSheet);
@@ -0,0 +1,77 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{ruby-xslt}
8
+ s.version = "0.9.7"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Gregoire Lejeune"]
12
+ s.date = %q{2010-06-28}
13
+ s.description = %q{Ruby/XSLT is a simple XSLT class based on libxml <http://xmlsoft.org/> and libxslt <http://xmlsoft.org/XSLT/>}
14
+ s.email = %q{gregoire.lejeune@free.fr}
15
+ s.extensions = ["ext/xslt_lib/extconf.rb"]
16
+ s.extra_rdoc_files = [
17
+ "ChangeLog",
18
+ "README.rdoc"
19
+ ]
20
+ s.files = [
21
+ ".gitignore",
22
+ "AUTHORS",
23
+ "COPYING",
24
+ "ChangeLog",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "ext/xslt_lib/extconf.rb",
29
+ "ext/xslt_lib/extfunc.c",
30
+ "ext/xslt_lib/extfunc.h",
31
+ "ext/xslt_lib/parameters.c",
32
+ "ext/xslt_lib/parameters.h",
33
+ "ext/xslt_lib/parser.c",
34
+ "ext/xslt_lib/parser.h",
35
+ "ext/xslt_lib/rb_utils.c",
36
+ "ext/xslt_lib/rb_utils.h",
37
+ "ext/xslt_lib/xslt.h",
38
+ "ext/xslt_lib/xslt_lib.c",
39
+ "lib/xml/xslt.rb",
40
+ "ruby-xslt.gemspec",
41
+ "setup.rb",
42
+ "test/subdir/result.xsl",
43
+ "test/subdir/test.xsl",
44
+ "test/t.xml",
45
+ "test/t.xsl",
46
+ "test/test.rb"
47
+ ]
48
+ s.homepage = %q{http://github.com/glejeune/ruby-xslt}
49
+ s.rdoc_options = ["--charset=UTF-8"]
50
+ s.require_paths = ["lib"]
51
+ s.rubygems_version = %q{1.3.7}
52
+ s.summary = %q{Ruby/XSLT is a simple XSLT class based on libxml <http://xmlsoft.org/> and libxslt <http://xmlsoft.org/XSLT/>}
53
+ s.test_files = [
54
+ "test/test.rb",
55
+ "examples/bug.rb",
56
+ "examples/fuzface.rb",
57
+ "examples/fuzface_data.rb",
58
+ "examples/fuzface_error.rb",
59
+ "examples/fuzface_REXML.rb",
60
+ "examples/fuzface_to_s.rb",
61
+ "examples/fuzface_XML-Simple.rb",
62
+ "examples/info.rb",
63
+ "examples/test_functions.rb",
64
+ "examples/test_parameters.rb"
65
+ ]
66
+
67
+ if s.respond_to? :specification_version then
68
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
69
+ s.specification_version = 3
70
+
71
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
72
+ else
73
+ end
74
+ else
75
+ end
76
+ end
77
+
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-xslt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ hash: 53
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 9
9
+ - 7
10
+ version: 0.9.7
5
11
  platform: ruby
6
12
  authors:
7
13
  - Gregoire Lejeune
@@ -9,7 +15,7 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2008-04-06 00:00:00 +02:00
18
+ date: 2010-06-28 00:00:00 +02:00
13
19
  default_executable:
14
20
  dependencies: []
15
21
 
@@ -20,64 +26,88 @@ executables: []
20
26
  extensions:
21
27
  - ext/xslt_lib/extconf.rb
22
28
  extra_rdoc_files:
23
- - README
24
29
  - ChangeLog
25
- - COPYING
26
- - AUTHORS
30
+ - README.rdoc
27
31
  files:
28
- - ChangeLog
29
- - COPYING
30
- - README
32
+ - .gitignore
31
33
  - AUTHORS
32
- - setup.rb
33
- - test/subdir
34
- - test/subdir/result.xsl
35
- - test/subdir/test.xsl
36
- - test/t.xml
37
- - test/t.xsl
38
- - test/test.rb
39
- - lib/xml
40
- - lib/xml/xslt.rb
34
+ - COPYING
35
+ - ChangeLog
36
+ - README.rdoc
37
+ - Rakefile
38
+ - VERSION
39
+ - ext/xslt_lib/extconf.rb
40
+ - ext/xslt_lib/extfunc.c
41
41
  - ext/xslt_lib/extfunc.h
42
+ - ext/xslt_lib/parameters.c
42
43
  - ext/xslt_lib/parameters.h
44
+ - ext/xslt_lib/parser.c
43
45
  - ext/xslt_lib/parser.h
46
+ - ext/xslt_lib/rb_utils.c
44
47
  - ext/xslt_lib/rb_utils.h
45
48
  - ext/xslt_lib/xslt.h
46
- - ext/xslt_lib/extfunc.c
47
- - ext/xslt_lib/parameters.c
48
- - ext/xslt_lib/parser.c
49
- - ext/xslt_lib/rb_utils.c
50
49
  - ext/xslt_lib/xslt_lib.c
51
- - ext/xslt_lib/extconf.rb
50
+ - lib/xml/xslt.rb
51
+ - ruby-xslt.gemspec
52
+ - setup.rb
53
+ - test/subdir/result.xsl
54
+ - test/subdir/test.xsl
55
+ - test/t.xml
56
+ - test/t.xsl
57
+ - test/test.rb
58
+ - examples/bug.rb
59
+ - examples/fuzface.rb
60
+ - examples/fuzface_data.rb
61
+ - examples/fuzface_error.rb
62
+ - examples/fuzface_REXML.rb
63
+ - examples/fuzface_to_s.rb
64
+ - examples/fuzface_XML-Simple.rb
65
+ - examples/info.rb
66
+ - examples/test_functions.rb
67
+ - examples/test_parameters.rb
52
68
  has_rdoc: true
53
- homepage: http://raa.ruby-lang.org/project/ruby-xslt/
69
+ homepage: http://github.com/glejeune/ruby-xslt
70
+ licenses: []
71
+
54
72
  post_install_message:
55
73
  rdoc_options:
56
- - --title
57
- - Ruby/XSLT
58
- - --main
59
- - README
60
- - --line-numbers
74
+ - --charset=UTF-8
61
75
  require_paths:
62
76
  - lib
63
77
  required_ruby_version: !ruby/object:Gem::Requirement
78
+ none: false
64
79
  requirements:
65
80
  - - ">="
66
81
  - !ruby/object:Gem::Version
82
+ hash: 3
83
+ segments:
84
+ - 0
67
85
  version: "0"
68
- version:
69
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
+ none: false
70
88
  requirements:
71
89
  - - ">="
72
90
  - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 0
73
94
  version: "0"
74
- version:
75
95
  requirements: []
76
96
 
77
- rubyforge_project: ruby-asp
78
- rubygems_version: 1.1.0
97
+ rubyforge_project:
98
+ rubygems_version: 1.3.7
79
99
  signing_key:
80
- specification_version: 2
81
- summary: A Ruby class for processing XSLT
82
- test_files: []
83
-
100
+ specification_version: 3
101
+ summary: Ruby/XSLT is a simple XSLT class based on libxml <http://xmlsoft.org/> and libxslt <http://xmlsoft.org/XSLT/>
102
+ test_files:
103
+ - test/test.rb
104
+ - examples/bug.rb
105
+ - examples/fuzface.rb
106
+ - examples/fuzface_data.rb
107
+ - examples/fuzface_error.rb
108
+ - examples/fuzface_REXML.rb
109
+ - examples/fuzface_to_s.rb
110
+ - examples/fuzface_XML-Simple.rb
111
+ - examples/info.rb
112
+ - examples/test_functions.rb
113
+ - examples/test_parameters.rb
data/README DELETED
@@ -1,132 +0,0 @@
1
- = Ruby/XSLT
2
-
3
- == About
4
-
5
- Ruby/XSLT is a simple XSLT class based on libxml <http://xmlsoft.org/> and libxslt <http://xmlsoft.org/XSLT/>
6
-
7
- == Licence
8
-
9
- Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Gregoire Lejeune <gregoire dot lejeune at free dot fr>
10
-
11
- Ruby/XSLT is freely distributable according to the terms of the
12
- GNU General Public License (see the file 'COPYING').
13
-
14
- This program is distributed without any warranty. See the file
15
- 'COPYING' for details.
16
-
17
- === CVS access
18
- The CVS repository is available at rubyforge.org[http://rubyforge.org/projects/ruby-asp]. You can browse[http://rubyforge.org/cgi-bin/viewcvs.cgi/ruby-xslt/?cvsroot=ruby-asp] it or access it via anonymous access :
19
-
20
- cvs -d :pserver:anonymous@rubyforge.org:/var/cvs/ruby-asp login
21
- cvs -d :pserver:anonymous@rubyforge.org:/var/cvs/ruby-asp checkout ruby-xslt
22
-
23
- See this page[http://rubyforge.org/scm/?group_id=423] for more informations
24
-
25
- == INSTALLATION
26
-
27
- sudo gem install ruby-xslt
28
-
29
- or
30
-
31
- ruby extconf.rb # see CONFIGURATION for more options
32
- make
33
- make test
34
- make doc
35
- sudo make install
36
-
37
- === CONFIGURATION
38
-
39
- --help display this help and exit
40
-
41
- --with-xslt-lib=PATH
42
- --with-xslt-include=PATH
43
- --with-xslt-dir=PATH specify the directory name for the libxslt include
44
- files and/or library
45
-
46
- --disable-error-handler disables the new error handler
47
-
48
- --disable-exslt disables libexslt support <http://exslt.org/>
49
-
50
-
51
- == EXAMPLES
52
-
53
- === Simple example
54
- require 'xml/xslt'
55
-
56
- xslt = XML::XSLT.new()
57
- xslt.xml = "text.xml"
58
- xslt.xsl = "test.xsl"
59
-
60
- out = xslt.serve()
61
- print out;
62
-
63
- === REXML support
64
- require 'rexml/document'
65
- require 'xml/xslt'
66
-
67
- xslt = XML::XSLT.new()
68
-
69
- xslt.xml = REXML::Document.new File.read( "test.xml" )
70
- xslt.xsl = REXML::Document.new File.read( "test.xsl" )
71
-
72
- out = xslt.serve()
73
- print out;
74
-
75
- === XML::Smart support
76
- require 'xml/smart'
77
- require 'xml/xslt'
78
-
79
- xslt = XML::XSLT.new()
80
-
81
- xslt.xml = XML::Smart.open( "test.xml" )
82
- xslt.xsl = XML::Smart.open( "test.xsl" )
83
-
84
- out = xslt.serve()
85
- print out;
86
-
87
- === Parameters support
88
- require "xml/xslt"
89
-
90
- xslt = XML::XSLT.new()
91
- xslt.xsl = "parameter.xsl"
92
- xslt.xml = "test.xml"
93
- xslt.parameters = { "p1" => "the first parameter ...",
94
- "p2" => "'and the second one!'" }
95
- xslt.save("test1.html")
96
-
97
- xslt.parameters = { "p1" => "Ruby...",
98
- "p2" => "'...is cool !'" }
99
- xslt.save("test2.html")
100
-
101
- === External functions support
102
- require "xml/xslt"
103
-
104
- xslt = XML::XSLT.new()
105
- xslt.xsl = "functions.xsl"
106
- xslt.xml = "test.xml"
107
-
108
- XML::XSLT.registerExtFunc("http://test.none", "round-trip") do |arg|
109
- arg
110
- end
111
-
112
- XML::XSLT.registerExtFunc("http://test.none", "type") do |arg|
113
- arg.class.to_s
114
- end
115
-
116
- print xslt.serve
117
-
118
- === Error handling
119
-
120
- XML::XSLT.registerErrorHandler { |string| puts string }
121
-
122
- xslt = XML::XSLT.new
123
- xslt.xml = "not xml"
124
-
125
- This fragment would print:
126
-
127
- Entity: line 1:
128
- parser
129
- error :
130
- Start Tag expected, '<' not found
131
- not xml
132
- ^