nokogiri 1.11.0.rc4-java → 1.11.5-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 (144) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/LICENSE-DEPENDENCIES.md +12 -12
  4. data/LICENSE.md +1 -1
  5. data/README.md +168 -91
  6. data/dependencies.yml +12 -12
  7. data/ext/java/nokogiri/EncodingHandler.java +76 -89
  8. data/ext/java/nokogiri/HtmlDocument.java +135 -144
  9. data/ext/java/nokogiri/HtmlElementDescription.java +102 -117
  10. data/ext/java/nokogiri/HtmlEntityLookup.java +33 -60
  11. data/ext/java/nokogiri/HtmlSaxParserContext.java +218 -222
  12. data/ext/java/nokogiri/HtmlSaxPushParser.java +162 -169
  13. data/ext/java/nokogiri/NokogiriService.java +595 -556
  14. data/ext/java/nokogiri/XmlAttr.java +118 -126
  15. data/ext/java/nokogiri/XmlAttributeDecl.java +95 -106
  16. data/ext/java/nokogiri/XmlCdata.java +35 -58
  17. data/ext/java/nokogiri/XmlComment.java +46 -67
  18. data/ext/java/nokogiri/XmlDocument.java +645 -572
  19. data/ext/java/nokogiri/XmlDocumentFragment.java +125 -137
  20. data/ext/java/nokogiri/XmlDtd.java +448 -414
  21. data/ext/java/nokogiri/XmlElement.java +23 -48
  22. data/ext/java/nokogiri/XmlElementContent.java +343 -316
  23. data/ext/java/nokogiri/XmlElementDecl.java +124 -125
  24. data/ext/java/nokogiri/XmlEntityDecl.java +119 -127
  25. data/ext/java/nokogiri/XmlEntityReference.java +49 -72
  26. data/ext/java/nokogiri/XmlNamespace.java +175 -175
  27. data/ext/java/nokogiri/XmlNode.java +1843 -1620
  28. data/ext/java/nokogiri/XmlNodeSet.java +361 -331
  29. data/ext/java/nokogiri/XmlProcessingInstruction.java +47 -69
  30. data/ext/java/nokogiri/XmlReader.java +513 -450
  31. data/ext/java/nokogiri/XmlRelaxng.java +85 -104
  32. data/ext/java/nokogiri/XmlSaxParserContext.java +328 -315
  33. data/ext/java/nokogiri/XmlSaxPushParser.java +227 -220
  34. data/ext/java/nokogiri/XmlSchema.java +328 -295
  35. data/ext/java/nokogiri/XmlSyntaxError.java +113 -115
  36. data/ext/java/nokogiri/XmlText.java +55 -76
  37. data/ext/java/nokogiri/XmlXpathContext.java +240 -238
  38. data/ext/java/nokogiri/XsltStylesheet.java +280 -269
  39. data/ext/java/nokogiri/internals/ClosedStreamException.java +5 -2
  40. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +201 -202
  41. data/ext/java/nokogiri/internals/IgnoreSchemaErrorsErrorHandler.java +17 -10
  42. data/ext/java/nokogiri/internals/NokogiriBlockingQueueInputStream.java +43 -16
  43. data/ext/java/nokogiri/internals/NokogiriDomParser.java +63 -80
  44. data/ext/java/nokogiri/internals/NokogiriEntityResolver.java +107 -88
  45. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +27 -52
  46. data/ext/java/nokogiri/internals/NokogiriHandler.java +316 -286
  47. data/ext/java/nokogiri/internals/NokogiriHelpers.java +736 -652
  48. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +184 -173
  49. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +81 -98
  50. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +64 -79
  51. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +84 -99
  52. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +48 -65
  53. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +116 -131
  54. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +34 -56
  55. data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +23 -46
  56. data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +55 -72
  57. data/ext/java/nokogiri/internals/ParserContext.java +206 -211
  58. data/ext/java/nokogiri/internals/ReaderNode.java +478 -403
  59. data/ext/java/nokogiri/internals/SaveContextVisitor.java +822 -739
  60. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +31 -54
  61. data/ext/java/nokogiri/internals/XalanDTMManagerPatch.java +129 -123
  62. data/ext/java/nokogiri/internals/XmlDeclHandler.java +3 -34
  63. data/ext/java/nokogiri/internals/XmlDomParserContext.java +206 -207
  64. data/ext/java/nokogiri/internals/XmlSaxParser.java +22 -47
  65. data/ext/java/nokogiri/internals/c14n/AttrCompare.java +71 -68
  66. data/ext/java/nokogiri/internals/c14n/C14nHelper.java +137 -118
  67. data/ext/java/nokogiri/internals/c14n/CanonicalFilter.java +27 -21
  68. data/ext/java/nokogiri/internals/c14n/CanonicalizationException.java +74 -61
  69. data/ext/java/nokogiri/internals/c14n/Canonicalizer.java +230 -205
  70. data/ext/java/nokogiri/internals/c14n/Canonicalizer11.java +572 -547
  71. data/ext/java/nokogiri/internals/c14n/Canonicalizer11_OmitComments.java +17 -10
  72. data/ext/java/nokogiri/internals/c14n/Canonicalizer11_WithComments.java +17 -10
  73. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315.java +323 -302
  74. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315Excl.java +232 -219
  75. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclOmitComments.java +22 -15
  76. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclWithComments.java +23 -16
  77. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315OmitComments.java +23 -16
  78. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315WithComments.java +22 -15
  79. data/ext/java/nokogiri/internals/c14n/CanonicalizerBase.java +575 -545
  80. data/ext/java/nokogiri/internals/c14n/CanonicalizerPhysical.java +141 -120
  81. data/ext/java/nokogiri/internals/c14n/CanonicalizerSpi.java +39 -38
  82. data/ext/java/nokogiri/internals/c14n/Constants.java +13 -10
  83. data/ext/java/nokogiri/internals/c14n/ElementProxy.java +279 -247
  84. data/ext/java/nokogiri/internals/c14n/HelperNodeList.java +66 -53
  85. data/ext/java/nokogiri/internals/c14n/IgnoreAllErrorHandler.java +44 -37
  86. data/ext/java/nokogiri/internals/c14n/InclusiveNamespaces.java +135 -120
  87. data/ext/java/nokogiri/internals/c14n/InvalidCanonicalizerException.java +59 -48
  88. data/ext/java/nokogiri/internals/c14n/NameSpaceSymbTable.java +384 -334
  89. data/ext/java/nokogiri/internals/c14n/NodeFilter.java +25 -24
  90. data/ext/java/nokogiri/internals/c14n/UtfHelpper.java +151 -140
  91. data/ext/java/nokogiri/internals/c14n/XMLUtils.java +456 -423
  92. data/ext/java/nokogiri/internals/dom2dtm/DOM2DTM.java +1466 -1500
  93. data/ext/java/nokogiri/internals/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java +626 -574
  94. data/ext/nokogiri/depend +34 -474
  95. data/ext/nokogiri/extconf.rb +270 -183
  96. data/ext/nokogiri/html_document.c +10 -15
  97. data/ext/nokogiri/html_element_description.c +84 -71
  98. data/ext/nokogiri/html_entity_lookup.c +21 -16
  99. data/ext/nokogiri/html_sax_parser_context.c +67 -64
  100. data/ext/nokogiri/html_sax_push_parser.c +42 -34
  101. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  102. data/ext/nokogiri/nokogiri.c +190 -60
  103. data/ext/nokogiri/test_global_handlers.c +40 -0
  104. data/ext/nokogiri/xml_attr.c +15 -15
  105. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  106. data/ext/nokogiri/xml_cdata.c +13 -18
  107. data/ext/nokogiri/xml_comment.c +19 -26
  108. data/ext/nokogiri/xml_document.c +246 -188
  109. data/ext/nokogiri/xml_document_fragment.c +13 -15
  110. data/ext/nokogiri/xml_dtd.c +54 -48
  111. data/ext/nokogiri/xml_element_content.c +30 -27
  112. data/ext/nokogiri/xml_element_decl.c +22 -22
  113. data/ext/nokogiri/xml_encoding_handler.c +17 -11
  114. data/ext/nokogiri/xml_entity_decl.c +32 -30
  115. data/ext/nokogiri/xml_entity_reference.c +16 -18
  116. data/ext/nokogiri/xml_namespace.c +56 -49
  117. data/ext/nokogiri/xml_node.c +371 -320
  118. data/ext/nokogiri/xml_node_set.c +168 -156
  119. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  120. data/ext/nokogiri/xml_reader.c +191 -157
  121. data/ext/nokogiri/xml_relax_ng.c +29 -23
  122. data/ext/nokogiri/xml_sax_parser.c +117 -112
  123. data/ext/nokogiri/xml_sax_parser_context.c +101 -84
  124. data/ext/nokogiri/xml_sax_push_parser.c +36 -27
  125. data/ext/nokogiri/xml_schema.c +48 -42
  126. data/ext/nokogiri/xml_syntax_error.c +42 -21
  127. data/ext/nokogiri/xml_text.c +13 -17
  128. data/ext/nokogiri/xml_xpath_context.c +134 -127
  129. data/ext/nokogiri/xslt_stylesheet.c +157 -157
  130. data/lib/nokogiri.rb +2 -6
  131. data/lib/nokogiri/css/parser.rb +1 -1
  132. data/lib/nokogiri/extension.rb +26 -0
  133. data/lib/nokogiri/html/document_fragment.rb +15 -15
  134. data/lib/nokogiri/nokogiri.jar +0 -0
  135. data/lib/nokogiri/version/constant.rb +1 -1
  136. data/lib/nokogiri/version/info.rb +32 -8
  137. data/lib/nokogiri/xml/document.rb +74 -28
  138. data/lib/nokogiri/xml/node.rb +39 -42
  139. data/lib/nokogiri/xml/reader.rb +2 -9
  140. data/lib/nokogiri/xml/xpath.rb +1 -3
  141. data/lib/nokogiri/xml/xpath/syntax_error.rb +1 -1
  142. metadata +62 -127
  143. data/ext/nokogiri/xml_io.c +0 -63
  144. 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
  }