nokogiri 1.11.1-java → 1.11.6-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE-DEPENDENCIES.md +12 -12
  3. data/LICENSE.md +1 -1
  4. data/README.md +21 -16
  5. data/dependencies.yml +12 -12
  6. data/ext/java/nokogiri/EncodingHandler.java +76 -89
  7. data/ext/java/nokogiri/HtmlDocument.java +135 -144
  8. data/ext/java/nokogiri/HtmlElementDescription.java +102 -117
  9. data/ext/java/nokogiri/HtmlEntityLookup.java +33 -60
  10. data/ext/java/nokogiri/HtmlSaxParserContext.java +218 -222
  11. data/ext/java/nokogiri/HtmlSaxPushParser.java +162 -169
  12. data/ext/java/nokogiri/NokogiriService.java +595 -556
  13. data/ext/java/nokogiri/XmlAttr.java +118 -126
  14. data/ext/java/nokogiri/XmlAttributeDecl.java +95 -106
  15. data/ext/java/nokogiri/XmlCdata.java +35 -58
  16. data/ext/java/nokogiri/XmlComment.java +46 -67
  17. data/ext/java/nokogiri/XmlDocument.java +645 -572
  18. data/ext/java/nokogiri/XmlDocumentFragment.java +125 -137
  19. data/ext/java/nokogiri/XmlDtd.java +448 -414
  20. data/ext/java/nokogiri/XmlElement.java +23 -48
  21. data/ext/java/nokogiri/XmlElementContent.java +343 -316
  22. data/ext/java/nokogiri/XmlElementDecl.java +124 -125
  23. data/ext/java/nokogiri/XmlEntityDecl.java +119 -127
  24. data/ext/java/nokogiri/XmlEntityReference.java +49 -72
  25. data/ext/java/nokogiri/XmlNamespace.java +175 -175
  26. data/ext/java/nokogiri/XmlNode.java +1843 -1620
  27. data/ext/java/nokogiri/XmlNodeSet.java +361 -331
  28. data/ext/java/nokogiri/XmlProcessingInstruction.java +47 -69
  29. data/ext/java/nokogiri/XmlReader.java +513 -450
  30. data/ext/java/nokogiri/XmlRelaxng.java +85 -104
  31. data/ext/java/nokogiri/XmlSaxParserContext.java +328 -315
  32. data/ext/java/nokogiri/XmlSaxPushParser.java +227 -220
  33. data/ext/java/nokogiri/XmlSchema.java +328 -295
  34. data/ext/java/nokogiri/XmlSyntaxError.java +113 -115
  35. data/ext/java/nokogiri/XmlText.java +55 -76
  36. data/ext/java/nokogiri/XmlXpathContext.java +240 -238
  37. data/ext/java/nokogiri/XsltStylesheet.java +280 -269
  38. data/ext/java/nokogiri/internals/ClosedStreamException.java +5 -2
  39. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +201 -202
  40. data/ext/java/nokogiri/internals/IgnoreSchemaErrorsErrorHandler.java +17 -10
  41. data/ext/java/nokogiri/internals/NokogiriBlockingQueueInputStream.java +43 -16
  42. data/ext/java/nokogiri/internals/NokogiriDomParser.java +63 -80
  43. data/ext/java/nokogiri/internals/NokogiriEntityResolver.java +107 -88
  44. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +27 -52
  45. data/ext/java/nokogiri/internals/NokogiriHandler.java +316 -286
  46. data/ext/java/nokogiri/internals/NokogiriHelpers.java +736 -652
  47. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +184 -173
  48. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +81 -98
  49. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +64 -79
  50. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +84 -99
  51. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +48 -65
  52. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +116 -131
  53. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +34 -56
  54. data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +23 -46
  55. data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +55 -72
  56. data/ext/java/nokogiri/internals/ParserContext.java +206 -211
  57. data/ext/java/nokogiri/internals/ReaderNode.java +478 -403
  58. data/ext/java/nokogiri/internals/SaveContextVisitor.java +822 -739
  59. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +31 -54
  60. data/ext/java/nokogiri/internals/XalanDTMManagerPatch.java +129 -123
  61. data/ext/java/nokogiri/internals/XmlDeclHandler.java +3 -34
  62. data/ext/java/nokogiri/internals/XmlDomParserContext.java +206 -207
  63. data/ext/java/nokogiri/internals/XmlSaxParser.java +22 -47
  64. data/ext/java/nokogiri/internals/c14n/AttrCompare.java +71 -68
  65. data/ext/java/nokogiri/internals/c14n/C14nHelper.java +137 -118
  66. data/ext/java/nokogiri/internals/c14n/CanonicalFilter.java +27 -21
  67. data/ext/java/nokogiri/internals/c14n/CanonicalizationException.java +74 -61
  68. data/ext/java/nokogiri/internals/c14n/Canonicalizer.java +230 -205
  69. data/ext/java/nokogiri/internals/c14n/Canonicalizer11.java +572 -547
  70. data/ext/java/nokogiri/internals/c14n/Canonicalizer11_OmitComments.java +17 -10
  71. data/ext/java/nokogiri/internals/c14n/Canonicalizer11_WithComments.java +17 -10
  72. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315.java +323 -302
  73. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315Excl.java +232 -219
  74. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclOmitComments.java +22 -15
  75. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclWithComments.java +23 -16
  76. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315OmitComments.java +23 -16
  77. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315WithComments.java +22 -15
  78. data/ext/java/nokogiri/internals/c14n/CanonicalizerBase.java +575 -545
  79. data/ext/java/nokogiri/internals/c14n/CanonicalizerPhysical.java +141 -120
  80. data/ext/java/nokogiri/internals/c14n/CanonicalizerSpi.java +39 -38
  81. data/ext/java/nokogiri/internals/c14n/Constants.java +13 -10
  82. data/ext/java/nokogiri/internals/c14n/ElementProxy.java +279 -247
  83. data/ext/java/nokogiri/internals/c14n/HelperNodeList.java +66 -53
  84. data/ext/java/nokogiri/internals/c14n/IgnoreAllErrorHandler.java +44 -37
  85. data/ext/java/nokogiri/internals/c14n/InclusiveNamespaces.java +135 -120
  86. data/ext/java/nokogiri/internals/c14n/InvalidCanonicalizerException.java +59 -48
  87. data/ext/java/nokogiri/internals/c14n/NameSpaceSymbTable.java +384 -334
  88. data/ext/java/nokogiri/internals/c14n/NodeFilter.java +25 -24
  89. data/ext/java/nokogiri/internals/c14n/UtfHelpper.java +151 -140
  90. data/ext/java/nokogiri/internals/c14n/XMLUtils.java +456 -423
  91. data/ext/java/nokogiri/internals/dom2dtm/DOM2DTM.java +1466 -1500
  92. data/ext/java/nokogiri/internals/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java +626 -574
  93. data/ext/nokogiri/depend +34 -474
  94. data/ext/nokogiri/extconf.rb +253 -183
  95. data/ext/nokogiri/html_document.c +10 -15
  96. data/ext/nokogiri/html_element_description.c +84 -71
  97. data/ext/nokogiri/html_entity_lookup.c +21 -16
  98. data/ext/nokogiri/html_sax_parser_context.c +66 -65
  99. data/ext/nokogiri/html_sax_push_parser.c +29 -27
  100. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  101. data/ext/nokogiri/nokogiri.c +190 -63
  102. data/ext/nokogiri/test_global_handlers.c +3 -4
  103. data/ext/nokogiri/xml_attr.c +15 -15
  104. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  105. data/ext/nokogiri/xml_cdata.c +13 -18
  106. data/ext/nokogiri/xml_comment.c +19 -26
  107. data/ext/nokogiri/xml_document.c +246 -188
  108. data/ext/nokogiri/xml_document_fragment.c +13 -15
  109. data/ext/nokogiri/xml_dtd.c +54 -48
  110. data/ext/nokogiri/xml_element_content.c +30 -27
  111. data/ext/nokogiri/xml_element_decl.c +22 -22
  112. data/ext/nokogiri/xml_encoding_handler.c +17 -11
  113. data/ext/nokogiri/xml_entity_decl.c +32 -30
  114. data/ext/nokogiri/xml_entity_reference.c +16 -18
  115. data/ext/nokogiri/xml_namespace.c +56 -49
  116. data/ext/nokogiri/xml_node.c +385 -326
  117. data/ext/nokogiri/xml_node_set.c +168 -156
  118. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  119. data/ext/nokogiri/xml_reader.c +191 -157
  120. data/ext/nokogiri/xml_relax_ng.c +29 -23
  121. data/ext/nokogiri/xml_sax_parser.c +117 -112
  122. data/ext/nokogiri/xml_sax_parser_context.c +100 -85
  123. data/ext/nokogiri/xml_sax_push_parser.c +34 -27
  124. data/ext/nokogiri/xml_schema.c +48 -42
  125. data/ext/nokogiri/xml_syntax_error.c +21 -23
  126. data/ext/nokogiri/xml_text.c +13 -17
  127. data/ext/nokogiri/xml_xpath_context.c +134 -127
  128. data/ext/nokogiri/xslt_stylesheet.c +157 -157
  129. data/lib/nokogiri.rb +1 -22
  130. data/lib/nokogiri/css/parser.rb +1 -1
  131. data/lib/nokogiri/extension.rb +26 -0
  132. data/lib/nokogiri/html/document_fragment.rb +15 -15
  133. data/lib/nokogiri/nokogiri.jar +0 -0
  134. data/lib/nokogiri/version/constant.rb +1 -1
  135. data/lib/nokogiri/version/info.rb +32 -8
  136. data/lib/nokogiri/xml/document.rb +74 -28
  137. data/lib/nokogiri/xml/node.rb +39 -42
  138. data/lib/nokogiri/xml/reader.rb +2 -9
  139. data/lib/nokogiri/xml/xpath.rb +1 -3
  140. data/lib/nokogiri/xml/xpath/syntax_error.rb +1 -1
  141. metadata +7 -8
  142. data/ext/nokogiri/xml_io.c +0 -63
  143. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
@@ -1,35 +1,3 @@
1
- /**
2
- * (The MIT License)
3
- *
4
- * Copyright (c) 2008 - 2012:
5
- *
6
- * * {Aaron Patterson}[http://tenderlovemaking.com]
7
- * * {Mike Dalessio}[http://mike.daless.io]
8
- * * {Charles Nutter}[http://blog.headius.com]
9
- * * {Sergio Arbeo}[http://www.serabe.com]
10
- * * {Patrick Mahoney}[http://polycrystal.org]
11
- * * {Yoko Harada}[http://yokolet.blogspot.com]
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining
14
- * a copy of this software and associated documentation files (the
15
- * 'Software'), to deal in the Software without restriction, including
16
- * without limitation the rights to use, copy, modify, merge, publish,
17
- * distribute, sublicense, and/or sell copies of the Software, and to
18
- * permit persons to whom the Software is furnished to do so, subject to
19
- * the following conditions:
20
- *
21
- * The above copyright notice and this permission notice shall be
22
- * included in all copies or substantial portions of the Software.
23
- *
24
- * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
25
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
27
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
28
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
29
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
30
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31
- */
32
-
33
1
  package nokogiri;
34
2
 
35
3
  import static nokogiri.internals.NokogiriHelpers.getNokogiriClass;
@@ -55,108 +23,132 @@ import org.w3c.dom.Node;
55
23
  * @author Yoko Harada <yokolet@gmail.com>
56
24
  */
57
25
 
58
- @JRubyClass(name="Nokogiri::XML::Attr", parent="Nokogiri::XML::Node")
59
- public class XmlAttr extends XmlNode {
60
-
61
- public static final String[] HTML_BOOLEAN_ATTRS = {
62
- "checked", "compact", "declare", "defer", "disabled", "ismap",
63
- "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly",
64
- "selected"
65
- };
66
-
67
- public XmlAttr(Ruby ruby, Node attr){
68
- super(ruby, getNokogiriClass(ruby, "Nokogiri::XML::Attr"), attr);
69
- }
70
-
71
- public XmlAttr(Ruby ruby, RubyClass rubyClass) {
72
- super(ruby, rubyClass);
73
- }
74
-
75
- public XmlAttr(Ruby ruby, RubyClass rubyClass, Node attr){
76
- super(ruby, rubyClass, attr);
26
+ @JRubyClass(name = "Nokogiri::XML::Attr", parent = "Nokogiri::XML::Node")
27
+ public class XmlAttr extends XmlNode
28
+ {
29
+
30
+ public static final String[] HTML_BOOLEAN_ATTRS = {
31
+ "checked", "compact", "declare", "defer", "disabled", "ismap",
32
+ "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly",
33
+ "selected"
34
+ };
35
+
36
+ public
37
+ XmlAttr(Ruby ruby, Node attr)
38
+ {
39
+ super(ruby, getNokogiriClass(ruby, "Nokogiri::XML::Attr"), attr);
40
+ }
41
+
42
+ public
43
+ XmlAttr(Ruby ruby, RubyClass rubyClass)
44
+ {
45
+ super(ruby, rubyClass);
46
+ }
47
+
48
+ public
49
+ XmlAttr(Ruby ruby, RubyClass rubyClass, Node attr)
50
+ {
51
+ super(ruby, rubyClass, attr);
52
+ }
53
+
54
+ @Override
55
+ protected void
56
+ init(ThreadContext context, IRubyObject[] args)
57
+ {
58
+ if (args.length < 2) {
59
+ throw context.runtime.newArgumentError(args.length, 2);
77
60
  }
78
61
 
79
- @Override
80
- protected void init(ThreadContext context, IRubyObject[] args) {
81
- if (args.length < 2) {
82
- throw context.runtime.newArgumentError(args.length, 2);
83
- }
62
+ IRubyObject doc = args[0];
63
+ IRubyObject content = args[1];
84
64
 
85
- IRubyObject doc = args[0];
86
- IRubyObject content = args[1];
87
-
88
- if (!(doc instanceof XmlDocument)) {
89
- throw context.runtime.newArgumentError("document must be an instance of Nokogiri::XML::Document");
90
- }
91
-
92
- XmlDocument xmlDoc = (XmlDocument)doc;
93
- String str = rubyStringToString(content);
94
- Node attr = xmlDoc.getDocument().createAttribute(str);
95
- setNode(context.runtime, attr);
96
- }
97
-
98
-
99
- // this method is called from XmlNode.setNode()
100
- // if the node is attribute, and its name has prefix "xml"
101
- // the default namespace should be registered for this attribute
102
- void setNamespaceIfNecessary(Ruby runtime) {
103
- if ("xml".equals(node.getPrefix())) {
104
- XmlNamespace.createDefaultNamespace(runtime, node);
105
- }
106
- }
107
-
108
- @Override
109
- @JRubyMethod(name = {"content", "value", "to_s"})
110
- public IRubyObject content(ThreadContext context) {
111
- if (content != null && !content.isNil()) return content;
112
- if (node == null) return context.getRuntime().getNil();
113
- String attrValue = ((Attr)node).getValue();
114
- if (attrValue == null) return context.getRuntime().getNil();
115
- return RubyString.newString(context.getRuntime(), attrValue);
116
- }
117
-
118
- @JRubyMethod(name = {"value=", "content="})
119
- public IRubyObject value_set(ThreadContext context, IRubyObject content){
120
- Attr attr = (Attr) node;
121
- if (content != null && !content.isNil()) {
122
- attr.setValue(rubyStringToString(XmlNode.encode_special_chars(context, content)));
123
- }
124
- setContent(content);
125
- return content;
65
+ if (!(doc instanceof XmlDocument)) {
66
+ throw context.runtime.newArgumentError("document must be an instance of Nokogiri::XML::Document");
126
67
  }
127
68
 
128
- @Override
129
- protected IRubyObject getNodeName(ThreadContext context) {
130
- if (name != null) return name;
131
-
132
- String attrName = ((Attr) node).getName();
133
- if (attrName == null) return context.nil;
134
-
135
- if (node.getNamespaceURI() != null && !(document(context.runtime) instanceof HtmlDocument)) {
136
- attrName = NokogiriHelpers.getLocalPart(attrName);
137
- if (attrName == null) return context.nil;
138
- }
139
-
140
- return name = RubyString.newString(context.runtime, attrName);
69
+ XmlDocument xmlDoc = (XmlDocument)doc;
70
+ String str = rubyStringToString(content);
71
+ Node attr = xmlDoc.getDocument().createAttribute(str);
72
+ setNode(context.runtime, attr);
73
+ }
74
+
75
+
76
+ // this method is called from XmlNode.setNode()
77
+ // if the node is attribute, and its name has prefix "xml"
78
+ // the default namespace should be registered for this attribute
79
+ void
80
+ setNamespaceIfNecessary(Ruby runtime)
81
+ {
82
+ if ("xml".equals(node.getPrefix())) {
83
+ XmlNamespace.createDefaultNamespace(runtime, node);
141
84
  }
142
-
143
- @Override
144
- public void accept(ThreadContext context, SaveContextVisitor visitor) {
145
- visitor.enter((Attr)node);
146
- visitor.leave((Attr)node);
85
+ }
86
+
87
+ @Override
88
+ @JRubyMethod(name = {"content", "value", "to_s"})
89
+ public IRubyObject
90
+ content(ThreadContext context)
91
+ {
92
+ if (content != null && !content.isNil()) { return content; }
93
+ if (node == null) { return context.getRuntime().getNil(); }
94
+ String attrValue = ((Attr)node).getValue();
95
+ if (attrValue == null) { return context.getRuntime().getNil(); }
96
+ return RubyString.newString(context.getRuntime(), attrValue);
97
+ }
98
+
99
+ @JRubyMethod(name = {"value=", "content="})
100
+ public IRubyObject
101
+ value_set(ThreadContext context, IRubyObject content)
102
+ {
103
+ Attr attr = (Attr) node;
104
+ if (content != null && !content.isNil()) {
105
+ attr.setValue(rubyStringToString(XmlNode.encode_special_chars(context, content)));
147
106
  }
148
-
149
- private boolean isHtml(ThreadContext context) {
150
- return document(context).getMetaClass().isKindOfModule(getNokogiriClass(context.getRuntime(), "Nokogiri::HTML::Document"));
107
+ setContent(content);
108
+ return content;
109
+ }
110
+
111
+ @Override
112
+ protected IRubyObject
113
+ getNodeName(ThreadContext context)
114
+ {
115
+ if (name != null) { return name; }
116
+
117
+ String attrName = ((Attr) node).getName();
118
+ if (attrName == null) { return context.nil; }
119
+
120
+ if (node.getNamespaceURI() != null && !(document(context.runtime) instanceof HtmlDocument)) {
121
+ attrName = NokogiriHelpers.getLocalPart(attrName);
122
+ if (attrName == null) { return context.nil; }
151
123
  }
152
124
 
153
- @Override
154
- public IRubyObject unlink(ThreadContext context) {
155
- Attr attr = (Attr) node;
156
- Element parent = attr.getOwnerElement();
157
- parent.removeAttributeNode(attr);
158
-
159
- return this;
160
- }
125
+ return name = RubyString.newString(context.runtime, attrName);
126
+ }
127
+
128
+ @Override
129
+ public void
130
+ accept(ThreadContext context, SaveContextVisitor visitor)
131
+ {
132
+ visitor.enter((Attr)node);
133
+ visitor.leave((Attr)node);
134
+ }
135
+
136
+ private boolean
137
+ isHtml(ThreadContext context)
138
+ {
139
+ return document(context).getMetaClass().isKindOfModule(getNokogiriClass(context.getRuntime(),
140
+ "Nokogiri::HTML::Document"));
141
+ }
142
+
143
+ @Override
144
+ public IRubyObject
145
+ unlink(ThreadContext context)
146
+ {
147
+ Attr attr = (Attr) node;
148
+ Element parent = attr.getOwnerElement();
149
+ parent.removeAttributeNode(attr);
150
+
151
+ return this;
152
+ }
161
153
 
162
154
  }
@@ -1,35 +1,3 @@
1
- /**
2
- * (The MIT License)
3
- *
4
- * Copyright (c) 2008 - 2011:
5
- *
6
- * * {Aaron Patterson}[http://tenderlovemaking.com]
7
- * * {Mike Dalessio}[http://mike.daless.io]
8
- * * {Charles Nutter}[http://blog.headius.com]
9
- * * {Sergio Arbeo}[http://www.serabe.com]
10
- * * {Patrick Mahoney}[http://polycrystal.org]
11
- * * {Yoko Harada}[http://yokolet.blogspot.com]
12
- *
13
- * Permission is hereby granted, free of charge, to any person obtaining
14
- * a copy of this software and associated documentation files (the
15
- * 'Software'), to deal in the Software without restriction, including
16
- * without limitation the rights to use, copy, modify, merge, publish,
17
- * distribute, sublicense, and/or sell copies of the Software, and to
18
- * permit persons to whom the Software is furnished to do so, subject to
19
- * the following conditions:
20
- *
21
- * The above copyright notice and this permission notice shall be
22
- * included in all copies or substantial portions of the Software.
23
- *
24
- * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
25
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
27
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
28
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
29
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
30
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31
- */
32
-
33
1
  package nokogiri;
34
2
 
35
3
  import static nokogiri.internals.NokogiriHelpers.getNokogiriClass;
@@ -49,81 +17,102 @@ import org.w3c.dom.Node;
49
17
  *
50
18
  * @author Patrick Mahoney <pat@polycrystal.org>
51
19
  */
52
- @JRubyClass(name="Nokogiri::XML::AttributeDecl", parent="Nokogiri::XML::Node")
53
- public class XmlAttributeDecl extends XmlNode {
54
-
55
- public XmlAttributeDecl(Ruby ruby, RubyClass klass) {
56
- super(ruby, klass);
57
- throw ruby.newRuntimeError("node required");
58
- }
59
-
60
- /**
61
- * Initialize based on an attributeDecl node from a NekoDTD parsed
62
- * DTD.
63
- *
64
- * Internally, XmlAttributeDecl combines these into a single node.
65
- */
66
- public XmlAttributeDecl(Ruby ruby, RubyClass klass, Node attrDeclNode) {
67
- super(ruby, klass, attrDeclNode);
68
- }
69
-
70
- static XmlAttributeDecl create(ThreadContext context, Node attrDeclNode) {
71
- return new XmlAttributeDecl(context.runtime,
72
- getNokogiriClass(context.runtime, "Nokogiri::XML::AttributeDecl"),
73
- attrDeclNode
74
- );
75
- }
76
-
77
- @Override
78
- @JRubyMethod
79
- public IRubyObject node_name(ThreadContext context) {
80
- return attribute_name(context);
81
- }
82
-
83
- @Override
84
- @JRubyMethod(name = "node_name=")
85
- public IRubyObject node_name_set(ThreadContext context, IRubyObject name) {
86
- throw context.runtime.newRuntimeError("cannot change name of DTD decl");
87
- }
88
-
89
- public IRubyObject element_name(ThreadContext context) {
90
- return getAttribute(context, "ename");
91
- }
92
-
93
- public IRubyObject attribute_name(ThreadContext context) {
94
- return getAttribute(context, "aname");
95
- }
96
-
97
- @JRubyMethod
98
- public IRubyObject attribute_type(ThreadContext context) {
99
- return getAttribute(context, "atype");
20
+ @JRubyClass(name = "Nokogiri::XML::AttributeDecl", parent = "Nokogiri::XML::Node")
21
+ public class XmlAttributeDecl extends XmlNode
22
+ {
23
+
24
+ public
25
+ XmlAttributeDecl(Ruby ruby, RubyClass klass)
26
+ {
27
+ super(ruby, klass);
28
+ throw ruby.newRuntimeError("node required");
29
+ }
30
+
31
+ /**
32
+ * Initialize based on an attributeDecl node from a NekoDTD parsed
33
+ * DTD.
34
+ *
35
+ * Internally, XmlAttributeDecl combines these into a single node.
36
+ */
37
+ public
38
+ XmlAttributeDecl(Ruby ruby, RubyClass klass, Node attrDeclNode)
39
+ {
40
+ super(ruby, klass, attrDeclNode);
41
+ }
42
+
43
+ static XmlAttributeDecl
44
+ create(ThreadContext context, Node attrDeclNode)
45
+ {
46
+ return new XmlAttributeDecl(context.runtime,
47
+ getNokogiriClass(context.runtime, "Nokogiri::XML::AttributeDecl"),
48
+ attrDeclNode
49
+ );
50
+ }
51
+
52
+ @Override
53
+ @JRubyMethod
54
+ public IRubyObject
55
+ node_name(ThreadContext context)
56
+ {
57
+ return attribute_name(context);
58
+ }
59
+
60
+ @Override
61
+ @JRubyMethod(name = "node_name=")
62
+ public IRubyObject
63
+ node_name_set(ThreadContext context, IRubyObject name)
64
+ {
65
+ throw context.runtime.newRuntimeError("cannot change name of DTD decl");
66
+ }
67
+
68
+ public IRubyObject
69
+ element_name(ThreadContext context)
70
+ {
71
+ return getAttribute(context, "ename");
72
+ }
73
+
74
+ public IRubyObject
75
+ attribute_name(ThreadContext context)
76
+ {
77
+ return getAttribute(context, "aname");
78
+ }
79
+
80
+ @JRubyMethod
81
+ public IRubyObject
82
+ attribute_type(ThreadContext context)
83
+ {
84
+ return getAttribute(context, "atype");
85
+ }
86
+
87
+ @JRubyMethod(name = "default")
88
+ public IRubyObject
89
+ default_value(ThreadContext context)
90
+ {
91
+ return getAttribute(context, "default");
92
+ }
93
+
94
+ /**
95
+ * FIXME: will enumerations all be of the simple (val1|val2|val3)
96
+ * type string?
97
+ */
98
+ @JRubyMethod
99
+ public IRubyObject
100
+ enumeration(ThreadContext context)
101
+ {
102
+ final String atype = ((Element) node).getAttribute("atype");
103
+
104
+ if (atype != null && atype.length() != 0 && atype.charAt(0) == '(') {
105
+ // removed enclosing parens
106
+ String valueStr = atype.substring(1, atype.length() - 1);
107
+ String[] values = valueStr.split("\\|");
108
+ RubyArray enumVals = RubyArray.newArray(context.runtime, values.length);
109
+ for (int i = 0; i < values.length; i++) {
110
+ enumVals.append(context.runtime.newString(values[i]));
111
+ }
112
+ return enumVals;
100
113
  }
101
114
 
102
- @JRubyMethod(name="default")
103
- public IRubyObject default_value(ThreadContext context) {
104
- return getAttribute(context, "default");
105
- }
106
-
107
- /**
108
- * FIXME: will enumerations all be of the simple (val1|val2|val3)
109
- * type string?
110
- */
111
- @JRubyMethod
112
- public IRubyObject enumeration(ThreadContext context) {
113
- final String atype = ((Element) node).getAttribute("atype");
114
-
115
- if (atype != null && atype.length() != 0 && atype.charAt(0) == '(') {
116
- // removed enclosing parens
117
- String valueStr = atype.substring(1, atype.length() - 1);
118
- String[] values = valueStr.split("\\|");
119
- RubyArray enumVals = RubyArray.newArray(context.runtime, values.length);
120
- for (int i = 0; i < values.length; i++) {
121
- enumVals.append(context.runtime.newString(values[i]));
122
- }
123
- return enumVals;
124
- }
125
-
126
- return context.runtime.newEmptyArray();
127
- }
115
+ return context.runtime.newEmptyArray();
116
+ }
128
117
 
129
118
  }