nokogiri 1.11.0.rc1-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 (188) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/LICENSE-DEPENDENCIES.md +1015 -947
  4. data/LICENSE.md +1 -1
  5. data/README.md +171 -94
  6. data/ext/java/nokogiri/EncodingHandler.java +78 -59
  7. data/ext/java/nokogiri/HtmlDocument.java +137 -114
  8. data/ext/java/nokogiri/HtmlElementDescription.java +104 -87
  9. data/ext/java/nokogiri/HtmlEntityLookup.java +31 -26
  10. data/ext/java/nokogiri/HtmlSaxParserContext.java +220 -192
  11. data/ext/java/nokogiri/HtmlSaxPushParser.java +164 -139
  12. data/ext/java/nokogiri/NokogiriService.java +597 -526
  13. data/ext/java/nokogiri/XmlAttr.java +120 -96
  14. data/ext/java/nokogiri/XmlAttributeDecl.java +97 -76
  15. data/ext/java/nokogiri/XmlCdata.java +35 -26
  16. data/ext/java/nokogiri/XmlComment.java +48 -37
  17. data/ext/java/nokogiri/XmlDocument.java +642 -540
  18. data/ext/java/nokogiri/XmlDocumentFragment.java +127 -107
  19. data/ext/java/nokogiri/XmlDtd.java +450 -384
  20. data/ext/java/nokogiri/XmlElement.java +25 -18
  21. data/ext/java/nokogiri/XmlElementContent.java +345 -286
  22. data/ext/java/nokogiri/XmlElementDecl.java +126 -95
  23. data/ext/java/nokogiri/XmlEntityDecl.java +121 -97
  24. data/ext/java/nokogiri/XmlEntityReference.java +51 -42
  25. data/ext/java/nokogiri/XmlNamespace.java +177 -145
  26. data/ext/java/nokogiri/XmlNode.java +1843 -1590
  27. data/ext/java/nokogiri/XmlNodeSet.java +361 -299
  28. data/ext/java/nokogiri/XmlProcessingInstruction.java +49 -39
  29. data/ext/java/nokogiri/XmlReader.java +513 -418
  30. data/ext/java/nokogiri/XmlRelaxng.java +92 -72
  31. data/ext/java/nokogiri/XmlSaxParserContext.java +330 -280
  32. data/ext/java/nokogiri/XmlSaxPushParser.java +229 -190
  33. data/ext/java/nokogiri/XmlSchema.java +335 -210
  34. data/ext/java/nokogiri/XmlSyntaxError.java +113 -87
  35. data/ext/java/nokogiri/XmlText.java +57 -46
  36. data/ext/java/nokogiri/XmlXpathContext.java +242 -178
  37. data/ext/java/nokogiri/XsltStylesheet.java +282 -239
  38. data/ext/java/nokogiri/internals/ClosedStreamException.java +5 -2
  39. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +203 -160
  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 +65 -50
  43. data/ext/java/nokogiri/internals/NokogiriEntityResolver.java +107 -88
  44. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +25 -18
  45. data/ext/java/nokogiri/internals/NokogiriHandler.java +316 -254
  46. data/ext/java/nokogiri/internals/NokogiriHelpers.java +738 -622
  47. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +186 -143
  48. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +81 -59
  49. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +66 -49
  50. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +86 -69
  51. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +44 -29
  52. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +121 -48
  53. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +34 -22
  54. data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +25 -17
  55. data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +57 -42
  56. data/ext/java/nokogiri/internals/ParserContext.java +206 -179
  57. data/ext/java/nokogiri/internals/ReaderNode.java +478 -371
  58. data/ext/java/nokogiri/internals/SaveContextVisitor.java +822 -707
  59. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +28 -19
  60. data/ext/java/nokogiri/internals/XalanDTMManagerPatch.java +129 -123
  61. data/ext/java/nokogiri/internals/XmlDeclHandler.java +5 -4
  62. data/ext/java/nokogiri/internals/XmlDomParserContext.java +208 -177
  63. data/ext/java/nokogiri/internals/XmlSaxParser.java +24 -17
  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 -570
  93. data/ext/nokogiri/depend +37 -358
  94. data/ext/nokogiri/extconf.rb +585 -374
  95. data/ext/nokogiri/html_document.c +78 -82
  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 +69 -66
  99. data/ext/nokogiri/html_sax_push_parser.c +42 -34
  100. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  101. data/ext/nokogiri/nokogiri.c +192 -93
  102. data/ext/nokogiri/test_global_handlers.c +40 -0
  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 +225 -163
  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 +338 -286
  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 +195 -172
  120. data/ext/nokogiri/xml_relax_ng.c +52 -28
  121. data/ext/nokogiri/xml_sax_parser.c +118 -118
  122. data/ext/nokogiri/xml_sax_parser_context.c +103 -86
  123. data/ext/nokogiri/xml_sax_push_parser.c +36 -27
  124. data/ext/nokogiri/xml_schema.c +111 -34
  125. data/ext/nokogiri/xml_syntax_error.c +42 -21
  126. data/ext/nokogiri/xml_text.c +13 -17
  127. data/ext/nokogiri/xml_xpath_context.c +206 -123
  128. data/ext/nokogiri/xslt_stylesheet.c +158 -161
  129. data/lib/nokogiri.rb +4 -8
  130. data/lib/nokogiri/css/parser.rb +62 -62
  131. data/lib/nokogiri/css/parser.y +2 -2
  132. data/lib/nokogiri/css/parser_extras.rb +38 -36
  133. data/lib/nokogiri/css/xpath_visitor.rb +70 -42
  134. data/lib/nokogiri/extension.rb +26 -0
  135. data/lib/nokogiri/html/document.rb +12 -26
  136. data/lib/nokogiri/html/document_fragment.rb +15 -15
  137. data/lib/nokogiri/nokogiri.jar +0 -0
  138. data/lib/nokogiri/version.rb +2 -148
  139. data/lib/nokogiri/version/constant.rb +5 -0
  140. data/lib/nokogiri/version/info.rb +205 -0
  141. data/lib/nokogiri/xml/builder.rb +2 -2
  142. data/lib/nokogiri/xml/document.rb +48 -18
  143. data/lib/nokogiri/xml/document_fragment.rb +4 -6
  144. data/lib/nokogiri/xml/node.rb +599 -279
  145. data/lib/nokogiri/xml/parse_options.rb +6 -0
  146. data/lib/nokogiri/xml/reader.rb +2 -9
  147. data/lib/nokogiri/xml/relax_ng.rb +6 -2
  148. data/lib/nokogiri/xml/schema.rb +12 -4
  149. data/lib/nokogiri/xml/searchable.rb +24 -16
  150. data/lib/nokogiri/xml/xpath.rb +1 -3
  151. data/lib/nokogiri/xml/xpath/syntax_error.rb +1 -1
  152. metadata +87 -158
  153. data/ext/nokogiri/html_document.h +0 -10
  154. data/ext/nokogiri/html_element_description.h +0 -10
  155. data/ext/nokogiri/html_entity_lookup.h +0 -8
  156. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  157. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  158. data/ext/nokogiri/nokogiri.h +0 -122
  159. data/ext/nokogiri/xml_attr.h +0 -9
  160. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  161. data/ext/nokogiri/xml_cdata.h +0 -9
  162. data/ext/nokogiri/xml_comment.h +0 -9
  163. data/ext/nokogiri/xml_document.h +0 -23
  164. data/ext/nokogiri/xml_document_fragment.h +0 -10
  165. data/ext/nokogiri/xml_dtd.h +0 -10
  166. data/ext/nokogiri/xml_element_content.h +0 -10
  167. data/ext/nokogiri/xml_element_decl.h +0 -9
  168. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  169. data/ext/nokogiri/xml_entity_decl.h +0 -10
  170. data/ext/nokogiri/xml_entity_reference.h +0 -9
  171. data/ext/nokogiri/xml_io.c +0 -61
  172. data/ext/nokogiri/xml_io.h +0 -11
  173. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  174. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  175. data/ext/nokogiri/xml_namespace.h +0 -14
  176. data/ext/nokogiri/xml_node.h +0 -13
  177. data/ext/nokogiri/xml_node_set.h +0 -12
  178. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  179. data/ext/nokogiri/xml_reader.h +0 -10
  180. data/ext/nokogiri/xml_relax_ng.h +0 -9
  181. data/ext/nokogiri/xml_sax_parser.h +0 -39
  182. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  183. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  184. data/ext/nokogiri/xml_schema.h +0 -9
  185. data/ext/nokogiri/xml_syntax_error.h +0 -13
  186. data/ext/nokogiri/xml_text.h +0 -9
  187. data/ext/nokogiri/xml_xpath_context.h +0 -10
  188. data/ext/nokogiri/xslt_stylesheet.h +0 -14
@@ -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
  }