nokogiri 1.11.1-java → 1.11.2-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 (142) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE-DEPENDENCIES.md +12 -12
  3. data/LICENSE.md +1 -1
  4. data/README.md +20 -15
  5. data/ext/java/nokogiri/EncodingHandler.java +78 -59
  6. data/ext/java/nokogiri/HtmlDocument.java +137 -114
  7. data/ext/java/nokogiri/HtmlElementDescription.java +104 -87
  8. data/ext/java/nokogiri/HtmlEntityLookup.java +31 -26
  9. data/ext/java/nokogiri/HtmlSaxParserContext.java +220 -192
  10. data/ext/java/nokogiri/HtmlSaxPushParser.java +164 -139
  11. data/ext/java/nokogiri/NokogiriService.java +597 -526
  12. data/ext/java/nokogiri/XmlAttr.java +120 -96
  13. data/ext/java/nokogiri/XmlAttributeDecl.java +97 -76
  14. data/ext/java/nokogiri/XmlCdata.java +35 -26
  15. data/ext/java/nokogiri/XmlComment.java +48 -37
  16. data/ext/java/nokogiri/XmlDocument.java +642 -540
  17. data/ext/java/nokogiri/XmlDocumentFragment.java +127 -107
  18. data/ext/java/nokogiri/XmlDtd.java +450 -384
  19. data/ext/java/nokogiri/XmlElement.java +25 -18
  20. data/ext/java/nokogiri/XmlElementContent.java +345 -286
  21. data/ext/java/nokogiri/XmlElementDecl.java +126 -95
  22. data/ext/java/nokogiri/XmlEntityDecl.java +121 -97
  23. data/ext/java/nokogiri/XmlEntityReference.java +51 -42
  24. data/ext/java/nokogiri/XmlNamespace.java +177 -145
  25. data/ext/java/nokogiri/XmlNode.java +1843 -1588
  26. data/ext/java/nokogiri/XmlNodeSet.java +361 -299
  27. data/ext/java/nokogiri/XmlProcessingInstruction.java +49 -39
  28. data/ext/java/nokogiri/XmlReader.java +513 -418
  29. data/ext/java/nokogiri/XmlRelaxng.java +91 -78
  30. data/ext/java/nokogiri/XmlSaxParserContext.java +330 -285
  31. data/ext/java/nokogiri/XmlSaxPushParser.java +229 -190
  32. data/ext/java/nokogiri/XmlSchema.java +328 -263
  33. data/ext/java/nokogiri/XmlSyntaxError.java +113 -83
  34. data/ext/java/nokogiri/XmlText.java +57 -46
  35. data/ext/java/nokogiri/XmlXpathContext.java +240 -206
  36. data/ext/java/nokogiri/XsltStylesheet.java +282 -239
  37. data/ext/java/nokogiri/internals/ClosedStreamException.java +5 -2
  38. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +199 -168
  39. data/ext/java/nokogiri/internals/IgnoreSchemaErrorsErrorHandler.java +17 -10
  40. data/ext/java/nokogiri/internals/NokogiriBlockingQueueInputStream.java +43 -16
  41. data/ext/java/nokogiri/internals/NokogiriDomParser.java +65 -50
  42. data/ext/java/nokogiri/internals/NokogiriEntityResolver.java +107 -88
  43. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +25 -18
  44. data/ext/java/nokogiri/internals/NokogiriHandler.java +316 -254
  45. data/ext/java/nokogiri/internals/NokogiriHelpers.java +738 -622
  46. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +186 -143
  47. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +83 -68
  48. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +66 -49
  49. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +86 -69
  50. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +44 -29
  51. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +118 -101
  52. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +34 -24
  53. data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +25 -17
  54. data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +57 -42
  55. data/ext/java/nokogiri/internals/ParserContext.java +206 -179
  56. data/ext/java/nokogiri/internals/ReaderNode.java +478 -371
  57. data/ext/java/nokogiri/internals/SaveContextVisitor.java +822 -707
  58. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +28 -19
  59. data/ext/java/nokogiri/internals/XalanDTMManagerPatch.java +129 -123
  60. data/ext/java/nokogiri/internals/XmlDeclHandler.java +5 -4
  61. data/ext/java/nokogiri/internals/XmlDomParserContext.java +208 -177
  62. data/ext/java/nokogiri/internals/XmlSaxParser.java +24 -17
  63. data/ext/java/nokogiri/internals/c14n/AttrCompare.java +71 -68
  64. data/ext/java/nokogiri/internals/c14n/C14nHelper.java +137 -118
  65. data/ext/java/nokogiri/internals/c14n/CanonicalFilter.java +27 -21
  66. data/ext/java/nokogiri/internals/c14n/CanonicalizationException.java +74 -61
  67. data/ext/java/nokogiri/internals/c14n/Canonicalizer.java +230 -205
  68. data/ext/java/nokogiri/internals/c14n/Canonicalizer11.java +572 -547
  69. data/ext/java/nokogiri/internals/c14n/Canonicalizer11_OmitComments.java +17 -10
  70. data/ext/java/nokogiri/internals/c14n/Canonicalizer11_WithComments.java +17 -10
  71. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315.java +323 -302
  72. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315Excl.java +232 -219
  73. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclOmitComments.java +22 -15
  74. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclWithComments.java +23 -16
  75. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315OmitComments.java +23 -16
  76. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315WithComments.java +22 -15
  77. data/ext/java/nokogiri/internals/c14n/CanonicalizerBase.java +575 -545
  78. data/ext/java/nokogiri/internals/c14n/CanonicalizerPhysical.java +141 -120
  79. data/ext/java/nokogiri/internals/c14n/CanonicalizerSpi.java +39 -38
  80. data/ext/java/nokogiri/internals/c14n/Constants.java +13 -10
  81. data/ext/java/nokogiri/internals/c14n/ElementProxy.java +279 -247
  82. data/ext/java/nokogiri/internals/c14n/HelperNodeList.java +66 -53
  83. data/ext/java/nokogiri/internals/c14n/IgnoreAllErrorHandler.java +44 -37
  84. data/ext/java/nokogiri/internals/c14n/InclusiveNamespaces.java +135 -120
  85. data/ext/java/nokogiri/internals/c14n/InvalidCanonicalizerException.java +59 -48
  86. data/ext/java/nokogiri/internals/c14n/NameSpaceSymbTable.java +384 -334
  87. data/ext/java/nokogiri/internals/c14n/NodeFilter.java +25 -24
  88. data/ext/java/nokogiri/internals/c14n/UtfHelpper.java +151 -140
  89. data/ext/java/nokogiri/internals/c14n/XMLUtils.java +456 -423
  90. data/ext/java/nokogiri/internals/dom2dtm/DOM2DTM.java +1466 -1500
  91. data/ext/java/nokogiri/internals/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java +626 -570
  92. data/ext/nokogiri/depend +34 -474
  93. data/ext/nokogiri/extconf.rb +253 -183
  94. data/ext/nokogiri/html_document.c +10 -15
  95. data/ext/nokogiri/html_element_description.c +84 -71
  96. data/ext/nokogiri/html_entity_lookup.c +21 -16
  97. data/ext/nokogiri/html_sax_parser_context.c +66 -65
  98. data/ext/nokogiri/html_sax_push_parser.c +29 -27
  99. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  100. data/ext/nokogiri/nokogiri.c +171 -63
  101. data/ext/nokogiri/test_global_handlers.c +3 -4
  102. data/ext/nokogiri/xml_attr.c +15 -15
  103. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  104. data/ext/nokogiri/xml_cdata.c +13 -18
  105. data/ext/nokogiri/xml_comment.c +19 -26
  106. data/ext/nokogiri/xml_document.c +221 -164
  107. data/ext/nokogiri/xml_document_fragment.c +13 -15
  108. data/ext/nokogiri/xml_dtd.c +54 -48
  109. data/ext/nokogiri/xml_element_content.c +30 -27
  110. data/ext/nokogiri/xml_element_decl.c +22 -22
  111. data/ext/nokogiri/xml_encoding_handler.c +17 -11
  112. data/ext/nokogiri/xml_entity_decl.c +32 -30
  113. data/ext/nokogiri/xml_entity_reference.c +16 -18
  114. data/ext/nokogiri/xml_namespace.c +56 -49
  115. data/ext/nokogiri/xml_node.c +338 -286
  116. data/ext/nokogiri/xml_node_set.c +168 -156
  117. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  118. data/ext/nokogiri/xml_reader.c +191 -157
  119. data/ext/nokogiri/xml_relax_ng.c +29 -23
  120. data/ext/nokogiri/xml_sax_parser.c +117 -112
  121. data/ext/nokogiri/xml_sax_parser_context.c +100 -85
  122. data/ext/nokogiri/xml_sax_push_parser.c +34 -27
  123. data/ext/nokogiri/xml_schema.c +48 -42
  124. data/ext/nokogiri/xml_syntax_error.c +21 -23
  125. data/ext/nokogiri/xml_text.c +13 -17
  126. data/ext/nokogiri/xml_xpath_context.c +134 -127
  127. data/ext/nokogiri/xslt_stylesheet.c +157 -157
  128. data/lib/nokogiri.rb +1 -22
  129. data/lib/nokogiri/css/parser.rb +1 -1
  130. data/lib/nokogiri/extension.rb +26 -0
  131. data/lib/nokogiri/html/document_fragment.rb +15 -15
  132. data/lib/nokogiri/nokogiri.jar +0 -0
  133. data/lib/nokogiri/version/constant.rb +1 -1
  134. data/lib/nokogiri/version/info.rb +31 -8
  135. data/lib/nokogiri/xml/document.rb +31 -11
  136. data/lib/nokogiri/xml/node.rb +38 -42
  137. data/lib/nokogiri/xml/reader.rb +2 -9
  138. data/lib/nokogiri/xml/xpath.rb +1 -3
  139. data/lib/nokogiri/xml/xpath/syntax_error.rb +1 -1
  140. metadata +7 -8
  141. data/ext/nokogiri/xml_io.c +0 -63
  142. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
@@ -17,10 +17,10 @@
17
17
  * distribute, sublicense, and/or sell copies of the Software, and to
18
18
  * permit persons to whom the Software is furnished to do so, subject to
19
19
  * the following conditions:
20
- *
20
+ *
21
21
  * The above copyright notice and this permission notice shall be
22
22
  * included in all copies or substantial portions of the Software.
23
- *
23
+ *
24
24
  * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
25
25
  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
26
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
@@ -55,108 +55,132 @@ import org.w3c.dom.Node;
55
55
  * @author Yoko Harada <yokolet@gmail.com>
56
56
  */
57
57
 
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);
58
+ @JRubyClass(name = "Nokogiri::XML::Attr", parent = "Nokogiri::XML::Node")
59
+ public class XmlAttr extends XmlNode
60
+ {
61
+
62
+ public static final String[] HTML_BOOLEAN_ATTRS = {
63
+ "checked", "compact", "declare", "defer", "disabled", "ismap",
64
+ "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly",
65
+ "selected"
66
+ };
67
+
68
+ public
69
+ XmlAttr(Ruby ruby, Node attr)
70
+ {
71
+ super(ruby, getNokogiriClass(ruby, "Nokogiri::XML::Attr"), attr);
72
+ }
73
+
74
+ public
75
+ XmlAttr(Ruby ruby, RubyClass rubyClass)
76
+ {
77
+ super(ruby, rubyClass);
78
+ }
79
+
80
+ public
81
+ XmlAttr(Ruby ruby, RubyClass rubyClass, Node attr)
82
+ {
83
+ super(ruby, rubyClass, attr);
84
+ }
85
+
86
+ @Override
87
+ protected void
88
+ init(ThreadContext context, IRubyObject[] args)
89
+ {
90
+ if (args.length < 2) {
91
+ throw context.runtime.newArgumentError(args.length, 2);
77
92
  }
78
93
 
79
- @Override
80
- protected void init(ThreadContext context, IRubyObject[] args) {
81
- if (args.length < 2) {
82
- throw context.runtime.newArgumentError(args.length, 2);
83
- }
84
-
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
- }
94
+ IRubyObject doc = args[0];
95
+ IRubyObject content = args[1];
91
96
 
92
- XmlDocument xmlDoc = (XmlDocument)doc;
93
- String str = rubyStringToString(content);
94
- Node attr = xmlDoc.getDocument().createAttribute(str);
95
- setNode(context.runtime, attr);
97
+ if (!(doc instanceof XmlDocument)) {
98
+ throw context.runtime.newArgumentError("document must be an instance of Nokogiri::XML::Document");
96
99
  }
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;
126
- }
127
-
128
- @Override
129
- protected IRubyObject getNodeName(ThreadContext context) {
130
- if (name != null) return name;
131
100
 
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);
101
+ XmlDocument xmlDoc = (XmlDocument)doc;
102
+ String str = rubyStringToString(content);
103
+ Node attr = xmlDoc.getDocument().createAttribute(str);
104
+ setNode(context.runtime, attr);
105
+ }
106
+
107
+
108
+ // this method is called from XmlNode.setNode()
109
+ // if the node is attribute, and its name has prefix "xml"
110
+ // the default namespace should be registered for this attribute
111
+ void
112
+ setNamespaceIfNecessary(Ruby runtime)
113
+ {
114
+ if ("xml".equals(node.getPrefix())) {
115
+ XmlNamespace.createDefaultNamespace(runtime, node);
141
116
  }
142
-
143
- @Override
144
- public void accept(ThreadContext context, SaveContextVisitor visitor) {
145
- visitor.enter((Attr)node);
146
- visitor.leave((Attr)node);
117
+ }
118
+
119
+ @Override
120
+ @JRubyMethod(name = {"content", "value", "to_s"})
121
+ public IRubyObject
122
+ content(ThreadContext context)
123
+ {
124
+ if (content != null && !content.isNil()) { return content; }
125
+ if (node == null) { return context.getRuntime().getNil(); }
126
+ String attrValue = ((Attr)node).getValue();
127
+ if (attrValue == null) { return context.getRuntime().getNil(); }
128
+ return RubyString.newString(context.getRuntime(), attrValue);
129
+ }
130
+
131
+ @JRubyMethod(name = {"value=", "content="})
132
+ public IRubyObject
133
+ value_set(ThreadContext context, IRubyObject content)
134
+ {
135
+ Attr attr = (Attr) node;
136
+ if (content != null && !content.isNil()) {
137
+ attr.setValue(rubyStringToString(XmlNode.encode_special_chars(context, content)));
147
138
  }
148
-
149
- private boolean isHtml(ThreadContext context) {
150
- return document(context).getMetaClass().isKindOfModule(getNokogiriClass(context.getRuntime(), "Nokogiri::HTML::Document"));
139
+ setContent(content);
140
+ return content;
141
+ }
142
+
143
+ @Override
144
+ protected IRubyObject
145
+ getNodeName(ThreadContext context)
146
+ {
147
+ if (name != null) { return name; }
148
+
149
+ String attrName = ((Attr) node).getName();
150
+ if (attrName == null) { return context.nil; }
151
+
152
+ if (node.getNamespaceURI() != null && !(document(context.runtime) instanceof HtmlDocument)) {
153
+ attrName = NokogiriHelpers.getLocalPart(attrName);
154
+ if (attrName == null) { return context.nil; }
151
155
  }
152
156
 
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
- }
157
+ return name = RubyString.newString(context.runtime, attrName);
158
+ }
159
+
160
+ @Override
161
+ public void
162
+ accept(ThreadContext context, SaveContextVisitor visitor)
163
+ {
164
+ visitor.enter((Attr)node);
165
+ visitor.leave((Attr)node);
166
+ }
167
+
168
+ private boolean
169
+ isHtml(ThreadContext context)
170
+ {
171
+ return document(context).getMetaClass().isKindOfModule(getNokogiriClass(context.getRuntime(),
172
+ "Nokogiri::HTML::Document"));
173
+ }
174
+
175
+ @Override
176
+ public IRubyObject
177
+ unlink(ThreadContext context)
178
+ {
179
+ Attr attr = (Attr) node;
180
+ Element parent = attr.getOwnerElement();
181
+ parent.removeAttributeNode(attr);
182
+
183
+ return this;
184
+ }
161
185
 
162
186
  }
@@ -17,10 +17,10 @@
17
17
  * distribute, sublicense, and/or sell copies of the Software, and to
18
18
  * permit persons to whom the Software is furnished to do so, subject to
19
19
  * the following conditions:
20
- *
20
+ *
21
21
  * The above copyright notice and this permission notice shall be
22
22
  * included in all copies or substantial portions of the Software.
23
- *
23
+ *
24
24
  * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
25
25
  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
26
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
@@ -49,81 +49,102 @@ import org.w3c.dom.Node;
49
49
  *
50
50
  * @author Patrick Mahoney <pat@polycrystal.org>
51
51
  */
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");
52
+ @JRubyClass(name = "Nokogiri::XML::AttributeDecl", parent = "Nokogiri::XML::Node")
53
+ public class XmlAttributeDecl extends XmlNode
54
+ {
55
+
56
+ public
57
+ XmlAttributeDecl(Ruby ruby, RubyClass klass)
58
+ {
59
+ super(ruby, klass);
60
+ throw ruby.newRuntimeError("node required");
61
+ }
62
+
63
+ /**
64
+ * Initialize based on an attributeDecl node from a NekoDTD parsed
65
+ * DTD.
66
+ *
67
+ * Internally, XmlAttributeDecl combines these into a single node.
68
+ */
69
+ public
70
+ XmlAttributeDecl(Ruby ruby, RubyClass klass, Node attrDeclNode)
71
+ {
72
+ super(ruby, klass, attrDeclNode);
73
+ }
74
+
75
+ static XmlAttributeDecl
76
+ create(ThreadContext context, Node attrDeclNode)
77
+ {
78
+ return new XmlAttributeDecl(context.runtime,
79
+ getNokogiriClass(context.runtime, "Nokogiri::XML::AttributeDecl"),
80
+ attrDeclNode
81
+ );
82
+ }
83
+
84
+ @Override
85
+ @JRubyMethod
86
+ public IRubyObject
87
+ node_name(ThreadContext context)
88
+ {
89
+ return attribute_name(context);
90
+ }
91
+
92
+ @Override
93
+ @JRubyMethod(name = "node_name=")
94
+ public IRubyObject
95
+ node_name_set(ThreadContext context, IRubyObject name)
96
+ {
97
+ throw context.runtime.newRuntimeError("cannot change name of DTD decl");
98
+ }
99
+
100
+ public IRubyObject
101
+ element_name(ThreadContext context)
102
+ {
103
+ return getAttribute(context, "ename");
104
+ }
105
+
106
+ public IRubyObject
107
+ attribute_name(ThreadContext context)
108
+ {
109
+ return getAttribute(context, "aname");
110
+ }
111
+
112
+ @JRubyMethod
113
+ public IRubyObject
114
+ attribute_type(ThreadContext context)
115
+ {
116
+ return getAttribute(context, "atype");
117
+ }
118
+
119
+ @JRubyMethod(name = "default")
120
+ public IRubyObject
121
+ default_value(ThreadContext context)
122
+ {
123
+ return getAttribute(context, "default");
124
+ }
125
+
126
+ /**
127
+ * FIXME: will enumerations all be of the simple (val1|val2|val3)
128
+ * type string?
129
+ */
130
+ @JRubyMethod
131
+ public IRubyObject
132
+ enumeration(ThreadContext context)
133
+ {
134
+ final String atype = ((Element) node).getAttribute("atype");
135
+
136
+ if (atype != null && atype.length() != 0 && atype.charAt(0) == '(') {
137
+ // removed enclosing parens
138
+ String valueStr = atype.substring(1, atype.length() - 1);
139
+ String[] values = valueStr.split("\\|");
140
+ RubyArray enumVals = RubyArray.newArray(context.runtime, values.length);
141
+ for (int i = 0; i < values.length; i++) {
142
+ enumVals.append(context.runtime.newString(values[i]));
143
+ }
144
+ return enumVals;
95
145
  }
96
146
 
97
- @JRubyMethod
98
- public IRubyObject attribute_type(ThreadContext context) {
99
- return getAttribute(context, "atype");
100
- }
101
-
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
- }
147
+ return context.runtime.newEmptyArray();
148
+ }
128
149
 
129
150
  }
@@ -17,10 +17,10 @@
17
17
  * distribute, sublicense, and/or sell copies of the Software, and to
18
18
  * permit persons to whom the Software is furnished to do so, subject to
19
19
  * the following conditions:
20
- *
20
+ *
21
21
  * The above copyright notice and this permission notice shall be
22
22
  * included in all copies or substantial portions of the Software.
23
- *
23
+ *
24
24
  * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
25
25
  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
26
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
@@ -52,31 +52,40 @@ import org.w3c.dom.Node;
52
52
  * @author Yoko Harada <yokolet@gmail.com>
53
53
  */
54
54
 
55
- @JRubyClass(name="Nokogiri::XML::CDATA", parent="Nokogiri::XML::Text")
56
- public class XmlCdata extends XmlText {
57
- public XmlCdata(Ruby ruby, RubyClass rubyClass) {
58
- super(ruby, rubyClass);
59
- }
60
-
61
- public XmlCdata(Ruby ruby, RubyClass rubyClass, Node node) {
62
- super(ruby, rubyClass, node);
63
- }
55
+ @JRubyClass(name = "Nokogiri::XML::CDATA", parent = "Nokogiri::XML::Text")
56
+ public class XmlCdata extends XmlText
57
+ {
58
+ public
59
+ XmlCdata(Ruby ruby, RubyClass rubyClass)
60
+ {
61
+ super(ruby, rubyClass);
62
+ }
64
63
 
65
- @Override
66
- protected void init(ThreadContext context, IRubyObject[] args) {
67
- if (args.length < 2) {
68
- throw getRuntime().newArgumentError(args.length, 2);
69
- }
70
- IRubyObject doc = args[0];
71
- content = args[1];
72
- Document document = ((XmlNode) doc).getOwnerDocument();
73
- Node node = document.createCDATASection(rubyStringToString(content));
74
- setNode(context.runtime, node);
75
- }
64
+ public
65
+ XmlCdata(Ruby ruby, RubyClass rubyClass, Node node)
66
+ {
67
+ super(ruby, rubyClass, node);
68
+ }
76
69
 
77
- @Override
78
- public void accept(ThreadContext context, SaveContextVisitor visitor) {
79
- visitor.enter((CDATASection)node);
80
- visitor.leave((CDATASection)node);
70
+ @Override
71
+ protected void
72
+ init(ThreadContext context, IRubyObject[] args)
73
+ {
74
+ if (args.length < 2) {
75
+ throw getRuntime().newArgumentError(args.length, 2);
81
76
  }
77
+ IRubyObject doc = args[0];
78
+ content = args[1];
79
+ Document document = ((XmlNode) doc).getOwnerDocument();
80
+ Node node = document.createCDATASection(rubyStringToString(content));
81
+ setNode(context.runtime, node);
82
+ }
83
+
84
+ @Override
85
+ public void
86
+ accept(ThreadContext context, SaveContextVisitor visitor)
87
+ {
88
+ visitor.enter((CDATASection)node);
89
+ visitor.leave((CDATASection)node);
90
+ }
82
91
  }