libxsl-ruby 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/CHANGELOG +14 -0
  2. data/LICENSE +21 -0
  3. data/README +50 -0
  4. data/Rakefile +245 -0
  5. data/TODO +32 -0
  6. data/ext/xml/extconf.rb +97 -0
  7. data/ext/xml/libxml-ruby/libxml.h +92 -0
  8. data/ext/xml/libxml-ruby/ruby_xml_attr.h +31 -0
  9. data/ext/xml/libxml-ruby/ruby_xml_attribute.h +31 -0
  10. data/ext/xml/libxml-ruby/ruby_xml_document.h +37 -0
  11. data/ext/xml/libxml-ruby/ruby_xml_dtd.h +27 -0
  12. data/ext/xml/libxml-ruby/ruby_xml_input_cbg.h +31 -0
  13. data/ext/xml/libxml-ruby/ruby_xml_node.h +38 -0
  14. data/ext/xml/libxml-ruby/ruby_xml_node_set.h +36 -0
  15. data/ext/xml/libxml-ruby/ruby_xml_ns.h +31 -0
  16. data/ext/xml/libxml-ruby/ruby_xml_parser.h +41 -0
  17. data/ext/xml/libxml-ruby/ruby_xml_parser_context.h +32 -0
  18. data/ext/xml/libxml-ruby/ruby_xml_sax_parser.h +31 -0
  19. data/ext/xml/libxml-ruby/ruby_xml_schema.h +26 -0
  20. data/ext/xml/libxml-ruby/ruby_xml_tree.h +22 -0
  21. data/ext/xml/libxml-ruby/ruby_xml_xinclude.h +23 -0
  22. data/ext/xml/libxml-ruby/ruby_xml_xpath.h +34 -0
  23. data/ext/xml/libxml-ruby/ruby_xml_xpath_context.h +34 -0
  24. data/ext/xml/libxml-ruby/ruby_xml_xpointer.h +37 -0
  25. data/ext/xml/libxml-ruby/ruby_xml_xpointer_context.h +28 -0
  26. data/ext/xml/libxslt.c +247 -0
  27. data/ext/xml/libxslt.h +52 -0
  28. data/ext/xml/ruby_xslt_stylesheet.c +298 -0
  29. data/ext/xml/ruby_xslt_stylesheet.h +21 -0
  30. data/ext/xml/ruby_xslt_transform_context.c +63 -0
  31. data/ext/xml/ruby_xslt_transform_context.h +22 -0
  32. data/tests/commentary.dtd +34 -0
  33. data/tests/fuzface.rb +15 -0
  34. data/tests/fuzface.xml +154 -0
  35. data/tests/fuzface.xsl +4 -0
  36. data/tests/ramblings.xsl +46 -0
  37. data/tests/tc_libxslt.rb +65 -0
  38. data/tests/tc_xslt_stylesheet.rb +41 -0
  39. data/tests/tc_xslt_stylesheet2.rb +41 -0
  40. metadata +101 -0
@@ -0,0 +1,34 @@
1
+ <!ELEMENT commentary (meta, body)>
2
+ <!ELEMENT meta (author, version, date, id, title, subtitle?)>
3
+
4
+ <!-- Metadata about the requirements -->
5
+ <!ENTITY % string "#PCDATA">
6
+ <!ENTITY % character "#PCDATA">
7
+ <!ENTITY % letter "#PCDATA">
8
+ <!ENTITY % number_att "CDATA">
9
+
10
+
11
+ <!ELEMENT author (first_name, last_name, email)>
12
+
13
+ <!ELEMENT first_name (%string;)>
14
+ <!ELEMENT last_name (%string;)>
15
+ <!ELEMENT email (%string;)>
16
+
17
+ <!ELEMENT version (#PCDATA)>
18
+ <!ELEMENT date (#PCDATA)>
19
+ <!ELEMENT id (#PCDATA)>
20
+ <!ELEMENT title (#PCDATA)>
21
+ <!ELEMENT subtitle (#PCDATA)>
22
+
23
+ <!ELEMENT body (para+)>
24
+
25
+
26
+ <!ELEMENT para (#PCDATA|thought|url|ol)*>
27
+ <!ATTLIST para
28
+ style (default|ps) "default">
29
+
30
+ <!ELEMENT ol (li+)>
31
+ <!ELEMENT li (#PCDATA)>
32
+ <!ELEMENT url (#PCDATA)>
33
+ <!ELEMENT thought (#PCDATA)>
34
+
@@ -0,0 +1,15 @@
1
+ #!/usr/local/bin/ruby -w
2
+
3
+ require 'xml/libxml'
4
+ require "#{File.dirname(__FILE__)}/../ext/xml/libxslt"
5
+
6
+ xslt = XML::XSLT.file('fuzface.xsl')
7
+ xslt.doc = XML::Document.file('fuzface.xml')
8
+ s = xslt.parse
9
+ s.apply
10
+
11
+ File.open('fuzface.html', 'w') do |f|
12
+ s.save(f)
13
+ end
14
+
15
+ s.print
@@ -0,0 +1,154 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet href="fuzface.xsl" type="text/xsl"?>
3
+
4
+ <!DOCTYPE commentary SYSTEM "commentary.dtd">
5
+
6
+ <commentary>
7
+ <meta>
8
+ <author>
9
+ <first_name>Sean</first_name>
10
+ <last_name>Chittenden</last_name>
11
+ <email>sean@chittenden.org</email>
12
+ </author>
13
+ <version>$Version$</version>
14
+ <date>$Date: 2006/03/24 10:54:55 $</date>
15
+ <id>$Id: fuzface.xml,v 1.1 2006/03/24 10:54:55 roscopeco Exp $</id>
16
+ <title>Fuzface...</title>
17
+ <subtitle>The Internet's a big place and here's some proof...</subtitle>
18
+ </meta>
19
+
20
+ <body>
21
+ <para>
22
+ I think it's a tragedy that I'm going to start off my new
23
+ commentary by talking about facial hair and the Internet.
24
+ Something about that just screams pathetic, but whatever: it's
25
+ humor and that's life.
26
+ </para>
27
+
28
+ <para>
29
+ I've been working at home for a while now, which has been great.
30
+ I've been doing a lot of reading, good work, contributing to the
31
+ FreeBSD project, and living life at my own pace. The problem?
32
+ I don't have to interact with people, so I've let my appearance
33
+ slide a bit, most notably I've gone two weeks without shaving
34
+ and I have an awful hairy face.
35
+ </para>
36
+
37
+ <para>
38
+ Nothing is worse than going for a hard run, coming back, and
39
+ then bending your head down so that the hairs under your chin
40
+ touch the hairs on your neck. This has to be one of the most
41
+ disgusting/gross feelings I've experienced in a while. While
42
+ today wasn't the first time I'd experienced such a slimy tangled
43
+ mess, it is the first time I seriously considered shaving part
44
+ of my face, but not all of it: I was considering a beard.
45
+ </para>
46
+
47
+ <para>
48
+ Alright, so it's 5pm and I'm a sweaty post-run mess (it was 110
49
+ degrees in direct sunlight according to my thermometer) and
50
+ considering the possibility of growing a beard. Swifty nift?
51
+ Maybe. This is something I'd never done before, let alone
52
+ seriously consider. Normally I'd call my dad for such manly
53
+ advice, but he is: a) normally in another state, and; b) in
54
+ another country right now probably growing a beard (he's
55
+ notorious for coming back from a trip with a gnarly unshaven
56
+ face, sometimes he'll shape it into a decent beard). So, what's
57
+ a tech-junkie to do? Hop on the Internet and see if Google's
58
+ able to provide me with some inspiration.
59
+ </para>
60
+
61
+ <para>
62
+ Sure enough, I typed in "pictures of bearded men" and I was able
63
+ to find something: 14,000 pages of something to be exact.
64
+ Anyway, so most of these were rinky dink sites, a few of them
65
+ had some promise. One guy was trying to start a tradition where
66
+ everyone grows a beard for New Years. As I was scrolling down
67
+ the page trying to find some pictures, my mind was having the
68
+ following thought process: <thought>This seems like a dumb
69
+ idea... New Years provides a perfectly good excuse to kiss some
70
+ total stranger that you've had your eye on for the duration of a
71
+ New Years party. Why waste such an opportunity with a crappy
72
+ kiss?</thought> And at about this point I said this page sucks,
73
+ and flipped back to my search results.
74
+ </para>
75
+
76
+ <para>
77
+ Since I'd never done this before, I didn't know what was
78
+ fashionably correct in terms of where a guy should shave under
79
+ his neck, or what the deal was... I knew there were lots of
80
+ styles out there, just none that I could picture in my mind
81
+ (save maybe Santa Claus and a few really gnarly beards that are
82
+ long enough to be used as full-body covering. Oooh! And don't
83
+ forget the Russian and Amish beards, those stand out in my mind
84
+ too.). Google, being pretty comprehensive, and the Internet
85
+ being huge, found the exact screwball page I was looking for:
86
+ <url>http://fuzface-gallery.tripod.com/</url>
87
+ </para>
88
+
89
+ <para>
90
+ I don't know if I really should be amazed at the sheer number of
91
+ entries that Google returned, or that the Internet is big enough
92
+ to house such random gallery of crap, but it is and it never
93
+ ceases to amaze me... it's almost as amazing as the fact that
94
+ some bozo spent the time to create such a page. Don't people
95
+ have lives? Oh wait, I just visited his page... so back to my
96
+ diatribe...
97
+ </para>
98
+
99
+ <para>
100
+ There were tons of faces, lots of men, lots of hair, and plenty
101
+ of styles to choose from. Page after page of faces and hair.
102
+ Ugh. This wasn't getting any where and I was now entertaining
103
+ the rebound though of shaving my head. Time to close my browser
104
+ and hop in the shower: I reak. So what'd I do? Well, after
105
+ looking through enough of those pictures, I decided a few
106
+ things:
107
+ </para>
108
+
109
+ <para>
110
+ <ol>
111
+ <li>
112
+ I'm amazed that the Internet is big enough to foster the
113
+ creation of such random and utterly useless information. Then
114
+ again, I've been on and using the Net since '95, so this
115
+ shouldn't surprise me that much.
116
+ </li>
117
+
118
+ <li>
119
+ There are a lot of guys out there with varying tastes in,
120
+ shall we say, "facial hair styles," most of which I find
121
+ pretty unappealing.
122
+ </li>
123
+
124
+ <li>
125
+ I don't like beards. After one clogged drain, two
126
+ reapplications of shaving cream, and a few pases with the
127
+ razor, it took me about 5-10 minutes to get a nice cleanly
128
+ shaven face.
129
+ </li>
130
+
131
+ <li>
132
+ &lt;crass comment&gt;And - back me up here fellas, you can
133
+ sympathize with this feeling after you get done looking
134
+ through a magazine for a hair-cut style (ladies.. just smile
135
+ and nod and pretend you care) - after looking at a few dozen
136
+ pictures of men, I was able to safely reaffirm my desire for
137
+ heterosexual relations (translation from Bill Clintonese: have
138
+ sex with a woman). And with that thought in mind, I began to
139
+ pine for the college porn collection of old. Mmmm,
140
+ Playboy.&lt;/crass comment&gt;
141
+ </li>
142
+ </ol>
143
+ </para>
144
+
145
+ <para>
146
+ ::grin:: Until next time. -Sean
147
+ </para>
148
+
149
+ <para style="ps">
150
+ P.S. To the guys out there with beards, this is just my
151
+ opinion: take it with a grain of salt.
152
+ </para>
153
+ </body>
154
+ </commentary>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" ?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+ <xsl:include href="ramblings.xsl" />
4
+ </xsl:stylesheet>
@@ -0,0 +1,46 @@
1
+ <?xml version="1.0" ?>
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
+ <xsl:template match="/">
4
+ <xsl:element name="html">
5
+ <xsl:element name="head">
6
+ <xsl:element name="title">Ramblings - <xsl:value-of select="commentary/meta/title" /> - <xsl:value-of select="commentary/meta/subtitle" /></xsl:element>
7
+ </xsl:element>
8
+
9
+ <xsl:element name="body">
10
+ <xsl:element name="h1"><xsl:value-of select="commentary/meta/title" /></xsl:element>
11
+ <xsl:element name="h3"><xsl:value-of select="commentary/meta/subtitle" /></xsl:element>
12
+ By: <xsl:value-of select="commentary/meta/author/first_name" /> <xsl:value-of select="commentary/meta/author/last_name" /><xsl:element name="br" />
13
+ Date: <xsl:value-of select="commentary/meta/date" /><xsl:element name="br" />
14
+
15
+ <xsl:for-each select="./commentary/body">
16
+ <xsl:apply-templates />
17
+ </xsl:for-each>
18
+
19
+ </xsl:element>
20
+ </xsl:element>
21
+ </xsl:template>
22
+
23
+ <xsl:template match="para">
24
+ <xsl:element name="p">
25
+ <xsl:apply-templates />
26
+ </xsl:element>
27
+ </xsl:template>
28
+
29
+ <xsl:template match="ol">
30
+ <xsl:element name="ol">
31
+ <xsl:apply-templates select="li" />
32
+ </xsl:element>
33
+ </xsl:template>
34
+
35
+ <xsl:template match="li">
36
+ <xsl:element name="li">
37
+ <xsl:value-of select="." />
38
+ </xsl:element>
39
+ </xsl:template>
40
+
41
+ <xsl:template match="thought">
42
+ <xsl:element name="i">
43
+ <xsl:value-of select="." />
44
+ </xsl:element>
45
+ </xsl:template>
46
+ </xsl:stylesheet>
@@ -0,0 +1,65 @@
1
+ # $Id: tc_libxslt.rb,v 1.1 2006/03/24 10:54:55 roscopeco Exp $
2
+ begin
3
+ require 'xml/libxml'
4
+ rescue LoadError => orig
5
+ require 'rubygems' and retry
6
+ raise orig
7
+ end
8
+
9
+ $TDIR = File.dirname(__FILE__)
10
+ require "#$TDIR/../ext/xml/libxslt"
11
+ require 'test/unit'
12
+
13
+ class TC_XSLT < Test::Unit::TestCase
14
+ def setup()
15
+ @xslt = XML::XSLT.file("#$TDIR/fuzface.xsl")
16
+ @xslt.doc = XML::Document.file("#$TDIR/fuzface.xml")
17
+ assert_instance_of(XML::XSLT, @xslt)
18
+ assert_instance_of(XML::Document, @xslt.doc)
19
+ f = File.open("#$TDIR/fuzface.xsl")
20
+ assert_instance_of(File, f)
21
+
22
+ @xslt2 = XML::XSLT.new()
23
+ assert_instance_of(XML::XSLT, @xslt2)
24
+ @xslt2.filename = "#$TDIR/fuzface.xsl"
25
+ assert_instance_of(String, @xslt.filename)
26
+
27
+ @stylesheet = @xslt.parse
28
+ assert_instance_of(XML::XSLT::Stylesheet, @stylesheet)
29
+ end
30
+
31
+ def tear_down()
32
+ @xslt = nil
33
+ @xslt2 = nil
34
+ @stylesheet = nil
35
+ end
36
+
37
+ def test_ruby_xslt_constants()
38
+ assert_instance_of(Fixnum, XML::XSLT::MAX_DEPTH)
39
+ assert_instance_of(Fixnum, XML::XSLT::MAX_SORT)
40
+ assert_instance_of(String, XML::XSLT::ENGINE_VERSION)
41
+ assert_instance_of(Fixnum, XML::XSLT::LIBXSLT_VERSION)
42
+ assert_instance_of(Fixnum, XML::XSLT::LIBXML_VERSION)
43
+ assert_instance_of(String, XML::XSLT::XSLT_NAMESPACE)
44
+ assert_instance_of(String, XML::XSLT::DEFAULT_URL)
45
+ assert_instance_of(String, XML::XSLT::DEFAULT_VENDOR)
46
+ assert_instance_of(String, XML::XSLT::DEFAULT_VERSION)
47
+ assert_instance_of(String, XML::XSLT::NAMESPACE_LIBXSLT)
48
+ assert_instance_of(String, XML::XSLT::NAMESPACE_SAXON)
49
+ assert_instance_of(String, XML::XSLT::NAMESPACE_XT)
50
+ assert_instance_of(String, XML::XSLT::NAMESPACE_XALAN)
51
+ assert_instance_of(String, XML::XSLT::NAMESPACE_NORM_SAXON)
52
+ end
53
+
54
+ def test_ruby_xslt_file()
55
+ assert_instance_of(XML::XSLT, @xslt)
56
+ end
57
+
58
+ def test_ruby_xslt_new()
59
+ assert_instance_of(XML::XSLT, @xslt2)
60
+ end
61
+
62
+ def test_ruby_xslt_parse()
63
+ assert_instance_of(XML::XSLT::Stylesheet, @stylesheet)
64
+ end
65
+ end
@@ -0,0 +1,41 @@
1
+ # $Id: tc_xslt_stylesheet.rb,v 1.1 2006/03/24 10:54:55 roscopeco Exp $
2
+ begin
3
+ require 'xml/libxml'
4
+ rescue LoadError
5
+ require 'rubygems' and retry
6
+ end
7
+ $TDIR = File.dirname(__FILE__)
8
+ require "#$TDIR/../ext/xml/libxslt"
9
+ require 'test/unit'
10
+
11
+ class TC_XSLT_STYLESHEET < Test::Unit::TestCase
12
+ def setup()
13
+ @xslt = XML::XSLT.file("#$TDIR/fuzface.xsl")
14
+ @xslt.doc = XML::Document.file("#$TDIR/fuzface.xml")
15
+ assert_instance_of(XML::XSLT, @xslt)
16
+ assert_instance_of(XML::Document, @xslt.doc)
17
+ @stylesheet = @xslt.parse
18
+ assert_instance_of(XML::XSLT::Stylesheet, @stylesheet)
19
+ end
20
+
21
+ def tear_down()
22
+ @xslt = nil
23
+ @stylesheet = nil
24
+ end
25
+
26
+ def test_ruby_xslt_parse()
27
+ assert_instance_of(XML::XSLT::Stylesheet, @stylesheet)
28
+ end
29
+
30
+ def test_ruby_xslt_stylesheet_to_s()
31
+ @stylesheet.apply
32
+ str = @stylesheet.to_s
33
+ assert_instance_of(String, str)
34
+ end
35
+
36
+ def test_ruby_xslt_stylesheet_save()
37
+ assert_raises(ArgumentError) do
38
+ @stylesheet.save("str")
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ # $Id: tc_xslt_stylesheet2.rb,v 1.1 2006/03/24 10:54:55 roscopeco Exp $
2
+ begin
3
+ require 'xml/libxml'
4
+ rescue LoadError
5
+ require 'rubygems' and retry
6
+ end
7
+ $TDIR = File.dirname(__FILE__)
8
+ require "#$TDIR/../ext/xml/libxslt"
9
+ require 'test/unit'
10
+
11
+ class TC_XSLT_Stylesheet2 < Test::Unit::TestCase
12
+ def setup()
13
+ @xslt = XML::XSLT.file("#$TDIR/fuzface.xsl")
14
+ @xslt.doc = XML::Document.file("#$TDIR/fuzface.xml")
15
+ assert_instance_of(XML::XSLT, @xslt)
16
+ assert_instance_of(XML::Document, @xslt.doc)
17
+ @stylesheet = @xslt.parse
18
+ assert_instance_of(XML::XSLT::Stylesheet, @stylesheet)
19
+ end
20
+
21
+ def tear_down()
22
+ @xslt = nil
23
+ @stylesheet = nil
24
+ end
25
+
26
+ def test_ruby_xslt_parse()
27
+ assert_instance_of(XML::XSLT::Stylesheet, @stylesheet)
28
+ end
29
+
30
+ def test_ruby_xslt_stylesheet_to_s()
31
+ assert_raises(XML::XSLT::Stylesheet::RequireParsedDoc) do
32
+ str = @stylesheet.to_s
33
+ end
34
+ end
35
+
36
+ def test_ruby_xslt_stylesheet_print()
37
+ assert_raises(XML::XSLT::Stylesheet::RequireParsedDoc) do
38
+ @stylesheet.print
39
+ end
40
+ end
41
+ end
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.11
3
+ specification_version: 1
4
+ name: libxsl-ruby
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.3.6
7
+ date: 2006-03-24 00:00:00 +00:00
8
+ summary: LibXSLT bindings for Ruby
9
+ require_paths:
10
+ - ext
11
+ email: libxsl-devel@rubyforge.org
12
+ homepage: http://libxsl.rubyforge.org
13
+ rubyforge_project: libxsl
14
+ description: C-language bindings for Gnome LibXSLT and Ruby. Part of the LibXML-Ruby project.
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ authors:
29
+ - Sean Chittenden
30
+ files:
31
+ - ext/xml/extconf.rb
32
+ - Rakefile
33
+ - README
34
+ - TODO
35
+ - LICENSE
36
+ - CHANGELOG
37
+ - ext/xml/ruby_xslt_transform_context.c
38
+ - ext/xml/libxslt.c
39
+ - ext/xml/ruby_xslt_stylesheet.c
40
+ - ext/xml/libxml-ruby/ruby_xml_node.h
41
+ - ext/xml/libxml-ruby/ruby_xml_xinclude.h
42
+ - ext/xml/libxml-ruby/ruby_xml_schema.h
43
+ - ext/xml/libxml-ruby/ruby_xml_parser_context.h
44
+ - ext/xml/libxml-ruby/ruby_xml_xpointer.h
45
+ - ext/xml/libxml-ruby/ruby_xml_input_cbg.h
46
+ - ext/xml/libxml-ruby/ruby_xml_xpath_context.h
47
+ - ext/xml/libxml-ruby/ruby_xml_xpath.h
48
+ - ext/xml/libxml-ruby/ruby_xml_ns.h
49
+ - ext/xml/libxml-ruby/ruby_xml_xpointer_context.h
50
+ - ext/xml/libxml-ruby/ruby_xml_attribute.h
51
+ - ext/xml/libxml-ruby/ruby_xml_sax_parser.h
52
+ - ext/xml/libxml-ruby/ruby_xml_node_set.h
53
+ - ext/xml/libxml-ruby/libxml.h
54
+ - ext/xml/libxml-ruby/ruby_xml_dtd.h
55
+ - ext/xml/libxml-ruby/ruby_xml_attr.h
56
+ - ext/xml/libxml-ruby/ruby_xml_document.h
57
+ - ext/xml/libxml-ruby/ruby_xml_tree.h
58
+ - ext/xml/libxml-ruby/ruby_xml_parser.h
59
+ - ext/xml/ruby_xslt_stylesheet.h
60
+ - ext/xml/ruby_xslt_transform_context.h
61
+ - ext/xml/libxslt.h
62
+ - tests/fuzface.xml
63
+ - tests/tc_xslt_stylesheet2.rb
64
+ - tests/ramblings.xsl
65
+ - tests/tc_libxslt.rb
66
+ - tests/fuzface.rb
67
+ - tests/commentary.dtd
68
+ - tests/fuzface.xsl
69
+ - tests/tc_xslt_stylesheet.rb
70
+ test_files: []
71
+
72
+ rdoc_options:
73
+ - --title
74
+ - Libxsl-Ruby API
75
+ - --main
76
+ - README
77
+ - -o
78
+ - rdoc
79
+ extra_rdoc_files:
80
+ - README
81
+ - LICENSE
82
+ - TODO
83
+ - ext/xml/ruby_xslt_transform_context.c
84
+ - ext/xml/ruby_xslt_stylesheet.c
85
+ - ext/xml/libxslt.c
86
+ executables: []
87
+
88
+ extensions:
89
+ - ext/xml/extconf.rb
90
+ requirements: []
91
+
92
+ dependencies:
93
+ - !ruby/object:Gem::Dependency
94
+ name: libxml-ruby
95
+ version_requirement:
96
+ version_requirements: !ruby/object:Gem::Version::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 0.3.6
101
+ version: