mini-pro-gem 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. checksums.yaml +7 -0
  2. data/mini-pro-gem.gemspec +12 -0
  3. data/nokogiri-1.19.4/Gemfile +40 -0
  4. data/nokogiri-1.19.4/LICENSE-DEPENDENCIES.md +2411 -0
  5. data/nokogiri-1.19.4/LICENSE.md +9 -0
  6. data/nokogiri-1.19.4/README.md +308 -0
  7. data/nokogiri-1.19.4/bin/nokogiri +131 -0
  8. data/nokogiri-1.19.4/dependencies.yml +31 -0
  9. data/nokogiri-1.19.4/ext/nokogiri/depend +38 -0
  10. data/nokogiri-1.19.4/ext/nokogiri/extconf.rb +1165 -0
  11. data/nokogiri-1.19.4/ext/nokogiri/gumbo.c +610 -0
  12. data/nokogiri-1.19.4/ext/nokogiri/html4_document.c +171 -0
  13. data/nokogiri-1.19.4/ext/nokogiri/html4_element_description.c +299 -0
  14. data/nokogiri-1.19.4/ext/nokogiri/html4_entity_lookup.c +37 -0
  15. data/nokogiri-1.19.4/ext/nokogiri/html4_sax_parser.c +40 -0
  16. data/nokogiri-1.19.4/ext/nokogiri/html4_sax_parser_context.c +98 -0
  17. data/nokogiri-1.19.4/ext/nokogiri/html4_sax_push_parser.c +96 -0
  18. data/nokogiri-1.19.4/ext/nokogiri/libxml2_polyfill.c +114 -0
  19. data/nokogiri-1.19.4/ext/nokogiri/nokogiri.c +297 -0
  20. data/nokogiri-1.19.4/ext/nokogiri/nokogiri.h +247 -0
  21. data/nokogiri-1.19.4/ext/nokogiri/test_global_handlers.c +40 -0
  22. data/nokogiri-1.19.4/ext/nokogiri/xml_attr.c +108 -0
  23. data/nokogiri-1.19.4/ext/nokogiri/xml_attribute_decl.c +70 -0
  24. data/nokogiri-1.19.4/ext/nokogiri/xml_cdata.c +62 -0
  25. data/nokogiri-1.19.4/ext/nokogiri/xml_comment.c +57 -0
  26. data/nokogiri-1.19.4/ext/nokogiri/xml_document.c +796 -0
  27. data/nokogiri-1.19.4/ext/nokogiri/xml_document_fragment.c +29 -0
  28. data/nokogiri-1.19.4/ext/nokogiri/xml_dtd.c +208 -0
  29. data/nokogiri-1.19.4/ext/nokogiri/xml_element_content.c +131 -0
  30. data/nokogiri-1.19.4/ext/nokogiri/xml_element_decl.c +69 -0
  31. data/nokogiri-1.19.4/ext/nokogiri/xml_encoding_handler.c +112 -0
  32. data/nokogiri-1.19.4/ext/nokogiri/xml_entity_decl.c +112 -0
  33. data/nokogiri-1.19.4/ext/nokogiri/xml_entity_reference.c +50 -0
  34. data/nokogiri-1.19.4/ext/nokogiri/xml_namespace.c +181 -0
  35. data/nokogiri-1.19.4/ext/nokogiri/xml_node.c +2523 -0
  36. data/nokogiri-1.19.4/ext/nokogiri/xml_node_set.c +518 -0
  37. data/nokogiri-1.19.4/ext/nokogiri/xml_processing_instruction.c +54 -0
  38. data/nokogiri-1.19.4/ext/nokogiri/xml_reader.c +777 -0
  39. data/nokogiri-1.19.4/ext/nokogiri/xml_relax_ng.c +149 -0
  40. data/nokogiri-1.19.4/ext/nokogiri/xml_sax_parser.c +403 -0
  41. data/nokogiri-1.19.4/ext/nokogiri/xml_sax_parser_context.c +396 -0
  42. data/nokogiri-1.19.4/ext/nokogiri/xml_sax_push_parser.c +206 -0
  43. data/nokogiri-1.19.4/ext/nokogiri/xml_schema.c +226 -0
  44. data/nokogiri-1.19.4/ext/nokogiri/xml_syntax_error.c +93 -0
  45. data/nokogiri-1.19.4/ext/nokogiri/xml_text.c +59 -0
  46. data/nokogiri-1.19.4/ext/nokogiri/xml_xpath_context.c +496 -0
  47. data/nokogiri-1.19.4/ext/nokogiri/xslt_stylesheet.c +457 -0
  48. data/nokogiri-1.19.4/gumbo-parser/CHANGES.md +63 -0
  49. data/nokogiri-1.19.4/gumbo-parser/Makefile +129 -0
  50. data/nokogiri-1.19.4/gumbo-parser/THANKS +27 -0
  51. data/nokogiri-1.19.4/gumbo-parser/src/Makefile +34 -0
  52. data/nokogiri-1.19.4/gumbo-parser/src/README.md +41 -0
  53. data/nokogiri-1.19.4/gumbo-parser/src/ascii.c +75 -0
  54. data/nokogiri-1.19.4/gumbo-parser/src/ascii.h +115 -0
  55. data/nokogiri-1.19.4/gumbo-parser/src/attribute.c +42 -0
  56. data/nokogiri-1.19.4/gumbo-parser/src/attribute.h +17 -0
  57. data/nokogiri-1.19.4/gumbo-parser/src/char_ref.c +22225 -0
  58. data/nokogiri-1.19.4/gumbo-parser/src/char_ref.h +29 -0
  59. data/nokogiri-1.19.4/gumbo-parser/src/char_ref.rl +2154 -0
  60. data/nokogiri-1.19.4/gumbo-parser/src/error.c +658 -0
  61. data/nokogiri-1.19.4/gumbo-parser/src/error.h +152 -0
  62. data/nokogiri-1.19.4/gumbo-parser/src/foreign_attrs.c +103 -0
  63. data/nokogiri-1.19.4/gumbo-parser/src/foreign_attrs.gperf +27 -0
  64. data/nokogiri-1.19.4/gumbo-parser/src/insertion_mode.h +33 -0
  65. data/nokogiri-1.19.4/gumbo-parser/src/macros.h +91 -0
  66. data/nokogiri-1.19.4/gumbo-parser/src/nokogiri_gumbo.h +953 -0
  67. data/nokogiri-1.19.4/gumbo-parser/src/parser.c +4932 -0
  68. data/nokogiri-1.19.4/gumbo-parser/src/parser.h +41 -0
  69. data/nokogiri-1.19.4/gumbo-parser/src/replacement.h +33 -0
  70. data/nokogiri-1.19.4/gumbo-parser/src/string_buffer.c +103 -0
  71. data/nokogiri-1.19.4/gumbo-parser/src/string_buffer.h +68 -0
  72. data/nokogiri-1.19.4/gumbo-parser/src/string_piece.c +48 -0
  73. data/nokogiri-1.19.4/gumbo-parser/src/svg_attrs.c +174 -0
  74. data/nokogiri-1.19.4/gumbo-parser/src/svg_attrs.gperf +77 -0
  75. data/nokogiri-1.19.4/gumbo-parser/src/svg_tags.c +137 -0
  76. data/nokogiri-1.19.4/gumbo-parser/src/svg_tags.gperf +55 -0
  77. data/nokogiri-1.19.4/gumbo-parser/src/tag.c +223 -0
  78. data/nokogiri-1.19.4/gumbo-parser/src/tag_lookup.c +382 -0
  79. data/nokogiri-1.19.4/gumbo-parser/src/tag_lookup.gperf +170 -0
  80. data/nokogiri-1.19.4/gumbo-parser/src/tag_lookup.h +13 -0
  81. data/nokogiri-1.19.4/gumbo-parser/src/token_buffer.c +79 -0
  82. data/nokogiri-1.19.4/gumbo-parser/src/token_buffer.h +71 -0
  83. data/nokogiri-1.19.4/gumbo-parser/src/token_type.h +17 -0
  84. data/nokogiri-1.19.4/gumbo-parser/src/tokenizer.c +3464 -0
  85. data/nokogiri-1.19.4/gumbo-parser/src/tokenizer.h +112 -0
  86. data/nokogiri-1.19.4/gumbo-parser/src/tokenizer_states.h +339 -0
  87. data/nokogiri-1.19.4/gumbo-parser/src/utf8.c +245 -0
  88. data/nokogiri-1.19.4/gumbo-parser/src/utf8.h +164 -0
  89. data/nokogiri-1.19.4/gumbo-parser/src/util.c +66 -0
  90. data/nokogiri-1.19.4/gumbo-parser/src/util.h +34 -0
  91. data/nokogiri-1.19.4/gumbo-parser/src/vector.c +111 -0
  92. data/nokogiri-1.19.4/gumbo-parser/src/vector.h +45 -0
  93. data/nokogiri-1.19.4/lib/nokogiri/class_resolver.rb +65 -0
  94. data/nokogiri-1.19.4/lib/nokogiri/css/node.rb +58 -0
  95. data/nokogiri-1.19.4/lib/nokogiri/css/parser.rb +772 -0
  96. data/nokogiri-1.19.4/lib/nokogiri/css/parser.y +277 -0
  97. data/nokogiri-1.19.4/lib/nokogiri/css/parser_extras.rb +36 -0
  98. data/nokogiri-1.19.4/lib/nokogiri/css/selector_cache.rb +38 -0
  99. data/nokogiri-1.19.4/lib/nokogiri/css/syntax_error.rb +9 -0
  100. data/nokogiri-1.19.4/lib/nokogiri/css/tokenizer.rb +155 -0
  101. data/nokogiri-1.19.4/lib/nokogiri/css/tokenizer.rex +57 -0
  102. data/nokogiri-1.19.4/lib/nokogiri/css/xpath_visitor.rb +376 -0
  103. data/nokogiri-1.19.4/lib/nokogiri/css.rb +132 -0
  104. data/nokogiri-1.19.4/lib/nokogiri/decorators/slop.rb +42 -0
  105. data/nokogiri-1.19.4/lib/nokogiri/encoding_handler.rb +57 -0
  106. data/nokogiri-1.19.4/lib/nokogiri/extension.rb +32 -0
  107. data/nokogiri-1.19.4/lib/nokogiri/gumbo.rb +15 -0
  108. data/nokogiri-1.19.4/lib/nokogiri/html.rb +48 -0
  109. data/nokogiri-1.19.4/lib/nokogiri/html4/builder.rb +37 -0
  110. data/nokogiri-1.19.4/lib/nokogiri/html4/document.rb +235 -0
  111. data/nokogiri-1.19.4/lib/nokogiri/html4/document_fragment.rb +166 -0
  112. data/nokogiri-1.19.4/lib/nokogiri/html4/element_description.rb +25 -0
  113. data/nokogiri-1.19.4/lib/nokogiri/html4/element_description_defaults.rb +2040 -0
  114. data/nokogiri-1.19.4/lib/nokogiri/html4/encoding_reader.rb +121 -0
  115. data/nokogiri-1.19.4/lib/nokogiri/html4/entity_lookup.rb +15 -0
  116. data/nokogiri-1.19.4/lib/nokogiri/html4/sax/parser.rb +48 -0
  117. data/nokogiri-1.19.4/lib/nokogiri/html4/sax/parser_context.rb +15 -0
  118. data/nokogiri-1.19.4/lib/nokogiri/html4/sax/push_parser.rb +37 -0
  119. data/nokogiri-1.19.4/lib/nokogiri/html4.rb +42 -0
  120. data/nokogiri-1.19.4/lib/nokogiri/html5/builder.rb +40 -0
  121. data/nokogiri-1.19.4/lib/nokogiri/html5/document.rb +199 -0
  122. data/nokogiri-1.19.4/lib/nokogiri/html5/document_fragment.rb +200 -0
  123. data/nokogiri-1.19.4/lib/nokogiri/html5/node.rb +103 -0
  124. data/nokogiri-1.19.4/lib/nokogiri/html5.rb +368 -0
  125. data/nokogiri-1.19.4/lib/nokogiri/jruby/dependencies.rb +3 -0
  126. data/nokogiri-1.19.4/lib/nokogiri/jruby/nokogiri_jars.rb +48 -0
  127. data/nokogiri-1.19.4/lib/nokogiri/syntax_error.rb +6 -0
  128. data/nokogiri-1.19.4/lib/nokogiri/version/constant.rb +6 -0
  129. data/nokogiri-1.19.4/lib/nokogiri/version/info.rb +234 -0
  130. data/nokogiri-1.19.4/lib/nokogiri/version.rb +4 -0
  131. data/nokogiri-1.19.4/lib/nokogiri/xml/attr.rb +66 -0
  132. data/nokogiri-1.19.4/lib/nokogiri/xml/attribute_decl.rb +22 -0
  133. data/nokogiri-1.19.4/lib/nokogiri/xml/builder.rb +494 -0
  134. data/nokogiri-1.19.4/lib/nokogiri/xml/cdata.rb +13 -0
  135. data/nokogiri-1.19.4/lib/nokogiri/xml/character_data.rb +9 -0
  136. data/nokogiri-1.19.4/lib/nokogiri/xml/document.rb +515 -0
  137. data/nokogiri-1.19.4/lib/nokogiri/xml/document_fragment.rb +276 -0
  138. data/nokogiri-1.19.4/lib/nokogiri/xml/dtd.rb +34 -0
  139. data/nokogiri-1.19.4/lib/nokogiri/xml/element_content.rb +46 -0
  140. data/nokogiri-1.19.4/lib/nokogiri/xml/element_decl.rb +17 -0
  141. data/nokogiri-1.19.4/lib/nokogiri/xml/entity_decl.rb +23 -0
  142. data/nokogiri-1.19.4/lib/nokogiri/xml/entity_reference.rb +20 -0
  143. data/nokogiri-1.19.4/lib/nokogiri/xml/namespace.rb +57 -0
  144. data/nokogiri-1.19.4/lib/nokogiri/xml/node/save_options.rb +76 -0
  145. data/nokogiri-1.19.4/lib/nokogiri/xml/node.rb +1701 -0
  146. data/nokogiri-1.19.4/lib/nokogiri/xml/node_set.rb +449 -0
  147. data/nokogiri-1.19.4/lib/nokogiri/xml/notation.rb +19 -0
  148. data/nokogiri-1.19.4/lib/nokogiri/xml/parse_options.rb +217 -0
  149. data/nokogiri-1.19.4/lib/nokogiri/xml/pp/character_data.rb +21 -0
  150. data/nokogiri-1.19.4/lib/nokogiri/xml/pp/node.rb +73 -0
  151. data/nokogiri-1.19.4/lib/nokogiri/xml/pp.rb +4 -0
  152. data/nokogiri-1.19.4/lib/nokogiri/xml/processing_instruction.rb +11 -0
  153. data/nokogiri-1.19.4/lib/nokogiri/xml/reader.rb +139 -0
  154. data/nokogiri-1.19.4/lib/nokogiri/xml/relax_ng.rb +75 -0
  155. data/nokogiri-1.19.4/lib/nokogiri/xml/sax/document.rb +258 -0
  156. data/nokogiri-1.19.4/lib/nokogiri/xml/sax/parser.rb +199 -0
  157. data/nokogiri-1.19.4/lib/nokogiri/xml/sax/parser_context.rb +129 -0
  158. data/nokogiri-1.19.4/lib/nokogiri/xml/sax/push_parser.rb +64 -0
  159. data/nokogiri-1.19.4/lib/nokogiri/xml/sax.rb +54 -0
  160. data/nokogiri-1.19.4/lib/nokogiri/xml/schema.rb +140 -0
  161. data/nokogiri-1.19.4/lib/nokogiri/xml/searchable.rb +274 -0
  162. data/nokogiri-1.19.4/lib/nokogiri/xml/syntax_error.rb +94 -0
  163. data/nokogiri-1.19.4/lib/nokogiri/xml/text.rb +11 -0
  164. data/nokogiri-1.19.4/lib/nokogiri/xml/xpath/syntax_error.rb +13 -0
  165. data/nokogiri-1.19.4/lib/nokogiri/xml/xpath.rb +21 -0
  166. data/nokogiri-1.19.4/lib/nokogiri/xml/xpath_context.rb +27 -0
  167. data/nokogiri-1.19.4/lib/nokogiri/xml.rb +65 -0
  168. data/nokogiri-1.19.4/lib/nokogiri/xslt/stylesheet.rb +54 -0
  169. data/nokogiri-1.19.4/lib/nokogiri/xslt.rb +138 -0
  170. data/nokogiri-1.19.4/lib/nokogiri.rb +128 -0
  171. data/nokogiri-1.19.4/lib/xsd/xmlparser/nokogiri.rb +105 -0
  172. data/nokogiri-1.19.4/patches/libxml2/0001-Remove-script-macro-support.patch +40 -0
  173. data/nokogiri-1.19.4/patches/libxml2/0002-Update-entities-to-remove-handling-of-ssi.patch +44 -0
  174. data/nokogiri-1.19.4/patches/libxml2/0009-allow-wildcard-namespaces.patch +77 -0
  175. data/nokogiri-1.19.4/patches/libxml2/0010-update-config.guess-and-config.sub-for-libxml2.patch +224 -0
  176. data/nokogiri-1.19.4/patches/libxml2/0011-rip-out-libxml2-s-libc_single_threaded-support.patch +30 -0
  177. data/nokogiri-1.19.4/patches/libxml2/0019-xpath-Use-separate-static-hash-table-for-standard-fu.patch +244 -0
  178. data/nokogiri-1.19.4/patches/libxslt/0001-update-config.guess-and-config.sub-for-libxslt.patch +224 -0
  179. data/nokogiri-1.19.4/ports/archives/libxml2-2.13.9.tar.xz +0 -0
  180. data/nokogiri-1.19.4/ports/archives/libxslt-1.1.43.tar.xz +0 -0
  181. metadata +220 -0
@@ -0,0 +1,48 @@
1
+ # this is a generated file, to avoid over-writing it just delete this comment
2
+ begin
3
+ require 'jar_dependencies'
4
+ rescue LoadError
5
+ require 'isorelax/isorelax/20030108/isorelax-20030108.jar'
6
+ require 'org/nokogiri/nekodtd/0.1.11.noko2/nekodtd-0.1.11.noko2.jar'
7
+ require 'net/sourceforge/htmlunit/neko-htmlunit/2.63.0/neko-htmlunit-2.63.0.jar'
8
+ require 'net/sf/saxon/Saxon-HE/12.7/Saxon-HE-12.7.jar'
9
+ require 'org/xmlresolver/xmlresolver/5.3.3/xmlresolver-5.3.3.jar'
10
+ require 'org/xmlresolver/xmlresolver/5.3.3/xmlresolver-5.3.3-data.jar'
11
+ require 'nu/validator/jing/20200702VNU/jing-20200702VNU.jar'
12
+ require 'xalan/serializer/2.7.3/serializer-2.7.3.jar'
13
+ require 'xalan/xalan/2.7.3/xalan-2.7.3.jar'
14
+ require 'xerces/xercesImpl/2.12.2/xercesImpl-2.12.2.jar'
15
+ require 'xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar'
16
+ end
17
+
18
+ if defined? Jars
19
+ require_jar 'isorelax', 'isorelax', '20030108'
20
+ require_jar 'org.nokogiri', 'nekodtd', '0.1.11.noko2'
21
+ require_jar 'net.sourceforge.htmlunit', 'neko-htmlunit', '2.63.0'
22
+ require_jar 'net.sf.saxon', 'Saxon-HE', '12.7'
23
+ require_jar 'org.xmlresolver', 'xmlresolver', '5.3.3'
24
+ require_jar 'org.xmlresolver', 'xmlresolver', 'data', '5.3.3'
25
+ require_jar 'nu.validator', 'jing', '20200702VNU'
26
+ require_jar 'xalan', 'serializer', '2.7.3'
27
+ require_jar 'xalan', 'xalan', '2.7.3'
28
+ require_jar 'xerces', 'xercesImpl', '2.12.2'
29
+ require_jar 'xml-apis', 'xml-apis', '1.4.01'
30
+ end
31
+
32
+ module Nokogiri
33
+ # generated by the :vendor_jars rake task
34
+ JAR_DEPENDENCIES = {
35
+ "isorelax:isorelax" => "20030108",
36
+ "net.sf.saxon:Saxon-HE" => "12.7",
37
+ "net.sourceforge.htmlunit:neko-htmlunit" => "2.63.0",
38
+ "nu.validator:jing" => "20200702VNU",
39
+ "org.nokogiri:nekodtd" => "0.1.11.noko2",
40
+ "org.xmlresolver:xmlresolver" => "5.3.3",
41
+ "xalan:serializer" => "2.7.3",
42
+ "xalan:xalan" => "2.7.3",
43
+ "xerces:xercesImpl" => "2.12.2",
44
+ "xml-apis:xml-apis" => "1.4.01",
45
+ }.freeze
46
+ XERCES_VERSION = JAR_DEPENDENCIES["xerces:xercesImpl"]
47
+ NEKO_VERSION = JAR_DEPENDENCIES["net.sourceforge.htmlunit:neko-htmlunit"]
48
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nokogiri
4
+ class SyntaxError < ::StandardError
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nokogiri
4
+ # The version of Nokogiri you are using
5
+ VERSION = "1.19.4"
6
+ end
@@ -0,0 +1,234 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "singleton"
4
+ require "shellwords"
5
+
6
+ module Nokogiri
7
+ class VersionInfo # :nodoc:
8
+ include Singleton
9
+
10
+ def jruby?
11
+ ::JRUBY_VERSION if ::RUBY_PLATFORM == "java"
12
+ end
13
+
14
+ def windows?
15
+ ::RUBY_PLATFORM =~ /mingw|mswin/
16
+ end
17
+
18
+ def ruby_minor
19
+ Gem::Version.new(::RUBY_VERSION).segments[0..1].join(".")
20
+ end
21
+
22
+ def engine
23
+ defined?(::RUBY_ENGINE) ? ::RUBY_ENGINE : "mri"
24
+ end
25
+
26
+ def loaded_libxml_version
27
+ Gem::Version.new(Nokogiri::LIBXML_LOADED_VERSION
28
+ .scan(/^(\d+)(\d\d)(\d\d)(?!\d)/).first
29
+ .collect(&:to_i)
30
+ .join("."))
31
+ end
32
+
33
+ def compiled_libxml_version
34
+ Gem::Version.new(Nokogiri::LIBXML_COMPILED_VERSION)
35
+ end
36
+
37
+ def loaded_libxslt_version
38
+ Gem::Version.new(Nokogiri::LIBXSLT_LOADED_VERSION
39
+ .scan(/^(\d+)(\d\d)(\d\d)(?!\d)/).first
40
+ .collect(&:to_i)
41
+ .join("."))
42
+ end
43
+
44
+ def compiled_libxslt_version
45
+ Gem::Version.new(Nokogiri::LIBXSLT_COMPILED_VERSION)
46
+ end
47
+
48
+ def libxml2?
49
+ defined?(Nokogiri::LIBXML_COMPILED_VERSION)
50
+ end
51
+
52
+ def libxml2_has_iconv?
53
+ defined?(Nokogiri::LIBXML_ICONV_ENABLED) && Nokogiri::LIBXML_ICONV_ENABLED
54
+ end
55
+
56
+ def libxml2_has_zlib?
57
+ defined?(Nokogiri::LIBXML_ZLIB_ENABLED) && Nokogiri::LIBXML_ZLIB_ENABLED
58
+ end
59
+
60
+ def libxml2_has_http?
61
+ defined?(Nokogiri::LIBXML_HTTP_ENABLED) && Nokogiri::LIBXML_HTTP_ENABLED
62
+ end
63
+
64
+ def libxslt_has_datetime?
65
+ defined?(Nokogiri::LIBXSLT_DATETIME_ENABLED) && Nokogiri::LIBXSLT_DATETIME_ENABLED
66
+ end
67
+
68
+ def libxml2_using_packaged?
69
+ libxml2? && Nokogiri::PACKAGED_LIBRARIES
70
+ end
71
+
72
+ def libxml2_using_system?
73
+ libxml2? && !libxml2_using_packaged?
74
+ end
75
+
76
+ def libxml2_precompiled?
77
+ libxml2_using_packaged? && Nokogiri::PRECOMPILED_LIBRARIES
78
+ end
79
+
80
+ def warnings
81
+ warnings = []
82
+
83
+ if libxml2?
84
+ if compiled_libxml_version != loaded_libxml_version
85
+ warnings << "Nokogiri was built against libxml version #{compiled_libxml_version}, but has dynamically loaded #{loaded_libxml_version}"
86
+ end
87
+
88
+ if compiled_libxslt_version != loaded_libxslt_version
89
+ warnings << "Nokogiri was built against libxslt version #{compiled_libxslt_version}, but has dynamically loaded #{loaded_libxslt_version}"
90
+ end
91
+ end
92
+
93
+ warnings
94
+ end
95
+
96
+ def to_hash
97
+ header_directory = File.expand_path(File.join(File.dirname(__FILE__), "../../../ext/nokogiri"))
98
+
99
+ {}.tap do |vi|
100
+ vi["warnings"] = []
101
+ vi["nokogiri"] = {}.tap do |nokogiri|
102
+ nokogiri["version"] = Nokogiri::VERSION
103
+
104
+ unless jruby?
105
+ # enable gems to build against Nokogiri with the following in their extconf.rb:
106
+ #
107
+ # append_cflags(Nokogiri::VERSION_INFO["nokogiri"]["cppflags"])
108
+ # append_ldflags(Nokogiri::VERSION_INFO["nokogiri"]["ldflags"])
109
+ #
110
+ # though, this won't work on all platform and versions of Ruby, and won't be supported
111
+ # forever, see https://github.com/sparklemotion/nokogiri/discussions/2746 for context.
112
+ #
113
+ cppflags = ["-I#{header_directory.shellescape}"]
114
+ ldflags = []
115
+
116
+ if libxml2_using_packaged?
117
+ cppflags << "-I#{File.join(header_directory, "include").shellescape}"
118
+ cppflags << "-I#{File.join(header_directory, "include/libxml2").shellescape}"
119
+ end
120
+
121
+ if windows?
122
+ # on windows, third party libraries that wish to link against nokogiri
123
+ # should link against nokogiri.so to resolve symbols. see #2167
124
+ lib_directory = File.expand_path(File.join(File.dirname(__FILE__), "../#{ruby_minor}"))
125
+ unless File.exist?(lib_directory)
126
+ lib_directory = File.expand_path(File.join(File.dirname(__FILE__), ".."))
127
+ end
128
+ ldflags << "-L#{lib_directory.shellescape}"
129
+ ldflags << "-l:nokogiri.so"
130
+ end
131
+
132
+ nokogiri["cppflags"] = cppflags
133
+ nokogiri["ldflags"] = ldflags
134
+ end
135
+ end
136
+ vi["ruby"] = {}.tap do |ruby|
137
+ ruby["version"] = ::RUBY_VERSION
138
+ ruby["platform"] = ::RUBY_PLATFORM
139
+ ruby["gem_platform"] = ::Gem::Platform.local.to_s
140
+ ruby["description"] = ::RUBY_DESCRIPTION
141
+ ruby["engine"] = engine
142
+ ruby["jruby"] = jruby? if jruby?
143
+ end
144
+
145
+ if libxml2?
146
+ vi["libxml"] = {}.tap do |libxml|
147
+ if libxml2_using_packaged?
148
+ libxml["source"] = "packaged"
149
+ libxml["precompiled"] = libxml2_precompiled?
150
+ libxml["patches"] = Nokogiri::LIBXML2_PATCHES
151
+ else
152
+ libxml["source"] = "system"
153
+ end
154
+ libxml["memory_management"] = Nokogiri::LIBXML_MEMORY_MANAGEMENT
155
+ libxml["iconv_enabled"] = libxml2_has_iconv?
156
+ libxml["zlib_enabled"] = libxml2_has_zlib?
157
+ libxml["http_enabled"] = libxml2_has_http?
158
+ libxml["compiled"] = compiled_libxml_version.to_s
159
+ libxml["loaded"] = loaded_libxml_version.to_s
160
+ end
161
+
162
+ vi["libxslt"] = {}.tap do |libxslt|
163
+ if libxml2_using_packaged?
164
+ libxslt["source"] = "packaged"
165
+ libxslt["precompiled"] = libxml2_precompiled?
166
+ libxslt["patches"] = Nokogiri::LIBXSLT_PATCHES
167
+ else
168
+ libxslt["source"] = "system"
169
+ end
170
+ libxslt["datetime_enabled"] = libxslt_has_datetime?
171
+ libxslt["compiled"] = compiled_libxslt_version.to_s
172
+ libxslt["loaded"] = loaded_libxslt_version.to_s
173
+ end
174
+
175
+ vi["warnings"] = warnings
176
+ end
177
+
178
+ if defined?(Nokogiri::OTHER_LIBRARY_VERSIONS)
179
+ # see extconf for how this string is assembled: "lib1name:lib1version,lib2name:lib2version"
180
+ vi["other_libraries"] = Hash[*Nokogiri::OTHER_LIBRARY_VERSIONS.split(/[,:]/)]
181
+ elsif jruby?
182
+ vi["other_libraries"] = {}.tap do |ol|
183
+ Nokogiri::JAR_DEPENDENCIES.each do |k, v|
184
+ ol[k] = v
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
190
+
191
+ def to_markdown
192
+ require "yaml"
193
+ "# Nokogiri (#{Nokogiri::VERSION})\n" +
194
+ YAML.dump(to_hash).each_line.map { |line| " #{line}" }.join
195
+ end
196
+
197
+ instance.warnings.each do |warning|
198
+ warn "WARNING: #{warning}"
199
+ end
200
+ end
201
+
202
+ # :nodoc:
203
+ def self.uses_libxml?(requirement = nil)
204
+ return false unless VersionInfo.instance.libxml2?
205
+ return true unless requirement
206
+
207
+ Gem::Requirement.new(requirement).satisfied_by?(VersionInfo.instance.loaded_libxml_version)
208
+ end
209
+
210
+ # :nodoc:
211
+ def self.uses_gumbo?
212
+ uses_libxml? # TODO: replace with Gumbo functionality
213
+ end
214
+
215
+ # :nodoc:
216
+ def self.jruby?
217
+ VersionInfo.instance.jruby?
218
+ end
219
+
220
+ # :nodoc:
221
+ def self.libxml2_patches
222
+ if VersionInfo.instance.libxml2_using_packaged?
223
+ Nokogiri::VERSION_INFO["libxml"]["patches"]
224
+ else
225
+ []
226
+ end
227
+ end
228
+
229
+ require_relative "../jruby/dependencies" if Nokogiri.jruby?
230
+ require_relative "../extension"
231
+
232
+ # Detailed version info about Nokogiri and the installed extension dependencies.
233
+ VERSION_INFO = VersionInfo.instance.to_hash
234
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "version/constant"
4
+ require_relative "version/info"
@@ -0,0 +1,66 @@
1
+ # coding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ module Nokogiri
5
+ module XML
6
+ class Attr < Node
7
+ alias_method :value, :content
8
+ alias_method :to_s, :content
9
+ alias_method :content=, :value=
10
+
11
+ #
12
+ # :call-seq: deconstruct_keys(array_of_names) → Hash
13
+ #
14
+ # Returns a hash describing the Attr, to use in pattern matching.
15
+ #
16
+ # Valid keys and their values:
17
+ # - +name+ → (String) The name of the attribute.
18
+ # - +value+ → (String) The value of the attribute.
19
+ # - +namespace+ → (Namespace, nil) The Namespace of the attribute, or +nil+ if there is no namespace.
20
+ #
21
+ # *Example*
22
+ #
23
+ # doc = Nokogiri::XML.parse(<<~XML)
24
+ # <?xml version="1.0"?>
25
+ # <root xmlns="http://nokogiri.org/ns/default" xmlns:noko="http://nokogiri.org/ns/noko">
26
+ # <child1 foo="abc" noko:bar="def"/>
27
+ # </root>
28
+ # XML
29
+ #
30
+ # attributes = doc.root.elements.first.attribute_nodes
31
+ # # => [#(Attr:0x35c { name = "foo", value = "abc" }),
32
+ # # #(Attr:0x370 {
33
+ # # name = "bar",
34
+ # # namespace = #(Namespace:0x384 {
35
+ # # prefix = "noko",
36
+ # # href = "http://nokogiri.org/ns/noko"
37
+ # # }),
38
+ # # value = "def"
39
+ # # })]
40
+ #
41
+ # attributes.first.deconstruct_keys([:name, :value, :namespace])
42
+ # # => {:name=>"foo", :value=>"abc", :namespace=>nil}
43
+ #
44
+ # attributes.last.deconstruct_keys([:name, :value, :namespace])
45
+ # # => {:name=>"bar",
46
+ # # :value=>"def",
47
+ # # :namespace=>
48
+ # # #(Namespace:0x384 {
49
+ # # prefix = "noko",
50
+ # # href = "http://nokogiri.org/ns/noko"
51
+ # # })}
52
+ #
53
+ # Since v1.14.0
54
+ #
55
+ def deconstruct_keys(keys)
56
+ { name: name, value: value, namespace: namespace }
57
+ end
58
+
59
+ private
60
+
61
+ def inspect_attributes
62
+ [:name, :namespace, :value]
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nokogiri
4
+ module XML
5
+ ###
6
+ # Represents an attribute declaration in a DTD
7
+ class AttributeDecl < Nokogiri::XML::Node
8
+ undef_method :attribute_nodes
9
+ undef_method :attributes
10
+ undef_method :content
11
+ undef_method :namespace
12
+ undef_method :namespace_definitions
13
+ undef_method :line if method_defined?(:line)
14
+
15
+ private
16
+
17
+ def inspect_attributes
18
+ [:to_s]
19
+ end
20
+ end
21
+ end
22
+ end