checkoff 0.223.0 → 0.226.0

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 (228) hide show
  1. checksums.yaml +4 -4
  2. data/checkoff.gemspec +10 -5
  3. data/lib/checkoff/attachments.rb +1 -1
  4. data/lib/checkoff/cli.rb +1 -1
  5. data/lib/checkoff/clients.rb +1 -1
  6. data/lib/checkoff/custom_fields.rb +1 -1
  7. data/lib/checkoff/events.rb +1 -1
  8. data/lib/checkoff/internal/config_loader.rb +2 -3
  9. data/lib/checkoff/internal/selector_classes/section/function_evaluator.rb +3 -2
  10. data/lib/checkoff/my_tasks.rb +1 -1
  11. data/lib/checkoff/portfolios.rb +11 -9
  12. data/lib/checkoff/projects.rb +1 -1
  13. data/lib/checkoff/sections.rb +4 -5
  14. data/lib/checkoff/tags.rb +66 -17
  15. data/lib/checkoff/tasks.rb +1 -1
  16. data/lib/checkoff/version.rb +1 -1
  17. data/lib/checkoff/workspaces.rb +1 -1
  18. data/rbi/checkoff.rbi +4529 -0
  19. data/sig/checkoff.rbs +3749 -0
  20. metadata +5 -211
  21. data/.circleci/config.yml +0 -291
  22. data/.envrc +0 -9
  23. data/.git-hooks/pre_commit/circle_ci.rb +0 -26
  24. data/.git-hooks/pre_commit/punchlist.rb +0 -52
  25. data/.git-hooks/pre_commit/solargraph_typecheck.rb +0 -77
  26. data/.gitattributes +0 -6
  27. data/.gitignore +0 -65
  28. data/.markdownlint_style.rb +0 -4
  29. data/.mdlrc +0 -1
  30. data/.overcommit.yml +0 -115
  31. data/.rubocop.yml +0 -143
  32. data/.rubocop_todo.yml +0 -90
  33. data/.solargraph.yml +0 -35
  34. data/.yamllint.yml +0 -8
  35. data/.yardopts +0 -2
  36. data/CODE_OF_CONDUCT.md +0 -133
  37. data/CONTRIBUTING.rst +0 -75
  38. data/DEVELOPMENT.md +0 -69
  39. data/GLOSSARY.md +0 -16
  40. data/Gemfile +0 -67
  41. data/Gemfile.lock +0 -351
  42. data/LICENSE +0 -21
  43. data/Makefile +0 -139
  44. data/bin/brakeman +0 -27
  45. data/bin/bump +0 -29
  46. data/bin/checkoff +0 -29
  47. data/bin/console +0 -15
  48. data/bin/overcommit +0 -29
  49. data/bin/overcommit_branch +0 -114
  50. data/bin/rake +0 -29
  51. data/bin/rubocop +0 -27
  52. data/bin/setup +0 -8
  53. data/bin/solargraph +0 -27
  54. data/bin/sord +0 -27
  55. data/bin/spoom +0 -27
  56. data/bin/srb +0 -27
  57. data/bin/srb-rbi +0 -27
  58. data/bin/tapioca +0 -27
  59. data/bin/yard +0 -27
  60. data/config/annotations_asana.rb +0 -253
  61. data/config/annotations_misc.rb +0 -68
  62. data/config/env.1p +0 -2
  63. data/docs/.gitignore +0 -3
  64. data/docs/cookiecutter_input.json +0 -17
  65. data/docs/example_project.png +0 -0
  66. data/fix.sh +0 -534
  67. data/metrics/bigfiles_high_water_mark +0 -1
  68. data/metrics/brakeman_high_water_mark +0 -1
  69. data/metrics/bundle-audit_high_water_mark +0 -1
  70. data/metrics/cane_high_water_mark +0 -1
  71. data/metrics/eslint_high_water_mark +0 -1
  72. data/metrics/flake8_high_water_mark +0 -1
  73. data/metrics/flay_high_water_mark +0 -1
  74. data/metrics/flog_high_water_mark +0 -1
  75. data/metrics/jscs_high_water_mark +0 -1
  76. data/metrics/mdl_high_water_mark +0 -1
  77. data/metrics/pep8_high_water_mark +0 -1
  78. data/metrics/punchlist_high_water_mark +0 -1
  79. data/metrics/pycodestyle_high_water_mark +0 -1
  80. data/metrics/rails_best_practices_high_water_mark +0 -1
  81. data/metrics/rubocop_high_water_mark +0 -1
  82. data/metrics/scalastyle_high_water_mark +0 -1
  83. data/metrics/shellcheck_high_water_mark +0 -1
  84. data/package.json +0 -9
  85. data/rakelib/citest.rake +0 -4
  86. data/rakelib/clear_metrics.rake +0 -9
  87. data/rakelib/console.rake +0 -15
  88. data/rakelib/default.rake +0 -4
  89. data/rakelib/doc.rake +0 -6
  90. data/rakelib/gem_tasks.rake +0 -3
  91. data/rakelib/localtest.rake +0 -4
  92. data/rakelib/overcommit.rake +0 -6
  93. data/rakelib/quality.rake +0 -4
  94. data/rakelib/repl.rake +0 -4
  95. data/rakelib/test.rake +0 -10
  96. data/rakelib/trigger_next_builds.rake +0 -7
  97. data/rakelib/undercover.rake +0 -8
  98. data/requirements_dev.txt +0 -2
  99. data/sorbet/config +0 -4
  100. data/sorbet/rbi/annotations/.gitattributes +0 -1
  101. data/sorbet/rbi/annotations/activesupport.rbi +0 -453
  102. data/sorbet/rbi/annotations/faraday.rbi +0 -17
  103. data/sorbet/rbi/annotations/minitest.rbi +0 -119
  104. data/sorbet/rbi/annotations/mocha.rbi +0 -34
  105. data/sorbet/rbi/annotations/rainbow.rbi +0 -269
  106. data/sorbet/rbi/annotations/webmock.rbi +0 -9
  107. data/sorbet/rbi/dsl/.gitattributes +0 -1
  108. data/sorbet/rbi/dsl/active_support/callbacks.rbi +0 -23
  109. data/sorbet/rbi/gems/.gitattributes +0 -1
  110. data/sorbet/rbi/gems/activesupport@7.1.5.rbi +0 -18746
  111. data/sorbet/rbi/gems/addressable@2.8.6.rbi +0 -1994
  112. data/sorbet/rbi/gems/ansi@1.5.0.rbi +0 -688
  113. data/sorbet/rbi/gems/asana@0.10.6-ab9393136d9ca59b75e42a661fdddc1c65c8f7c3.rbi +0 -6142
  114. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -585
  115. data/sorbet/rbi/gems/backport@1.2.0.rbi +0 -523
  116. data/sorbet/rbi/gems/base64@0.2.0.rbi +0 -509
  117. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +0 -618
  118. data/sorbet/rbi/gems/bigdecimal@3.1.5.rbi +0 -78
  119. data/sorbet/rbi/gems/brakeman@6.2.2.rbi +0 -222
  120. data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -505
  121. data/sorbet/rbi/gems/bump@0.10.0.rbi +0 -169
  122. data/sorbet/rbi/gems/cache@0.4.1.rbi +0 -211
  123. data/sorbet/rbi/gems/cache_method@0.2.7.rbi +0 -293
  124. data/sorbet/rbi/gems/chef-utils@18.3.0.rbi +0 -9
  125. data/sorbet/rbi/gems/childprocess@5.1.0.rbi +0 -383
  126. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3427
  127. data/sorbet/rbi/gems/commander@4.6.0.rbi +0 -9
  128. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +0 -11591
  129. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +0 -9
  130. data/sorbet/rbi/gems/crack@0.4.5.rbi +0 -145
  131. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +0 -969
  132. data/sorbet/rbi/gems/docile@1.4.0.rbi +0 -377
  133. data/sorbet/rbi/gems/drb@2.2.1.rbi +0 -1347
  134. data/sorbet/rbi/gems/e2mmap@0.1.0.rbi +0 -9
  135. data/sorbet/rbi/gems/erubi@1.13.0.rbi +0 -152
  136. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +0 -222
  137. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.0.rbi +0 -126
  138. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +0 -136
  139. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +0 -145
  140. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +0 -259
  141. data/sorbet/rbi/gems/faraday-net_http@1.0.1.rbi +0 -142
  142. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +0 -118
  143. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +0 -125
  144. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +0 -133
  145. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +0 -198
  146. data/sorbet/rbi/gems/faraday@1.10.3.rbi +0 -2729
  147. data/sorbet/rbi/gems/faraday_middleware-multi_json@0.0.6.rbi +0 -29
  148. data/sorbet/rbi/gems/faraday_middleware@1.2.0.rbi +0 -1004
  149. data/sorbet/rbi/gems/gli@2.22.0.rbi +0 -9
  150. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +0 -351
  151. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -9
  152. data/sorbet/rbi/gems/i18n@1.14.6.rbi +0 -2359
  153. data/sorbet/rbi/gems/imagen@0.1.8.rbi +0 -340
  154. data/sorbet/rbi/gems/iniparse@1.5.0.rbi +0 -899
  155. data/sorbet/rbi/gems/jaro_winkler@1.6.0.rbi +0 -22
  156. data/sorbet/rbi/gems/json@2.7.1.rbi +0 -1562
  157. data/sorbet/rbi/gems/jwt@2.7.1.rbi +0 -1405
  158. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +0 -128
  159. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +0 -3272
  160. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14238
  161. data/sorbet/rbi/gems/logger@1.6.2.rbi +0 -923
  162. data/sorbet/rbi/gems/mdl@0.13.0.rbi +0 -445
  163. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -273
  164. data/sorbet/rbi/gems/mime-types-data@3.2023.1205.rbi +0 -127
  165. data/sorbet/rbi/gems/mime-types@3.5.1.rbi +0 -1252
  166. data/sorbet/rbi/gems/minitest-profile@0.0.2.rbi +0 -136
  167. data/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi +0 -1014
  168. data/sorbet/rbi/gems/minitest@5.21.1.rbi +0 -1539
  169. data/sorbet/rbi/gems/mixlib-cli@2.1.8.rbi +0 -314
  170. data/sorbet/rbi/gems/mixlib-config@3.0.27.rbi +0 -581
  171. data/sorbet/rbi/gems/mixlib-shellout@3.2.7.rbi +0 -629
  172. data/sorbet/rbi/gems/mocha@2.1.0.rbi +0 -12
  173. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +0 -268
  174. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +0 -102
  175. data/sorbet/rbi/gems/multipart-post@2.3.0.rbi +0 -234
  176. data/sorbet/rbi/gems/mutex_m@0.3.0.rbi +0 -97
  177. data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -159
  178. data/sorbet/rbi/gems/nokogiri@1.17.0.rbi +0 -8201
  179. data/sorbet/rbi/gems/oauth2@1.4.11.rbi +0 -833
  180. data/sorbet/rbi/gems/overcommit@0.64.1.rbi +0 -2400
  181. data/sorbet/rbi/gems/parallel@1.23.0.rbi +0 -274
  182. data/sorbet/rbi/gems/parlour@5.0.0.rbi +0 -3007
  183. data/sorbet/rbi/gems/parser@3.2.2.4.rbi +0 -7253
  184. data/sorbet/rbi/gems/prism@1.2.0.rbi +0 -39085
  185. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10070
  186. data/sorbet/rbi/gems/public_suffix@5.0.4.rbi +0 -936
  187. data/sorbet/rbi/gems/punchlist@1.3.2.rbi +0 -173
  188. data/sorbet/rbi/gems/racc@1.8.1.rbi +0 -162
  189. data/sorbet/rbi/gems/rack@3.1.8.rbi +0 -4896
  190. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -403
  191. data/sorbet/rbi/gems/rake@13.1.0.rbi +0 -3022
  192. data/sorbet/rbi/gems/rbi@0.2.1.rbi +0 -4535
  193. data/sorbet/rbi/gems/rbs@2.8.4.rbi +0 -5613
  194. data/sorbet/rbi/gems/regexp_parser@2.8.3.rbi +0 -3750
  195. data/sorbet/rbi/gems/reverse_markdown@2.1.1.rbi +0 -390
  196. data/sorbet/rbi/gems/rexml@3.3.9.rbi +0 -4964
  197. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +0 -7127
  198. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +0 -2577
  199. data/sorbet/rbi/gems/rubocop-performance@1.20.2.rbi +0 -3262
  200. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -329
  201. data/sorbet/rbi/gems/rubocop-rspec@3.0.0.rbi +0 -7546
  202. data/sorbet/rbi/gems/rubocop@1.59.0.rbi +0 -57238
  203. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +0 -1318
  204. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +0 -9
  205. data/sorbet/rbi/gems/rugged@1.6.3.rbi +0 -1577
  206. data/sorbet/rbi/gems/securerandom@0.4.0.rbi +0 -75
  207. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +0 -217
  208. data/sorbet/rbi/gems/simplecov-lcov@0.8.0.rbi +0 -256
  209. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +0 -2149
  210. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +0 -9
  211. data/sorbet/rbi/gems/solargraph-rails@1.1.0-9dc37915bd4f3b169046e34db6fb32193ab347d8.rbi +0 -320
  212. data/sorbet/rbi/gems/solargraph@0.50.1-904b9304770a59fac393c5cc3cad481e5bdf0fd8.rbi +0 -9396
  213. data/sorbet/rbi/gems/sord@5.1.0.rbi +0 -820
  214. data/sorbet/rbi/gems/source_finder@3.2.1.rbi +0 -317
  215. data/sorbet/rbi/gems/spoom@1.5.0.rbi +0 -4932
  216. data/sorbet/rbi/gems/tapioca@0.16.5.rbi +0 -3617
  217. data/sorbet/rbi/gems/thor@1.3.2.rbi +0 -4378
  218. data/sorbet/rbi/gems/tilt@2.4.0.rbi +0 -933
  219. data/sorbet/rbi/gems/tomlrb@2.0.3.rbi +0 -9
  220. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +0 -5918
  221. data/sorbet/rbi/gems/undercover@0.5.0.rbi +0 -433
  222. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -66
  223. data/sorbet/rbi/gems/webmock@3.19.1.rbi +0 -1769
  224. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +0 -435
  225. data/sorbet/rbi/gems/yard@0.9.37.rbi +0 -18406
  226. data/sorbet/rbi/todo.rbi +0 -11
  227. data/sorbet/tapioca/config.yml +0 -13
  228. data/sorbet/tapioca/require.rb +0 -4
@@ -1,4964 +0,0 @@
1
- # typed: false
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This is an autogenerated file for types exported from the `rexml` gem.
5
- # Please instead update this file by running `bin/tapioca gem rexml`.
6
-
7
-
8
- # This class needs:
9
- # * Documentation
10
- # * Work! Not all types of attlists are intelligently parsed, so we just
11
- # spew back out what we get in. This works, but it would be better if
12
- # we formatted the output ourselves.
13
- #
14
- # AttlistDecls provide *just* enough support to allow namespace
15
- # declarations. If you need some sort of generalized support, or have an
16
- # interesting idea about how to map the hideous, terrible design of DTD
17
- # AttlistDecls onto an intuitive Ruby interface, let me know. I'm desperate
18
- # for anything to make DTDs more palateable.
19
- #
20
- # source://rexml//lib/rexml/attlistdecl.rb#18
21
- class REXML::AttlistDecl < ::REXML::Child
22
- include ::Enumerable
23
-
24
- # Create an AttlistDecl, pulling the information from a Source. Notice
25
- # that this isn't very convenient; to create an AttlistDecl, you basically
26
- # have to format it yourself, and then have the initializer parse it.
27
- # Sorry, but for the foreseeable future, DTD support in REXML is pretty
28
- # weak on convenience. Have I mentioned how much I hate DTDs?
29
- #
30
- # @return [AttlistDecl] a new instance of AttlistDecl
31
- #
32
- # source://rexml//lib/rexml/attlistdecl.rb#29
33
- def initialize(source); end
34
-
35
- # Access the attlist attribute/value pairs.
36
- # value = attlist_decl[ attribute_name ]
37
- #
38
- # source://rexml//lib/rexml/attlistdecl.rb#38
39
- def [](key); end
40
-
41
- # Iterate over the key/value pairs:
42
- # attlist_decl.each { |attribute_name, attribute_value| ... }
43
- #
44
- # source://rexml//lib/rexml/attlistdecl.rb#50
45
- def each(&block); end
46
-
47
- # What is this? Got me.
48
- #
49
- # source://rexml//lib/rexml/attlistdecl.rb#22
50
- def element_name; end
51
-
52
- # Whether an attlist declaration includes the given attribute definition
53
- # if attlist_decl.include? "xmlns:foobar"
54
- #
55
- # @return [Boolean]
56
- #
57
- # source://rexml//lib/rexml/attlistdecl.rb#44
58
- def include?(key); end
59
-
60
- # source://rexml//lib/rexml/attlistdecl.rb#59
61
- def node_type; end
62
-
63
- # Write out exactly what we got in.
64
- #
65
- # source://rexml//lib/rexml/attlistdecl.rb#55
66
- def write(out, indent = T.unsafe(nil)); end
67
- end
68
-
69
- # Defines an Element Attribute; IE, a attribute=value pair, as in:
70
- # <element attribute="value"/>. Attributes can be in their own
71
- # namespaces. General users of REXML will not interact with the
72
- # Attribute class much.
73
- #
74
- # source://rexml//lib/rexml/attribute.rb#10
75
- class REXML::Attribute
76
- include ::REXML::Node
77
- include ::REXML::XMLTokens
78
- include ::REXML::Namespace
79
-
80
- # Constructor.
81
- # FIXME: The parser doesn't catch illegal characters in attributes
82
- #
83
- # first::
84
- # Either: an Attribute, which this new attribute will become a
85
- # clone of; or a String, which is the name of this attribute
86
- # second::
87
- # If +first+ is an Attribute, then this may be an Element, or nil.
88
- # If nil, then the Element parent of this attribute is the parent
89
- # of the +first+ Attribute. If the first argument is a String,
90
- # then this must also be a String, and is the content of the attribute.
91
- # If this is the content, it must be fully normalized (contain no
92
- # illegal characters).
93
- # parent::
94
- # Ignored unless +first+ is a String; otherwise, may be the Element
95
- # parent of this attribute, or nil.
96
- #
97
- #
98
- # Attribute.new( attribute_to_clone )
99
- # Attribute.new( attribute_to_clone, parent_element )
100
- # Attribute.new( "attr", "attr_value" )
101
- # Attribute.new( "attr", "attr_value", parent_element )
102
- #
103
- # @return [Attribute] a new instance of Attribute
104
- #
105
- # source://rexml//lib/rexml/attribute.rb#42
106
- def initialize(first, second = T.unsafe(nil), parent = T.unsafe(nil)); end
107
-
108
- # Returns true if other is an Attribute and has the same name and value,
109
- # false otherwise.
110
- #
111
- # source://rexml//lib/rexml/attribute.rb#106
112
- def ==(other); end
113
-
114
- # Returns a copy of this attribute
115
- #
116
- # source://rexml//lib/rexml/attribute.rb#164
117
- def clone; end
118
-
119
- # source://rexml//lib/rexml/attribute.rb#132
120
- def doctype; end
121
-
122
- # The element to which this attribute belongs
123
- #
124
- # source://rexml//lib/rexml/attribute.rb#15
125
- def element; end
126
-
127
- # Sets the element of which this object is an attribute. Normally, this
128
- # is not directly called.
129
- #
130
- # Returns this attribute
131
- #
132
- # source://rexml//lib/rexml/attribute.rb#172
133
- def element=(element); end
134
-
135
- # Creates (and returns) a hash from both the name and value
136
- #
137
- # source://rexml//lib/rexml/attribute.rb#111
138
- def hash; end
139
-
140
- # source://rexml//lib/rexml/attribute.rb#198
141
- def inspect; end
142
-
143
- # Returns the namespace URL, if defined, or nil otherwise
144
- #
145
- # e = Element.new("el")
146
- # e.add_namespace("ns", "http://url")
147
- # e.add_attribute("ns:a", "b")
148
- # e.add_attribute("nsx:a", "c")
149
- # e.attribute("ns:a").namespace # => "http://url"
150
- # e.attribute("nsx:a").namespace # => nil
151
- #
152
- # This method always returns "" for no namespace attribute. Because
153
- # the default namespace doesn't apply to attribute names.
154
- #
155
- # From https://www.w3.org/TR/xml-names/#uniqAttrs
156
- #
157
- # > the default namespace does not apply to attribute names
158
- #
159
- # e = REXML::Element.new("el")
160
- # e.add_namespace("", "http://example.com/")
161
- # e.namespace # => "http://example.com/"
162
- # e.add_attribute("a", "b")
163
- # e.attribute("a").namespace # => ""
164
- #
165
- # source://rexml//lib/rexml/attribute.rb#95
166
- def namespace(arg = T.unsafe(nil)); end
167
-
168
- # source://rexml//lib/rexml/attribute.rb#194
169
- def node_type; end
170
-
171
- # The normalized value of this attribute. That is, the attribute with
172
- # entities intact.
173
- #
174
- # source://rexml//lib/rexml/attribute.rb#158
175
- def normalized=(new_normalized); end
176
-
177
- # Returns the namespace of the attribute.
178
- #
179
- # e = Element.new( "elns:myelement" )
180
- # e.add_attribute( "nsa:a", "aval" )
181
- # e.add_attribute( "b", "bval" )
182
- # e.attributes.get_attribute( "a" ).prefix # -> "nsa"
183
- # e.attributes.get_attribute( "b" ).prefix # -> ""
184
- # a = Attribute.new( "x", "y" )
185
- # a.prefix # -> ""
186
- #
187
- # source://rexml//lib/rexml/attribute.rb#70
188
- def prefix; end
189
-
190
- # Removes this Attribute from the tree, and returns true if successful
191
- #
192
- # This method is usually not called directly.
193
- #
194
- # source://rexml//lib/rexml/attribute.rb#185
195
- def remove; end
196
-
197
- # Returns the attribute value, with entities replaced
198
- #
199
- # source://rexml//lib/rexml/attribute.rb#140
200
- def to_s; end
201
-
202
- # Returns this attribute out as XML source, expanding the name
203
- #
204
- # a = Attribute.new( "x", "y" )
205
- # a.to_string # -> "x='y'"
206
- # b = Attribute.new( "ns:x", "y" )
207
- # b.to_string # -> "ns:x='y'"
208
- #
209
- # source://rexml//lib/rexml/attribute.rb#121
210
- def to_string; end
211
-
212
- # Returns the UNNORMALIZED value of this attribute. That is, entities
213
- # have been expanded to their values
214
- #
215
- # source://rexml//lib/rexml/attribute.rb#149
216
- def value; end
217
-
218
- # Writes this attribute (EG, puts 'key="value"' to the output)
219
- #
220
- # source://rexml//lib/rexml/attribute.rb#190
221
- def write(output, indent = T.unsafe(nil)); end
222
-
223
- # source://rexml//lib/rexml/attribute.rb#204
224
- def xpath; end
225
- end
226
-
227
- # A class that defines the set of Attributes of an Element and provides
228
- # operations for accessing elements in that set.
229
- #
230
- # source://rexml//lib/rexml/element.rb#2137
231
- class REXML::Attributes < ::Hash
232
- # :call-seq:
233
- # new(element)
234
- #
235
- # Creates and returns a new \REXML::Attributes object.
236
- # The element given by argument +element+ is stored,
237
- # but its own attributes are not modified:
238
- #
239
- # ele = REXML::Element.new('foo')
240
- # attrs = REXML::Attributes.new(ele)
241
- # attrs.object_id == ele.attributes.object_id # => false
242
- #
243
- # Other instance methods in class \REXML::Attributes may refer to:
244
- #
245
- # - +element.document+.
246
- # - +element.prefix+.
247
- # - +element.expanded_name+.
248
- #
249
- # @return [Attributes] a new instance of Attributes
250
- #
251
- # source://rexml//lib/rexml/element.rb#2156
252
- def initialize(element); end
253
-
254
- # :call-seq:
255
- # add(attribute) -> attribute
256
- #
257
- # Adds attribute +attribute+, replacing the previous
258
- # attribute of the same name if it exists;
259
- # returns +attribute+:
260
- #
261
- # xml_string = <<-EOT
262
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
263
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
264
- # </root>
265
- # EOT
266
- # d = REXML::Document.new(xml_string)
267
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
268
- # attrs = ele.attributes
269
- # attrs # => {"att"=>{"foo"=>foo:att='1', "bar"=>bar:att='2', ""=>att='&lt;'}}
270
- # attrs.add(REXML::Attribute.new('foo:att', '2')) # => foo:att='2'
271
- # attrs.add(REXML::Attribute.new('baz', '3')) # => baz='3'
272
- # attrs.include?('baz') # => true
273
- #
274
- # source://rexml//lib/rexml/element.rb#2522
275
- def <<(attribute); end
276
-
277
- # :call-seq:
278
- # [name] -> attribute_value or nil
279
- #
280
- # Returns the value for the attribute given by +name+,
281
- # if it exists; otherwise +nil+.
282
- # The value returned is the unnormalized attribute value,
283
- # with entities expanded:
284
- #
285
- # xml_string = <<-EOT
286
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
287
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
288
- # </root>
289
- # EOT
290
- # d = REXML::Document.new(xml_string)
291
- # ele = d.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
292
- # ele.attributes['att'] # => "<"
293
- # ele.attributes['bar:att'] # => "2"
294
- # ele.attributes['nosuch'] # => nil
295
- #
296
- # Related: get_attribute (returns an \Attribute object).
297
- #
298
- # source://rexml//lib/rexml/element.rb#2181
299
- def [](name); end
300
-
301
- # :call-seq:
302
- # [name] = value -> value
303
- #
304
- # When +value+ is non-+nil+,
305
- # assigns that to the attribute for the given +name+,
306
- # overwriting the previous value if it exists:
307
- #
308
- # xml_string = <<-EOT
309
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
310
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
311
- # </root>
312
- # EOT
313
- # d = REXML::Document.new(xml_string)
314
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
315
- # attrs = ele.attributes
316
- # attrs['foo:att'] = '2' # => "2"
317
- # attrs['baz:att'] = '3' # => "3"
318
- #
319
- # When +value+ is +nil+, deletes the attribute if it exists:
320
- #
321
- # attrs['baz:att'] = nil
322
- # attrs.include?('baz:att') # => false
323
- #
324
- # source://rexml//lib/rexml/element.rb#2365
325
- def []=(name, value); end
326
-
327
- # :call-seq:
328
- # add(attribute) -> attribute
329
- #
330
- # Adds attribute +attribute+, replacing the previous
331
- # attribute of the same name if it exists;
332
- # returns +attribute+:
333
- #
334
- # xml_string = <<-EOT
335
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
336
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
337
- # </root>
338
- # EOT
339
- # d = REXML::Document.new(xml_string)
340
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
341
- # attrs = ele.attributes
342
- # attrs # => {"att"=>{"foo"=>foo:att='1', "bar"=>bar:att='2', ""=>att='&lt;'}}
343
- # attrs.add(REXML::Attribute.new('foo:att', '2')) # => foo:att='2'
344
- # attrs.add(REXML::Attribute.new('baz', '3')) # => baz='3'
345
- # attrs.include?('baz') # => true
346
- #
347
- # source://rexml//lib/rexml/element.rb#2522
348
- def add(attribute); end
349
-
350
- # :call-seq:
351
- # delete(name) -> element
352
- # delete(attribute) -> element
353
- #
354
- # Removes a specified attribute if it exists;
355
- # returns the attributes' element.
356
- #
357
- # When string argument +name+ is given,
358
- # removes the attribute of that name if it exists:
359
- #
360
- # xml_string = <<-EOT
361
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
362
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
363
- # </root>
364
- # EOT
365
- # d = REXML::Document.new(xml_string)
366
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
367
- # attrs = ele.attributes
368
- # attrs.delete('foo:att') # => <ele bar:att='2' att='&lt;'/>
369
- # attrs.delete('foo:att') # => <ele bar:att='2' att='&lt;'/>
370
- #
371
- # When attribute argument +attribute+ is given,
372
- # removes that attribute if it exists:
373
- #
374
- # attr = REXML::Attribute.new('bar:att', '2')
375
- # attrs.delete(attr) # => <ele att='&lt;'/> # => <ele att='&lt;'/>
376
- # attrs.delete(attr) # => <ele att='&lt;'/> # => <ele/>
377
- #
378
- # source://rexml//lib/rexml/element.rb#2475
379
- def delete(attribute); end
380
-
381
- # :call-seq:
382
- # delete_all(name) -> array_of_removed_attributes
383
- #
384
- # Removes all attributes matching the given +name+;
385
- # returns an array of the removed attributes:
386
- #
387
- # xml_string = <<-EOT
388
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
389
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
390
- # </root>
391
- # EOT
392
- # d = REXML::Document.new(xml_string)
393
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
394
- # attrs = ele.attributes
395
- # attrs.delete_all('att') # => [att='&lt;']
396
- #
397
- # source://rexml//lib/rexml/element.rb#2544
398
- def delete_all(name); end
399
-
400
- # :call-seq:
401
- # each {|expanded_name, value| ... }
402
- #
403
- # Calls the given block with each expanded-name/value pair:
404
- #
405
- # xml_string = <<-EOT
406
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
407
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
408
- # </root>
409
- # EOT
410
- # d = REXML::Document.new(xml_string)
411
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
412
- # ele.attributes.each do |expanded_name, value|
413
- # p [expanded_name, value]
414
- # end
415
- #
416
- # Output:
417
- #
418
- # ["foo:att", "1"]
419
- # ["bar:att", "2"]
420
- # ["att", "<"]
421
- #
422
- # source://rexml//lib/rexml/element.rb#2283
423
- def each; end
424
-
425
- # :call-seq:
426
- # each_attribute {|attr| ... }
427
- #
428
- # Calls the given block with each \REXML::Attribute object:
429
- #
430
- # xml_string = <<-EOT
431
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
432
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
433
- # </root>
434
- # EOT
435
- # d = REXML::Document.new(xml_string)
436
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
437
- # ele.attributes.each_attribute do |attr|
438
- # p [attr.class, attr]
439
- # end
440
- #
441
- # Output:
442
- #
443
- # [REXML::Attribute, foo:att='1']
444
- # [REXML::Attribute, bar:att='2']
445
- # [REXML::Attribute, att='&lt;']
446
- #
447
- # source://rexml//lib/rexml/element.rb#2250
448
- def each_attribute; end
449
-
450
- # :call-seq:
451
- # get_attribute(name) -> attribute_object or nil
452
- #
453
- # Returns the \REXML::Attribute object for the given +name+:
454
- #
455
- # xml_string = <<-EOT
456
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
457
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
458
- # </root>
459
- # EOT
460
- # d = REXML::Document.new(xml_string)
461
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
462
- # attrs = ele.attributes
463
- # attrs.get_attribute('foo:att') # => foo:att='1'
464
- # attrs.get_attribute('foo:att').class # => REXML::Attribute
465
- # attrs.get_attribute('bar:att') # => bar:att='2'
466
- # attrs.get_attribute('att') # => att='&lt;'
467
- # attrs.get_attribute('nosuch') # => nil
468
- #
469
- # source://rexml//lib/rexml/element.rb#2309
470
- def get_attribute(name); end
471
-
472
- # :call-seq:
473
- # get_attribute_ns(namespace, name)
474
- #
475
- # Returns the \REXML::Attribute object among the attributes
476
- # that matches the given +namespace+ and +name+:
477
- #
478
- # xml_string = <<-EOT
479
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
480
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
481
- # </root>
482
- # EOT
483
- # d = REXML::Document.new(xml_string)
484
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
485
- # attrs = ele.attributes
486
- # attrs.get_attribute_ns('http://foo', 'att') # => foo:att='1'
487
- # attrs.get_attribute_ns('http://foo', 'nosuch') # => nil
488
- #
489
- # source://rexml//lib/rexml/element.rb#2570
490
- def get_attribute_ns(namespace, name); end
491
-
492
- # :call-seq:
493
- # length
494
- #
495
- # Returns the count of attributes:
496
- #
497
- # xml_string = <<-EOT
498
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
499
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
500
- # </root>
501
- # EOT
502
- # d = REXML::Document.new(xml_string)
503
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
504
- # ele.attributes.length # => 3
505
- #
506
- # source://rexml//lib/rexml/element.rb#2221
507
- def length; end
508
-
509
- # :call-seq:
510
- # namespaces
511
- #
512
- # Returns a hash of name/value pairs for the namespaces:
513
- #
514
- # xml_string = '<a xmlns="foo" xmlns:x="bar" xmlns:y="twee" z="glorp"/>'
515
- # d = REXML::Document.new(xml_string)
516
- # d.root.attributes.namespaces # => {"xmlns"=>"foo", "x"=>"bar", "y"=>"twee"}
517
- #
518
- # source://rexml//lib/rexml/element.rb#2431
519
- def namespaces; end
520
-
521
- # :call-seq:
522
- # prefixes -> array_of_prefix_strings
523
- #
524
- # Returns an array of prefix strings in the attributes.
525
- # The array does not include the default
526
- # namespace declaration, if one exists.
527
- #
528
- # xml_string = '<a xmlns="foo" xmlns:x="bar" xmlns:y="twee" z="glorp"/>'
529
- # d = REXML::Document.new(xml_string)
530
- # d.root.attributes.prefixes # => ["x", "y"]
531
- #
532
- # source://rexml//lib/rexml/element.rb#2406
533
- def prefixes; end
534
-
535
- # :call-seq:
536
- # length
537
- #
538
- # Returns the count of attributes:
539
- #
540
- # xml_string = <<-EOT
541
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
542
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
543
- # </root>
544
- # EOT
545
- # d = REXML::Document.new(xml_string)
546
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
547
- # ele.attributes.length # => 3
548
- #
549
- # source://rexml//lib/rexml/element.rb#2221
550
- def size; end
551
-
552
- # :call-seq:
553
- # to_a -> array_of_attribute_objects
554
- #
555
- # Returns an array of \REXML::Attribute objects representing
556
- # the attributes:
557
- #
558
- # xml_string = <<-EOT
559
- # <root xmlns:foo="http://foo" xmlns:bar="http://bar">
560
- # <ele foo:att='1' bar:att='2' att='&lt;'/>
561
- # </root>
562
- # EOT
563
- # d = REXML::Document.new(xml_string)
564
- # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
565
- # attrs = ele.attributes.to_a # => [foo:att='1', bar:att='2', att='&lt;']
566
- # attrs.first.class # => REXML::Attribute
567
- #
568
- # source://rexml//lib/rexml/element.rb#2203
569
- def to_a; end
570
- end
571
-
572
- # source://rexml//lib/rexml/cdata.rb#5
573
- class REXML::CData < ::REXML::Text
574
- # Constructor. CData is data between <![CDATA[ ... ]]>
575
- #
576
- # _Examples_
577
- # CData.new( source )
578
- # CData.new( "Here is some CDATA" )
579
- # CData.new( "Some unprocessed data", respect_whitespace_TF, parent_element )
580
- #
581
- # @return [CData] a new instance of CData
582
- #
583
- # source://rexml//lib/rexml/cdata.rb#16
584
- def initialize(first, whitespace = T.unsafe(nil), parent = T.unsafe(nil)); end
585
-
586
- # Make a copy of this object
587
- #
588
- # _Examples_
589
- # c = CData.new( "Some text" )
590
- # d = c.clone
591
- # d.to_s # -> "Some text"
592
- #
593
- # source://rexml//lib/rexml/cdata.rb#26
594
- def clone; end
595
-
596
- # Returns the content of this CData object
597
- #
598
- # _Examples_
599
- # c = CData.new( "Some text" )
600
- # c.to_s # -> "Some text"
601
- #
602
- # source://rexml//lib/rexml/cdata.rb#35
603
- def to_s; end
604
-
605
- # source://rexml//lib/rexml/cdata.rb#39
606
- def value; end
607
-
608
- # == DEPRECATED
609
- # See the rexml/formatters package
610
- #
611
- # Generates XML output of this object
612
- #
613
- # output::
614
- # Where to write the string. Defaults to $stdout
615
- # indent::
616
- # The amount to indent this node by
617
- # transitive::
618
- # Ignored
619
- # ie_hack::
620
- # Ignored
621
- #
622
- # _Examples_
623
- # c = CData.new( " Some text " )
624
- # c.write( $stdout ) #-> <![CDATA[ Some text ]]>
625
- #
626
- # source://rexml//lib/rexml/cdata.rb#60
627
- def write(output = T.unsafe(nil), indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
628
- end
629
-
630
- # A Child object is something contained by a parent, and this class
631
- # contains methods to support that. Most user code will not use this
632
- # class directly.
633
- #
634
- # source://rexml//lib/rexml/child.rb#9
635
- class REXML::Child
636
- include ::REXML::Node
637
-
638
- # Constructor. Any inheritors of this class should call super to make
639
- # sure this method is called.
640
- # parent::
641
- # if supplied, the parent of this child will be set to the
642
- # supplied value, and self will be added to the parent
643
- #
644
- # @return [Child] a new instance of Child
645
- #
646
- # source://rexml//lib/rexml/child.rb#18
647
- def initialize(parent = T.unsafe(nil)); end
648
-
649
- # This doesn't yet handle encodings
650
- #
651
- # source://rexml//lib/rexml/child.rb#91
652
- def bytes; end
653
-
654
- # Returns:: the document this child belongs to, or nil if this child
655
- # belongs to no document
656
- #
657
- # source://rexml//lib/rexml/child.rb#85
658
- def document; end
659
-
660
- # source://rexml//lib/rexml/node.rb#11
661
- def next_sibling; end
662
-
663
- # Sets the next sibling of this child. This can be used to insert a child
664
- # after some other child.
665
- # a = Element.new("a")
666
- # b = a.add_element("b")
667
- # c = Element.new("c")
668
- # b.next_sibling = c
669
- # # => <a><b/><c/></a>
670
- #
671
- # source://rexml//lib/rexml/child.rb#68
672
- def next_sibling=(other); end
673
-
674
- # The Parent of this object
675
- #
676
- # source://rexml//lib/rexml/child.rb#11
677
- def parent; end
678
-
679
- # Sets the parent of this child to the supplied argument.
680
- #
681
- # other::
682
- # Must be a Parent object. If this object is the same object as the
683
- # existing parent of this child, no action is taken. Otherwise, this
684
- # child is removed from the current parent (if one exists), and is added
685
- # to the new parent.
686
- # Returns:: The parent added
687
- #
688
- # source://rexml//lib/rexml/child.rb#52
689
- def parent=(other); end
690
-
691
- # source://rexml//lib/rexml/node.rb#17
692
- def previous_sibling; end
693
-
694
- # Sets the previous sibling of this child. This can be used to insert a
695
- # child before some other child.
696
- # a = Element.new("a")
697
- # b = a.add_element("b")
698
- # c = Element.new("c")
699
- # b.previous_sibling = c
700
- # # => <a><b/><c/></a>
701
- #
702
- # source://rexml//lib/rexml/child.rb#79
703
- def previous_sibling=(other); end
704
-
705
- # Removes this child from the parent.
706
- #
707
- # Returns:: self
708
- #
709
- # source://rexml//lib/rexml/child.rb#37
710
- def remove; end
711
-
712
- # Replaces this object with another object. Basically, calls
713
- # Parent.replace_child
714
- #
715
- # Returns:: self
716
- #
717
- # source://rexml//lib/rexml/child.rb#29
718
- def replace_with(child); end
719
- end
720
-
721
- # Represents an XML comment; that is, text between \<!-- ... -->
722
- #
723
- # source://rexml//lib/rexml/comment.rb#7
724
- class REXML::Comment < ::REXML::Child
725
- include ::Comparable
726
-
727
- # Constructor. The first argument can be one of three types:
728
- # argument. If Comment, the argument is duplicated. If
729
- # Source, the argument is scanned for a comment.
730
- # should be nil, not supplied, or a Parent to be set as the parent
731
- # of this object
732
- #
733
- # @param first If String, the contents of this comment are set to the
734
- # @param second If the first argument is a Source, this argument
735
- # @return [Comment] a new instance of Comment
736
- #
737
- # source://rexml//lib/rexml/comment.rb#24
738
- def initialize(first, second = T.unsafe(nil)); end
739
-
740
- # Compares this Comment to another; the contents of the comment are used
741
- # in the comparison.
742
- #
743
- # source://rexml//lib/rexml/comment.rb#63
744
- def <=>(other); end
745
-
746
- # Compares this Comment to another; the contents of the comment are used
747
- # in the comparison.
748
- #
749
- # source://rexml//lib/rexml/comment.rb#70
750
- def ==(other); end
751
-
752
- # source://rexml//lib/rexml/comment.rb#33
753
- def clone; end
754
-
755
- # source://rexml//lib/rexml/comment.rb#75
756
- def node_type; end
757
-
758
- # The content text
759
- #
760
- # source://rexml//lib/rexml/comment.rb#14
761
- def string; end
762
-
763
- # The content text
764
- #
765
- # source://rexml//lib/rexml/comment.rb#14
766
- def string=(_arg0); end
767
-
768
- # The content text
769
- #
770
- # source://rexml//lib/rexml/comment.rb#14
771
- def to_s; end
772
-
773
- # == DEPRECATED
774
- # See REXML::Formatters
775
- #
776
- # output::
777
- # Where to write the string
778
- # indent::
779
- # An integer. If -1, no indenting will be used; otherwise, the
780
- # indentation will be this number of spaces, and children will be
781
- # indented an additional amount.
782
- # transitive::
783
- # Ignored by this class. The contents of comments are never modified.
784
- # ie_hack::
785
- # Needed for conformity to the child API, but not used by this class.
786
- #
787
- # source://rexml//lib/rexml/comment.rb#50
788
- def write(output, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
789
- end
790
-
791
- # source://rexml//lib/rexml/xpath_parser.rb#11
792
- module REXML::DClonable; end
793
-
794
- # This is an abstract class. You never use this directly; it serves as a
795
- # parent class for the specific declarations.
796
- #
797
- # source://rexml//lib/rexml/doctype.rb#242
798
- class REXML::Declaration < ::REXML::Child
799
- # @return [Declaration] a new instance of Declaration
800
- #
801
- # source://rexml//lib/rexml/doctype.rb#243
802
- def initialize(src); end
803
-
804
- # source://rexml//lib/rexml/doctype.rb#248
805
- def to_s; end
806
-
807
- # == DEPRECATED
808
- # See REXML::Formatters
809
- #
810
- # source://rexml//lib/rexml/doctype.rb#255
811
- def write(output, indent); end
812
- end
813
-
814
- # Represents an XML DOCTYPE declaration; that is, the contents of <!DOCTYPE
815
- # ... >. DOCTYPES can be used to declare the DTD of a document, as well as
816
- # being used to declare entities used in the document.
817
- #
818
- # source://rexml//lib/rexml/doctype.rb#51
819
- class REXML::DocType < ::REXML::Parent
820
- include ::REXML::XMLTokens
821
-
822
- # Constructor
823
- #
824
- # dt = DocType.new( 'foo', '-//I/Hate/External/IDs' )
825
- # # <!DOCTYPE foo '-//I/Hate/External/IDs'>
826
- # dt = DocType.new( doctype_to_clone )
827
- # # Incomplete. Shallow clone of doctype
828
- #
829
- # +Note+ that the constructor:
830
- #
831
- # Doctype.new( Source.new( "<!DOCTYPE foo 'bar'>" ) )
832
- #
833
- # is _deprecated_. Do not use it. It will probably disappear.
834
- #
835
- # @return [DocType] a new instance of DocType
836
- #
837
- # source://rexml//lib/rexml/doctype.rb#80
838
- def initialize(first, parent = T.unsafe(nil)); end
839
-
840
- # source://rexml//lib/rexml/doctype.rb#185
841
- def add(child); end
842
-
843
- # source://rexml//lib/rexml/doctype.rb#125
844
- def attribute_of(element, attribute); end
845
-
846
- # source://rexml//lib/rexml/doctype.rb#115
847
- def attributes_of(element); end
848
-
849
- # source://rexml//lib/rexml/doctype.rb#135
850
- def clone; end
851
-
852
- # source://rexml//lib/rexml/doctype.rb#173
853
- def context; end
854
-
855
- # name is the name of the doctype
856
- # external_id is the referenced DTD, if given
857
- #
858
- # source://rexml//lib/rexml/doctype.rb#66
859
- def entities; end
860
-
861
- # source://rexml//lib/rexml/doctype.rb#181
862
- def entity(name); end
863
-
864
- # name is the name of the doctype
865
- # external_id is the referenced DTD, if given
866
- #
867
- # source://rexml//lib/rexml/doctype.rb#66
868
- def external_id; end
869
-
870
- # name is the name of the doctype
871
- # external_id is the referenced DTD, if given
872
- #
873
- # source://rexml//lib/rexml/doctype.rb#66
874
- def name; end
875
-
876
- # name is the name of the doctype
877
- # external_id is the referenced DTD, if given
878
- #
879
- # source://rexml//lib/rexml/doctype.rb#66
880
- def namespaces; end
881
-
882
- # source://rexml//lib/rexml/doctype.rb#111
883
- def node_type; end
884
-
885
- # Retrieves a named notation. Only notations declared in the internal
886
- # DTD subset can be retrieved.
887
- #
888
- # Method contributed by Henrik Martensson
889
- #
890
- # source://rexml//lib/rexml/doctype.rb#229
891
- def notation(name); end
892
-
893
- # This method returns a list of notations that have been declared in the
894
- # _internal_ DTD subset. Notations in the external DTD subset are not
895
- # listed.
896
- #
897
- # Method contributed by Henrik Martensson
898
- #
899
- # source://rexml//lib/rexml/doctype.rb#221
900
- def notations; end
901
-
902
- # This method retrieves the public identifier identifying the document's
903
- # DTD.
904
- #
905
- # Method contributed by Henrik Martensson
906
- #
907
- # source://rexml//lib/rexml/doctype.rb#195
908
- def public; end
909
-
910
- # This method retrieves the system identifier identifying the document's DTD
911
- #
912
- # Method contributed by Henrik Martensson
913
- #
914
- # source://rexml//lib/rexml/doctype.rb#207
915
- def system; end
916
-
917
- # output::
918
- # Where to write the string
919
- # indent::
920
- # An integer. If -1, no indentation will be used; otherwise, the
921
- # indentation will be this number of spaces, and children will be
922
- # indented an additional amount.
923
- # transitive::
924
- # Ignored
925
- # ie_hack::
926
- # Ignored
927
- #
928
- # source://rexml//lib/rexml/doctype.rb#149
929
- def write(output, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
930
- end
931
-
932
- # Represents an XML document.
933
- #
934
- # A document may have:
935
- #
936
- # - A single child that may be accessed via method #root.
937
- # - An XML declaration.
938
- # - A document type.
939
- # - Processing instructions.
940
- #
941
- # == In a Hurry?
942
- #
943
- # If you're somewhat familiar with XML
944
- # and have a particular task in mind,
945
- # you may want to see the
946
- # {tasks pages}[../doc/rexml/tasks/tocs/master_toc_rdoc.html],
947
- # and in particular, the
948
- # {tasks page for documents}[../doc/rexml/tasks/tocs/document_toc_rdoc.html].
949
- #
950
- # source://rexml//lib/rexml/document.rb#39
951
- class REXML::Document < ::REXML::Element
952
- # :call-seq:
953
- # new(string = nil, context = {}) -> new_document
954
- # new(io_stream = nil, context = {}) -> new_document
955
- # new(document = nil, context = {}) -> new_document
956
- #
957
- # Returns a new \REXML::Document object.
958
- #
959
- # When no arguments are given,
960
- # returns an empty document:
961
- #
962
- # d = REXML::Document.new
963
- # d.to_s # => ""
964
- #
965
- # When argument +string+ is given, it must be a string
966
- # containing a valid XML document:
967
- #
968
- # xml_string = '<root><foo>Foo</foo><bar>Bar</bar></root>'
969
- # d = REXML::Document.new(xml_string)
970
- # d.to_s # => "<root><foo>Foo</foo><bar>Bar</bar></root>"
971
- #
972
- # When argument +io_stream+ is given, it must be an \IO object
973
- # that is opened for reading, and when read must return a valid XML document:
974
- #
975
- # File.write('t.xml', xml_string)
976
- # d = File.open('t.xml', 'r') do |io|
977
- # REXML::Document.new(io)
978
- # end
979
- # d.to_s # => "<root><foo>Foo</foo><bar>Bar</bar></root>"
980
- #
981
- # When argument +document+ is given, it must be an existing
982
- # document object, whose context and attributes (but not children)
983
- # are cloned into the new document:
984
- #
985
- # d = REXML::Document.new(xml_string)
986
- # d.children # => [<root> ... </>]
987
- # d.context = {raw: :all, compress_whitespace: :all}
988
- # d.add_attributes({'bar' => 0, 'baz' => 1})
989
- # d1 = REXML::Document.new(d)
990
- # d1.children # => []
991
- # d1.context # => {:raw=>:all, :compress_whitespace=>:all}
992
- # d1.attributes # => {"bar"=>bar='0', "baz"=>baz='1'}
993
- #
994
- # When argument +context+ is given, it must be a hash
995
- # containing context entries for the document;
996
- # see {Element Context}[../doc/rexml/context_rdoc.html]:
997
- #
998
- # context = {raw: :all, compress_whitespace: :all}
999
- # d = REXML::Document.new(xml_string, context)
1000
- # d.context # => {:raw=>:all, :compress_whitespace=>:all}
1001
- #
1002
- # @return [Document] a new instance of Document
1003
- #
1004
- # source://rexml//lib/rexml/document.rb#92
1005
- def initialize(source = T.unsafe(nil), context = T.unsafe(nil)); end
1006
-
1007
- # :call-seq:
1008
- # add(xml_decl) -> self
1009
- # add(doc_type) -> self
1010
- # add(object) -> self
1011
- #
1012
- # Adds an object to the document; returns +self+.
1013
- #
1014
- # When argument +xml_decl+ is given,
1015
- # it must be an REXML::XMLDecl object,
1016
- # which becomes the XML declaration for the document,
1017
- # replacing the previous XML declaration if any:
1018
- #
1019
- # d = REXML::Document.new
1020
- # d.xml_decl.to_s # => ""
1021
- # d.add(REXML::XMLDecl.new('2.0'))
1022
- # d.xml_decl.to_s # => "<?xml version='2.0'?>"
1023
- #
1024
- # When argument +doc_type+ is given,
1025
- # it must be an REXML::DocType object,
1026
- # which becomes the document type for the document,
1027
- # replacing the previous document type, if any:
1028
- #
1029
- # d = REXML::Document.new
1030
- # d.doctype.to_s # => ""
1031
- # d.add(REXML::DocType.new('foo'))
1032
- # d.doctype.to_s # => "<!DOCTYPE foo>"
1033
- #
1034
- # When argument +object+ (not an REXML::XMLDecl or REXML::DocType object)
1035
- # is given it is added as the last child:
1036
- #
1037
- # d = REXML::Document.new
1038
- # d.add(REXML::Element.new('foo'))
1039
- # d.to_s # => "<foo/>"
1040
- #
1041
- # source://rexml//lib/rexml/document.rb#172
1042
- def <<(child); end
1043
-
1044
- # :call-seq:
1045
- # add(xml_decl) -> self
1046
- # add(doc_type) -> self
1047
- # add(object) -> self
1048
- #
1049
- # Adds an object to the document; returns +self+.
1050
- #
1051
- # When argument +xml_decl+ is given,
1052
- # it must be an REXML::XMLDecl object,
1053
- # which becomes the XML declaration for the document,
1054
- # replacing the previous XML declaration if any:
1055
- #
1056
- # d = REXML::Document.new
1057
- # d.xml_decl.to_s # => ""
1058
- # d.add(REXML::XMLDecl.new('2.0'))
1059
- # d.xml_decl.to_s # => "<?xml version='2.0'?>"
1060
- #
1061
- # When argument +doc_type+ is given,
1062
- # it must be an REXML::DocType object,
1063
- # which becomes the document type for the document,
1064
- # replacing the previous document type, if any:
1065
- #
1066
- # d = REXML::Document.new
1067
- # d.doctype.to_s # => ""
1068
- # d.add(REXML::DocType.new('foo'))
1069
- # d.doctype.to_s # => "<!DOCTYPE foo>"
1070
- #
1071
- # When argument +object+ (not an REXML::XMLDecl or REXML::DocType object)
1072
- # is given it is added as the last child:
1073
- #
1074
- # d = REXML::Document.new
1075
- # d.add(REXML::Element.new('foo'))
1076
- # d.to_s # => "<foo/>"
1077
- #
1078
- # source://rexml//lib/rexml/document.rb#172
1079
- def add(child); end
1080
-
1081
- # :call-seq:
1082
- # add_element(name_or_element = nil, attributes = nil) -> new_element
1083
- #
1084
- # Adds an element to the document by calling REXML::Element.add_element:
1085
- #
1086
- # REXML::Element.add_element(name_or_element, attributes)
1087
- #
1088
- # source://rexml//lib/rexml/document.rb#211
1089
- def add_element(arg = T.unsafe(nil), arg2 = T.unsafe(nil)); end
1090
-
1091
- # :call-seq:
1092
- # clone -> new_document
1093
- #
1094
- # Returns the new document resulting from executing
1095
- # <tt>Document.new(self)</tt>. See Document.new.
1096
- #
1097
- # source://rexml//lib/rexml/document.rb#122
1098
- def clone; end
1099
-
1100
- # :call-seq:
1101
- # doctype -> doc_type or nil
1102
- #
1103
- # Returns the DocType object for the document, if it exists, otherwise +nil+:
1104
- #
1105
- # d = REXML::Document.new('<!DOCTYPE document SYSTEM "subjects.dtd">')
1106
- # d.doctype.class # => REXML::DocType
1107
- # d = REXML::Document.new('')
1108
- # d.doctype.class # => nil
1109
- #
1110
- # source://rexml//lib/rexml/document.rb#243
1111
- def doctype; end
1112
-
1113
- # source://rexml//lib/rexml/document.rb#446
1114
- def document; end
1115
-
1116
- # :call-seq:
1117
- # encoding -> encoding_string
1118
- #
1119
- # Returns the XMLDecl encoding of the document,
1120
- #
1121
- # d = REXML::Document.new('<?xml version="1.0" encoding="UTF-16"?>')
1122
- # d.encoding # => "UTF-16"
1123
- # d = REXML::Document.new('')
1124
- # d.encoding # => "UTF-8"
1125
- #
1126
- # source://rexml//lib/rexml/document.rb#292
1127
- def encoding; end
1128
-
1129
- # Returns the value of attribute entity_expansion_count.
1130
- #
1131
- # source://rexml//lib/rexml/document.rb#435
1132
- def entity_expansion_count; end
1133
-
1134
- # Sets the attribute entity_expansion_limit
1135
- #
1136
- # @param value the value to set the attribute entity_expansion_limit to.
1137
- #
1138
- # source://rexml//lib/rexml/document.rb#436
1139
- def entity_expansion_limit=(_arg0); end
1140
-
1141
- # Returns the value of attribute entity_expansion_text_limit.
1142
- #
1143
- # source://rexml//lib/rexml/document.rb#437
1144
- def entity_expansion_text_limit; end
1145
-
1146
- # Sets the attribute entity_expansion_text_limit
1147
- #
1148
- # @param value the value to set the attribute entity_expansion_text_limit to.
1149
- #
1150
- # source://rexml//lib/rexml/document.rb#437
1151
- def entity_expansion_text_limit=(_arg0); end
1152
-
1153
- # :call-seq:
1154
- # expanded_name -> empty_string
1155
- #
1156
- # Returns an empty string.
1157
- #
1158
- # source://rexml//lib/rexml/document.rb#131
1159
- def expanded_name; end
1160
-
1161
- # :call-seq:
1162
- # expanded_name -> empty_string
1163
- #
1164
- # Returns an empty string.
1165
- # d = doc_type
1166
- # d ? d.name : "UNDEFINED"
1167
- #
1168
- # source://rexml//lib/rexml/document.rb#131
1169
- def name; end
1170
-
1171
- # :call-seq:
1172
- # node_type -> :document
1173
- #
1174
- # Returns the symbol +:document+.
1175
- #
1176
- # source://rexml//lib/rexml/document.rb#112
1177
- def node_type; end
1178
-
1179
- # source://rexml//lib/rexml/document.rb#439
1180
- def record_entity_expansion; end
1181
-
1182
- # :call-seq:
1183
- # root -> root_element or nil
1184
- #
1185
- # Returns the root element of the document, if it exists, otherwise +nil+:
1186
- #
1187
- # d = REXML::Document.new('<root></root>')
1188
- # d.root # => <root/>
1189
- # d = REXML::Document.new('')
1190
- # d.root # => nil
1191
- #
1192
- # source://rexml//lib/rexml/document.rb#227
1193
- def root; end
1194
-
1195
- # :call-seq:
1196
- # stand_alone?
1197
- #
1198
- # Returns the XMLDecl standalone value of the document as a string,
1199
- # if it has been set, otherwise the default standalone value:
1200
- #
1201
- # d = REXML::Document.new('<?xml standalone="yes"?>')
1202
- # d.stand_alone? # => "yes"
1203
- # d = REXML::Document.new('')
1204
- # d.stand_alone? # => nil
1205
- #
1206
- # @return [Boolean]
1207
- #
1208
- # source://rexml//lib/rexml/document.rb#307
1209
- def stand_alone?; end
1210
-
1211
- # :call-seq:
1212
- # version -> version_string
1213
- #
1214
- # Returns the XMLDecl version of this document as a string,
1215
- # if it has been set, otherwise the default version:
1216
- #
1217
- # d = REXML::Document.new('<?xml version="2.0" encoding="UTF-8"?>')
1218
- # d.version # => "2.0"
1219
- # d = REXML::Document.new('')
1220
- # d.version # => "1.0"
1221
- #
1222
- # source://rexml//lib/rexml/document.rb#277
1223
- def version; end
1224
-
1225
- # :call-seq:
1226
- # doc.write(output=$stdout, indent=-1, transtive=false, ie_hack=false, encoding=nil)
1227
- # doc.write(options={:output => $stdout, :indent => -1, :transtive => false, :ie_hack => false, :encoding => nil})
1228
- #
1229
- # Write the XML tree out, optionally with indent. This writes out the
1230
- # entire XML document, including XML declarations, doctype declarations,
1231
- # and processing instructions (if any are given).
1232
- #
1233
- # A controversial point is whether Document should always write the XML
1234
- # declaration (<?xml version='1.0'?>) whether or not one is given by the
1235
- # user (or source document). REXML does not write one if one was not
1236
- # specified, because it adds unnecessary bandwidth to applications such
1237
- # as XML-RPC.
1238
- #
1239
- # Accept Nth argument style and options Hash style as argument.
1240
- # The recommended style is options Hash style for one or more
1241
- # arguments case.
1242
- #
1243
- # _Examples_
1244
- # Document.new("<a><b/></a>").write
1245
- #
1246
- # output = ""
1247
- # Document.new("<a><b/></a>").write(output)
1248
- #
1249
- # output = ""
1250
- # Document.new("<a><b/></a>").write(:output => output, :indent => 2)
1251
- #
1252
- # See also the classes in the rexml/formatters package for the proper way
1253
- # to change the default formatting of XML output.
1254
- #
1255
- # _Examples_
1256
- #
1257
- # output = ""
1258
- # tr = Transitive.new
1259
- # tr.write(Document.new("<a><b/></a>"), output)
1260
- #
1261
- # output::
1262
- # output an object which supports '<< string'; this is where the
1263
- # document will be written.
1264
- # indent::
1265
- # An integer. If -1, no indenting will be used; otherwise, the
1266
- # indentation will be twice this number of spaces, and children will be
1267
- # indented an additional amount. For a value of 3, every item will be
1268
- # indented 3 more levels, or 6 more spaces (2 * 3). Defaults to -1
1269
- # transitive::
1270
- # If transitive is true and indent is >= 0, then the output will be
1271
- # pretty-printed in such a way that the added whitespace does not affect
1272
- # the absolute *value* of the document -- that is, it leaves the value
1273
- # and number of Text nodes in the document unchanged.
1274
- # ie_hack::
1275
- # This hack inserts a space before the /> on empty tags to address
1276
- # a limitation of Internet Explorer. Defaults to false
1277
- # Encoding name as String. Change output encoding to specified encoding
1278
- # instead of encoding in XML declaration.
1279
- # Defaults to nil. It means encoding in XML declaration is used.
1280
- #
1281
- # source://rexml//lib/rexml/document.rb#367
1282
- def write(*arguments); end
1283
-
1284
- # :call-seq:
1285
- # xml_decl -> xml_decl
1286
- #
1287
- # Returns the XMLDecl object for the document, if it exists,
1288
- # otherwise the default XMLDecl object:
1289
- #
1290
- # d = REXML::Document.new('<?xml version="1.0" encoding="UTF-8"?>')
1291
- # d.xml_decl.class # => REXML::XMLDecl
1292
- # d.xml_decl.to_s # => "<?xml version='1.0' encoding='UTF-8'?>"
1293
- # d = REXML::Document.new('')
1294
- # d.xml_decl.class # => REXML::XMLDecl
1295
- # d.xml_decl.to_s # => ""
1296
- #
1297
- # source://rexml//lib/rexml/document.rb#260
1298
- def xml_decl; end
1299
-
1300
- private
1301
-
1302
- # source://rexml//lib/rexml/document.rb#451
1303
- def build(source); end
1304
-
1305
- class << self
1306
- # Get the entity expansion limit. By default the limit is set to 10000.
1307
- #
1308
- # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
1309
- #
1310
- # source://rexml//lib/rexml/document.rb#417
1311
- def entity_expansion_limit; end
1312
-
1313
- # Set the entity expansion limit. By default the limit is set to 10000.
1314
- #
1315
- # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
1316
- #
1317
- # source://rexml//lib/rexml/document.rb#410
1318
- def entity_expansion_limit=(val); end
1319
-
1320
- # Get the entity expansion limit. By default the limit is set to 10240.
1321
- #
1322
- # Deprecated. Use REXML::Security.entity_expansion_text_limit instead.
1323
- #
1324
- # source://rexml//lib/rexml/document.rb#431
1325
- def entity_expansion_text_limit; end
1326
-
1327
- # Set the entity expansion limit. By default the limit is set to 10240.
1328
- #
1329
- # Deprecated. Use REXML::Security.entity_expansion_text_limit= instead.
1330
- #
1331
- # source://rexml//lib/rexml/document.rb#424
1332
- def entity_expansion_text_limit=(val); end
1333
-
1334
- # source://rexml//lib/rexml/document.rb#403
1335
- def parse_stream(source, listener); end
1336
- end
1337
- end
1338
-
1339
- # An \REXML::Element object represents an XML element.
1340
- #
1341
- # An element:
1342
- #
1343
- # - Has a name (string).
1344
- # - May have a parent (another element).
1345
- # - Has zero or more children
1346
- # (other elements, text, CDATA, processing instructions, and comments).
1347
- # - Has zero or more siblings
1348
- # (other elements, text, CDATA, processing instructions, and comments).
1349
- # - Has zero or more named attributes.
1350
- #
1351
- # == In a Hurry?
1352
- #
1353
- # If you're somewhat familiar with XML
1354
- # and have a particular task in mind,
1355
- # you may want to see the
1356
- # {tasks pages}[../doc/rexml/tasks/tocs/master_toc_rdoc.html],
1357
- # and in particular, the
1358
- # {tasks page for elements}[../doc/rexml/tasks/tocs/element_toc_rdoc.html].
1359
- #
1360
- # === Name
1361
- #
1362
- # An element has a name, which is initially set when the element is created:
1363
- #
1364
- # e = REXML::Element.new('foo')
1365
- # e.name # => "foo"
1366
- #
1367
- # The name may be changed:
1368
- #
1369
- # e.name = 'bar'
1370
- # e.name # => "bar"
1371
- #
1372
- #
1373
- # === \Parent
1374
- #
1375
- # An element may have a parent.
1376
- #
1377
- # Its parent may be assigned explicitly when the element is created:
1378
- #
1379
- # e0 = REXML::Element.new('foo')
1380
- # e1 = REXML::Element.new('bar', e0)
1381
- # e1.parent # => <foo> ... </>
1382
- #
1383
- # Note: the representation of an element always shows the element's name.
1384
- # If the element has children, the representation indicates that
1385
- # by including an ellipsis (<tt>...</tt>).
1386
- #
1387
- # The parent may be assigned explicitly at any time:
1388
- #
1389
- # e2 = REXML::Element.new('baz')
1390
- # e1.parent = e2
1391
- # e1.parent # => <baz/>
1392
- #
1393
- # When an element is added as a child, its parent is set automatically:
1394
- #
1395
- # e1.add_element(e0)
1396
- # e0.parent # => <bar> ... </>
1397
- #
1398
- # For an element that has no parent, method +parent+ returns +nil+.
1399
- #
1400
- # === Children
1401
- #
1402
- # An element has zero or more children.
1403
- # The children are an ordered collection
1404
- # of all objects whose parent is the element itself.
1405
- #
1406
- # The children may include any combination of elements, text, comments,
1407
- # processing instructions, and CDATA.
1408
- # (This example keeps things clean by controlling whitespace
1409
- # via a +context+ setting.)
1410
- #
1411
- # xml_string = <<-EOT
1412
- # <root>
1413
- # <ele_0/>
1414
- # text 0
1415
- # <!--comment 0-->
1416
- # <?target_0 pi_0?>
1417
- # <![CDATA[cdata 0]]>
1418
- # <ele_1/>
1419
- # text 1
1420
- # <!--comment 1-->
1421
- # <?target_0 pi_1?>
1422
- # <![CDATA[cdata 1]]>
1423
- # </root>
1424
- # EOT
1425
- # context = {ignore_whitespace_nodes: :all, compress_whitespace: :all}
1426
- # d = REXML::Document.new(xml_string, context)
1427
- # root = d.root
1428
- # root.children.size # => 10
1429
- # root.each {|child| p "#{child.class}: #{child}" }
1430
- #
1431
- # Output:
1432
- #
1433
- # "REXML::Element: <ele_0/>"
1434
- # "REXML::Text: \n text 0\n "
1435
- # "REXML::Comment: comment 0"
1436
- # "REXML::Instruction: <?target_0 pi_0?>"
1437
- # "REXML::CData: cdata 0"
1438
- # "REXML::Element: <ele_1/>"
1439
- # "REXML::Text: \n text 1\n "
1440
- # "REXML::Comment: comment 1"
1441
- # "REXML::Instruction: <?target_0 pi_1?>"
1442
- # "REXML::CData: cdata 1"
1443
- #
1444
- # A child may be added using inherited methods
1445
- # Parent#insert_before or Parent#insert_after:
1446
- #
1447
- # xml_string = '<root><a/><c/><d/></root>'
1448
- # d = REXML::Document.new(xml_string)
1449
- # root = d.root
1450
- # c = d.root[1] # => <c/>
1451
- # root.insert_before(c, REXML::Element.new('b'))
1452
- # root.to_a # => [<a/>, <b/>, <c/>, <d/>]
1453
- #
1454
- # A child may be replaced using Parent#replace_child:
1455
- #
1456
- # root.replace_child(c, REXML::Element.new('x'))
1457
- # root.to_a # => [<a/>, <b/>, <x/>, <d/>]
1458
- #
1459
- # A child may be removed using Parent#delete:
1460
- #
1461
- # x = root[2] # => <x/>
1462
- # root.delete(x)
1463
- # root.to_a # => [<a/>, <b/>, <d/>]
1464
- #
1465
- # === Siblings
1466
- #
1467
- # An element has zero or more siblings,
1468
- # which are the other children of the element's parent.
1469
- #
1470
- # In the example above, element +ele_1+ is between a CDATA sibling
1471
- # and a text sibling:
1472
- #
1473
- # ele_1 = root[5] # => <ele_1/>
1474
- # ele_1.previous_sibling # => "cdata 0"
1475
- # ele_1.next_sibling # => "\n text 1\n "
1476
- #
1477
- # === \Attributes
1478
- #
1479
- # An element has zero or more named attributes.
1480
- #
1481
- # A new element has no attributes:
1482
- #
1483
- # e = REXML::Element.new('foo')
1484
- # e.attributes # => {}
1485
- #
1486
- # Attributes may be added:
1487
- #
1488
- # e.add_attribute('bar', 'baz')
1489
- # e.add_attribute('bat', 'bam')
1490
- # e.attributes.size # => 2
1491
- # e['bar'] # => "baz"
1492
- # e['bat'] # => "bam"
1493
- #
1494
- # An existing attribute may be modified:
1495
- #
1496
- # e.add_attribute('bar', 'bad')
1497
- # e.attributes.size # => 2
1498
- # e['bar'] # => "bad"
1499
- #
1500
- # An existing attribute may be deleted:
1501
- #
1502
- # e.delete_attribute('bar')
1503
- # e.attributes.size # => 1
1504
- # e['bar'] # => nil
1505
- #
1506
- # == What's Here
1507
- #
1508
- # To begin with, what's elsewhere?
1509
- #
1510
- # \Class \REXML::Element inherits from its ancestor classes:
1511
- #
1512
- # - REXML::Child
1513
- # - REXML::Parent
1514
- #
1515
- # \REXML::Element itself and its ancestors also include modules:
1516
- #
1517
- # - {Enumerable}[https://docs.ruby-lang.org/en/master/Enumerable.html]
1518
- # - REXML::Namespace
1519
- # - REXML::Node
1520
- # - REXML::XMLTokens
1521
- #
1522
- # === Methods for Creating an \Element
1523
- #
1524
- # ::new:: Returns a new empty element.
1525
- # #clone:: Returns a clone of another element.
1526
- #
1527
- # === Methods for Attributes
1528
- #
1529
- # {[attribute_name]}[#method-i-5B-5D]:: Returns an attribute value.
1530
- # #add_attribute:: Adds a new attribute.
1531
- # #add_attributes:: Adds multiple new attributes.
1532
- # #attribute:: Returns the attribute value for a given name and optional namespace.
1533
- # #delete_attribute:: Removes an attribute.
1534
- #
1535
- # === Methods for Children
1536
- #
1537
- # {[index]}[#method-i-5B-5D]:: Returns the child at the given offset.
1538
- # #add_element:: Adds an element as the last child.
1539
- # #delete_element:: Deletes a child element.
1540
- # #each_element:: Calls the given block with each child element.
1541
- # #each_element_with_attribute:: Calls the given block with each child element
1542
- # that meets given criteria,
1543
- # which can include the attribute name.
1544
- # #each_element_with_text:: Calls the given block with each child element
1545
- # that meets given criteria,
1546
- # which can include text.
1547
- # #get_elements:: Returns an array of element children that match a given xpath.
1548
- #
1549
- # === Methods for \Text Children
1550
- #
1551
- # #add_text:: Adds a text node to the element.
1552
- # #get_text:: Returns a text node that meets specified criteria.
1553
- # #text:: Returns the text string from the first node that meets specified criteria.
1554
- # #texts:: Returns an array of the text children of the element.
1555
- # #text=:: Adds, removes, or replaces the first text child of the element
1556
- #
1557
- # === Methods for Other Children
1558
- #
1559
- # #cdatas:: Returns an array of the cdata children of the element.
1560
- # #comments:: Returns an array of the comment children of the element.
1561
- # #instructions:: Returns an array of the instruction children of the element.
1562
- #
1563
- # === Methods for Namespaces
1564
- #
1565
- # #add_namespace:: Adds a namespace to the element.
1566
- # #delete_namespace:: Removes a namespace from the element.
1567
- # #namespace:: Returns the string namespace URI for the element.
1568
- # #namespaces:: Returns a hash of all defined namespaces in the element.
1569
- # #prefixes:: Returns an array of the string prefixes (names)
1570
- # of all defined namespaces in the element
1571
- #
1572
- # === Methods for Querying
1573
- #
1574
- # #document:: Returns the document, if any, that the element belongs to.
1575
- # #root:: Returns the most distant element (not document) ancestor of the element.
1576
- # #root_node:: Returns the most distant ancestor of the element.
1577
- # #xpath:: Returns the string xpath to the element
1578
- # relative to the most distant parent
1579
- # #has_attributes?:: Returns whether the element has attributes.
1580
- # #has_elements?:: Returns whether the element has elements.
1581
- # #has_text?:: Returns whether the element has text.
1582
- # #next_element:: Returns the next sibling that is an element.
1583
- # #previous_element:: Returns the previous sibling that is an element.
1584
- # #raw:: Returns whether raw mode is set for the element.
1585
- # #whitespace:: Returns whether whitespace is respected for the element.
1586
- # #ignore_whitespace_nodes:: Returns whether whitespace nodes
1587
- # are to be ignored for the element.
1588
- # #node_type:: Returns symbol <tt>:element</tt>.
1589
- #
1590
- # === One More Method
1591
- #
1592
- # #inspect:: Returns a string representation of the element.
1593
- #
1594
- # === Accessors
1595
- #
1596
- # #elements:: Returns the REXML::Elements object for the element.
1597
- # #attributes:: Returns the REXML::Attributes object for the element.
1598
- # #context:: Returns or sets the context hash for the element.
1599
- #
1600
- # source://rexml//lib/rexml/element.rb#271
1601
- class REXML::Element < ::REXML::Parent
1602
- include ::REXML::XMLTokens
1603
- include ::REXML::Namespace
1604
-
1605
- # :call-seq:
1606
- # Element.new(name = 'UNDEFINED', parent = nil, context = nil) -> new_element
1607
- # Element.new(element, parent = nil, context = nil) -> new_element
1608
- #
1609
- # Returns a new \REXML::Element object.
1610
- #
1611
- # When no arguments are given,
1612
- # returns an element with name <tt>'UNDEFINED'</tt>:
1613
- #
1614
- # e = REXML::Element.new # => <UNDEFINED/>
1615
- # e.class # => REXML::Element
1616
- # e.name # => "UNDEFINED"
1617
- #
1618
- # When only argument +name+ is given,
1619
- # returns an element of the given name:
1620
- #
1621
- # REXML::Element.new('foo') # => <foo/>
1622
- #
1623
- # When only argument +element+ is given, it must be an \REXML::Element object;
1624
- # returns a shallow copy of the given element:
1625
- #
1626
- # e0 = REXML::Element.new('foo')
1627
- # e1 = REXML::Element.new(e0) # => <foo/>
1628
- #
1629
- # When argument +parent+ is also given, it must be an REXML::Parent object:
1630
- #
1631
- # e = REXML::Element.new('foo', REXML::Parent.new)
1632
- # e.parent # => #<REXML::Parent @parent=nil, @children=[<foo/>]>
1633
- #
1634
- # When argument +context+ is also given, it must be a hash
1635
- # representing the context for the element;
1636
- # see {Element Context}[../doc/rexml/context_rdoc.html]:
1637
- #
1638
- # e = REXML::Element.new('foo', nil, {raw: :all})
1639
- # e.context # => {:raw=>:all}
1640
- #
1641
- # @return [Element] a new instance of Element
1642
- #
1643
- # source://rexml//lib/rexml/element.rb#319
1644
- def initialize(arg = T.unsafe(nil), parent = T.unsafe(nil), context = T.unsafe(nil)); end
1645
-
1646
- # :call-seq:
1647
- # [index] -> object
1648
- # [attr_name] -> attr_value
1649
- # [attr_sym] -> attr_value
1650
- #
1651
- # With integer argument +index+ given,
1652
- # returns the child at offset +index+, or +nil+ if none:
1653
- #
1654
- # d = REXML::Document.new '><root><a/>text<b/>more<c/></root>'
1655
- # root = d.root
1656
- # (0..root.size).each do |index|
1657
- # node = root[index]
1658
- # p "#{index}: #{node} (#{node.class})"
1659
- # end
1660
- #
1661
- # Output:
1662
- #
1663
- # "0: <a/> (REXML::Element)"
1664
- # "1: text (REXML::Text)"
1665
- # "2: <b/> (REXML::Element)"
1666
- # "3: more (REXML::Text)"
1667
- # "4: <c/> (REXML::Element)"
1668
- # "5: (NilClass)"
1669
- #
1670
- # With string argument +attr_name+ given,
1671
- # returns the string value for the given attribute name if it exists,
1672
- # otherwise +nil+:
1673
- #
1674
- # d = REXML::Document.new('<root attr="value"></root>')
1675
- # root = d.root
1676
- # root['attr'] # => "value"
1677
- # root['nosuch'] # => nil
1678
- #
1679
- # With symbol argument +attr_sym+ given,
1680
- # returns <tt>[attr_sym.to_s]</tt>:
1681
- #
1682
- # root[:attr] # => "value"
1683
- # root[:nosuch] # => nil
1684
- #
1685
- # source://rexml//lib/rexml/element.rb#1246
1686
- def [](name_or_index); end
1687
-
1688
- # :call-seq:
1689
- # add_attribute(name, value) -> value
1690
- # add_attribute(attribute) -> attribute
1691
- #
1692
- # Adds an attribute to this element, overwriting any existing attribute
1693
- # by the same name.
1694
- #
1695
- # With string argument +name+ and object +value+ are given,
1696
- # adds the attribute created with that name and value:
1697
- #
1698
- # e = REXML::Element.new
1699
- # e.add_attribute('attr', 'value') # => "value"
1700
- # e['attr'] # => "value"
1701
- # e.add_attribute('attr', 'VALUE') # => "VALUE"
1702
- # e['attr'] # => "VALUE"
1703
- #
1704
- # With only attribute object +attribute+ given,
1705
- # adds the given attribute:
1706
- #
1707
- # a = REXML::Attribute.new('attr', 'value')
1708
- # e.add_attribute(a) # => attr='value'
1709
- # e['attr'] # => "value"
1710
- # a = REXML::Attribute.new('attr', 'VALUE')
1711
- # e.add_attribute(a) # => attr='VALUE'
1712
- # e['attr'] # => "VALUE"
1713
- #
1714
- # source://rexml//lib/rexml/element.rb#1345
1715
- def add_attribute(key, value = T.unsafe(nil)); end
1716
-
1717
- # :call-seq:
1718
- # add_attributes(hash) -> hash
1719
- # add_attributes(array)
1720
- #
1721
- # Adds zero or more attributes to the element;
1722
- # returns the argument.
1723
- #
1724
- # If hash argument +hash+ is given,
1725
- # each key must be a string;
1726
- # adds each attribute created with the key/value pair:
1727
- #
1728
- # e = REXML::Element.new
1729
- # h = {'foo' => 'bar', 'baz' => 'bat'}
1730
- # e.add_attributes(h)
1731
- #
1732
- # If argument +array+ is given,
1733
- # each array member must be a 2-element array <tt>[name, value];
1734
- # each name must be a string:
1735
- #
1736
- # e = REXML::Element.new
1737
- # a = [['foo' => 'bar'], ['baz' => 'bat']]
1738
- # e.add_attributes(a)
1739
- #
1740
- # source://rexml//lib/rexml/element.rb#1376
1741
- def add_attributes(hash); end
1742
-
1743
- # :call-seq:
1744
- # add_element(name, attributes = nil) -> new_element
1745
- # add_element(element, attributes = nil) -> element
1746
- #
1747
- # Adds a child element, optionally setting attributes
1748
- # on the added element; returns the added element.
1749
- #
1750
- # With string argument +name+, creates a new element with that name
1751
- # and adds the new element as a child:
1752
- #
1753
- # e0 = REXML::Element.new('foo')
1754
- # e0.add_element('bar')
1755
- # e0[0] # => <bar/>
1756
- #
1757
- #
1758
- # With argument +name+ and hash argument +attributes+,
1759
- # sets attributes on the new element:
1760
- #
1761
- # e0.add_element('baz', {'bat' => '0', 'bam' => '1'})
1762
- # e0[1] # => <baz bat='0' bam='1'/>
1763
- #
1764
- # With element argument +element+, adds that element as a child:
1765
- #
1766
- # e0 = REXML::Element.new('foo')
1767
- # e1 = REXML::Element.new('bar')
1768
- # e0.add_element(e1)
1769
- # e0[0] # => <bar/>
1770
- #
1771
- # With argument +element+ and hash argument +attributes+,
1772
- # sets attributes on the added element:
1773
- #
1774
- # e0.add_element(e1, {'bat' => '0', 'bam' => '1'})
1775
- # e0[1] # => <bar bat='0' bam='1'/>
1776
- #
1777
- # source://rexml//lib/rexml/element.rb#732
1778
- def add_element(element, attrs = T.unsafe(nil)); end
1779
-
1780
- # :call-seq:
1781
- # add_namespace(prefix, uri = nil) -> self
1782
- #
1783
- # Adds a namespace to the element; returns +self+.
1784
- #
1785
- # With the single argument +prefix+,
1786
- # adds a namespace using the given +prefix+ and the namespace URI:
1787
- #
1788
- # e = REXML::Element.new('foo')
1789
- # e.add_namespace('bar')
1790
- # e.namespaces # => {"xmlns"=>"bar"}
1791
- #
1792
- # With both arguments +prefix+ and +uri+ given,
1793
- # adds a namespace using both arguments:
1794
- #
1795
- # e.add_namespace('baz', 'bat')
1796
- # e.namespaces # => {"xmlns"=>"bar", "baz"=>"bat"}
1797
- #
1798
- # source://rexml//lib/rexml/element.rb#655
1799
- def add_namespace(prefix, uri = T.unsafe(nil)); end
1800
-
1801
- # :call-seq:
1802
- # add_text(string) -> nil
1803
- # add_text(text_node) -> self
1804
- #
1805
- # Adds text to the element.
1806
- #
1807
- # When string argument +string+ is given, returns +nil+.
1808
- #
1809
- # If the element has no child text node,
1810
- # creates a \REXML::Text object using the string,
1811
- # honoring the current settings for whitespace and raw,
1812
- # then adds that node to the element:
1813
- #
1814
- # d = REXML::Document.new('<a><b/></a>')
1815
- # a = d.root
1816
- # a.add_text('foo')
1817
- # a.to_a # => [<b/>, "foo"]
1818
- #
1819
- # If the element has child text nodes,
1820
- # appends the string to the _last_ text node:
1821
- #
1822
- # d = REXML::Document.new('<a>foo<b/>bar</a>')
1823
- # a = d.root
1824
- # a.add_text('baz')
1825
- # a.to_a # => ["foo", <b/>, "barbaz"]
1826
- # a.add_text('baz')
1827
- # a.to_a # => ["foo", <b/>, "barbazbaz"]
1828
- #
1829
- # When text node argument +text_node+ is given,
1830
- # appends the node as the last text node in the element;
1831
- # returns +self+:
1832
- #
1833
- # d = REXML::Document.new('<a>foo<b/>bar</a>')
1834
- # a = d.root
1835
- # a.add_text(REXML::Text.new('baz'))
1836
- # a.to_a # => ["foo", <b/>, "bar", "baz"]
1837
- # a.add_text(REXML::Text.new('baz'))
1838
- # a.to_a # => ["foo", <b/>, "bar", "baz", "baz"]
1839
- #
1840
- # source://rexml//lib/rexml/element.rb#1147
1841
- def add_text(text); end
1842
-
1843
- # :call-seq:
1844
- # attribute(name, namespace = nil)
1845
- #
1846
- # Returns the string value for the given attribute name.
1847
- #
1848
- # With only argument +name+ given,
1849
- # returns the value of the named attribute if it exists, otherwise +nil+:
1850
- #
1851
- # xml_string = <<-EOT
1852
- # <root xmlns="ns0">
1853
- # <a xmlns="ns1" attr="value"></a>
1854
- # <b xmlns="ns2" attr="value"></b>
1855
- # <c attr="value"/>
1856
- # </root>
1857
- # EOT
1858
- # d = REXML::Document.new(xml_string)
1859
- # root = d.root
1860
- # a = root[1] # => <a xmlns='ns1' attr='value'/>
1861
- # a.attribute('attr') # => attr='value'
1862
- # a.attribute('nope') # => nil
1863
- #
1864
- # With arguments +name+ and +namespace+ given,
1865
- # returns the value of the named attribute if it exists, otherwise +nil+:
1866
- #
1867
- # xml_string = "<root xmlns:a='a' a:x='a:x' x='x'/>"
1868
- # document = REXML::Document.new(xml_string)
1869
- # document.root.attribute("x") # => x='x'
1870
- # document.root.attribute("x", "a") # => a:x='a:x'
1871
- #
1872
- # source://rexml//lib/rexml/element.rb#1287
1873
- def attribute(name, namespace = T.unsafe(nil)); end
1874
-
1875
- # Mechanisms for accessing attributes and child elements of this
1876
- # element.
1877
- #
1878
- # source://rexml//lib/rexml/element.rb#278
1879
- def attributes; end
1880
-
1881
- # :call-seq:
1882
- # cdatas -> array_of_cdata_children
1883
- #
1884
- # Returns a frozen array of the REXML::CData children of the element:
1885
- #
1886
- # xml_string = <<-EOT
1887
- # <root>
1888
- # <![CDATA[foo]]>
1889
- # <![CDATA[bar]]>
1890
- # </root>
1891
- # EOT
1892
- # d = REXML::Document.new(xml_string)
1893
- # cds = d.root.cdatas # => ["foo", "bar"]
1894
- # cds.frozen? # => true
1895
- # cds.map {|cd| cd.class } # => [REXML::CData, REXML::CData]
1896
- #
1897
- # source://rexml//lib/rexml/element.rb#1420
1898
- def cdatas; end
1899
-
1900
- # :call-seq:
1901
- # clone -> new_element
1902
- #
1903
- # Returns a shallow copy of the element, containing the name and attributes,
1904
- # but not the parent or children:
1905
- #
1906
- # e = REXML::Element.new('foo')
1907
- # e.add_attributes({'bar' => 0, 'baz' => 1})
1908
- # e.clone # => <foo bar='0' baz='1'/>
1909
- #
1910
- # source://rexml//lib/rexml/element.rb#383
1911
- def clone; end
1912
-
1913
- # :call-seq:
1914
- # comments -> array_of_comment_children
1915
- #
1916
- # Returns a frozen array of the REXML::Comment children of the element:
1917
- #
1918
- # xml_string = <<-EOT
1919
- # <root>
1920
- # <!--foo-->
1921
- # <!--bar-->
1922
- # </root>
1923
- # EOT
1924
- # d = REXML::Document.new(xml_string)
1925
- # cs = d.root.comments
1926
- # cs.frozen? # => true
1927
- # cs.map {|c| c.class } # => [REXML::Comment, REXML::Comment]
1928
- # cs.map {|c| c.to_s } # => ["foo", "bar"]
1929
- #
1930
- # source://rexml//lib/rexml/element.rb#1441
1931
- def comments; end
1932
-
1933
- # The context holds information about the processing environment, such as
1934
- # whitespace handling.
1935
- #
1936
- # source://rexml//lib/rexml/element.rb#281
1937
- def context; end
1938
-
1939
- # The context holds information about the processing environment, such as
1940
- # whitespace handling.
1941
- #
1942
- # source://rexml//lib/rexml/element.rb#281
1943
- def context=(_arg0); end
1944
-
1945
- # :call-seq:
1946
- # delete_attribute(name) -> removed_attribute or nil
1947
- #
1948
- # Removes a named attribute if it exists;
1949
- # returns the removed attribute if found, otherwise +nil+:
1950
- #
1951
- # e = REXML::Element.new('foo')
1952
- # e.add_attribute('bar', 'baz')
1953
- # e.delete_attribute('bar') # => <bar/>
1954
- # e.delete_attribute('bar') # => nil
1955
- #
1956
- # source://rexml//lib/rexml/element.rb#1395
1957
- def delete_attribute(key); end
1958
-
1959
- # :call-seq:
1960
- # delete_element(index) -> removed_element or nil
1961
- # delete_element(element) -> removed_element or nil
1962
- # delete_element(xpath) -> removed_element or nil
1963
- #
1964
- # Deletes a child element.
1965
- #
1966
- # When 1-based integer argument +index+ is given,
1967
- # removes and returns the child element at that offset if it exists;
1968
- # indexing does not include text nodes;
1969
- # returns +nil+ if the element does not exist:
1970
- #
1971
- # d = REXML::Document.new '<a><b/>text<c/></a>'
1972
- # a = d.root # => <a> ... </>
1973
- # a.delete_element(1) # => <b/>
1974
- # a.delete_element(1) # => <c/>
1975
- # a.delete_element(1) # => nil
1976
- #
1977
- # When element argument +element+ is given,
1978
- # removes and returns that child element if it exists,
1979
- # otherwise returns +nil+:
1980
- #
1981
- # d = REXML::Document.new '<a><b/>text<c/></a>'
1982
- # a = d.root # => <a> ... </>
1983
- # c = a[2] # => <c/>
1984
- # a.delete_element(c) # => <c/>
1985
- # a.delete_element(c) # => nil
1986
- #
1987
- # When xpath argument +xpath+ is given,
1988
- # removes and returns the element at xpath if it exists,
1989
- # otherwise returns +nil+:
1990
- #
1991
- # d = REXML::Document.new '<a><b/>text<c/></a>'
1992
- # a = d.root # => <a> ... </>
1993
- # a.delete_element('//c') # => <c/>
1994
- # a.delete_element('//c') # => nil
1995
- #
1996
- # source://rexml//lib/rexml/element.rb#778
1997
- def delete_element(element); end
1998
-
1999
- # :call-seq:
2000
- # delete_namespace(namespace = 'xmlns') -> self
2001
- #
2002
- # Removes a namespace from the element.
2003
- #
2004
- # With no argument, removes the default namespace:
2005
- #
2006
- # d = REXML::Document.new "<a xmlns:foo='bar' xmlns='twiddle'/>"
2007
- # d.to_s # => "<a xmlns:foo='bar' xmlns='twiddle'/>"
2008
- # d.root.delete_namespace # => <a xmlns:foo='bar'/>
2009
- # d.to_s # => "<a xmlns:foo='bar'/>"
2010
- #
2011
- # With argument +namespace+, removes the specified namespace:
2012
- #
2013
- # d.root.delete_namespace('foo')
2014
- # d.to_s # => "<a/>"
2015
- #
2016
- # Does nothing if no such namespace is found:
2017
- #
2018
- # d.root.delete_namespace('nosuch')
2019
- # d.to_s # => "<a/>"
2020
- #
2021
- # source://rexml//lib/rexml/element.rb#687
2022
- def delete_namespace(namespace = T.unsafe(nil)); end
2023
-
2024
- # :call-seq:
2025
- # document -> document or nil
2026
- #
2027
- # If the element is part of a document, returns that document:
2028
- #
2029
- # d = REXML::Document.new('<a><b><c/></b></a>')
2030
- # top_element = d.first
2031
- # child = top_element.first
2032
- # top_element.document == d # => true
2033
- # child.document == d # => true
2034
- #
2035
- # If the element is not part of a document, returns +nil+:
2036
- #
2037
- # REXML::Element.new.document # => nil
2038
- #
2039
- # For a document, returns +self+:
2040
- #
2041
- # d.document == d # => true
2042
- #
2043
- # Related: #root, #root_node.
2044
- #
2045
- # source://rexml//lib/rexml/element.rb#475
2046
- def document; end
2047
-
2048
- # :call-seq:
2049
- # each_element {|e| ... }
2050
- #
2051
- # Calls the given block with each child element:
2052
- #
2053
- # d = REXML::Document.new '<a><b>b</b><c>b</c><d>d</d><e/></a>'
2054
- # a = d.root
2055
- # a.each_element {|e| p e }
2056
- #
2057
- # Output:
2058
- #
2059
- # <b> ... </>
2060
- # <c> ... </>
2061
- # <d> ... </>
2062
- # <e/>
2063
- #
2064
- # source://rexml//lib/rexml/element.rb#930
2065
- def each_element(xpath = T.unsafe(nil), &block); end
2066
-
2067
- # :call-seq:
2068
- # each_element_with_attribute(attr_name, value = nil, max = 0, xpath = nil) {|e| ... }
2069
- #
2070
- # Calls the given block with each child element that meets given criteria.
2071
- #
2072
- # When only string argument +attr_name+ is given,
2073
- # calls the block with each child element that has that attribute:
2074
- #
2075
- # d = REXML::Document.new '<a><b id="1"/><c id="2"/><d id="1"/><e/></a>'
2076
- # a = d.root
2077
- # a.each_element_with_attribute('id') {|e| p e }
2078
- #
2079
- # Output:
2080
- #
2081
- # <b id='1'/>
2082
- # <c id='2'/>
2083
- # <d id='1'/>
2084
- #
2085
- # With argument +attr_name+ and string argument +value+ given,
2086
- # calls the block with each child element that has that attribute
2087
- # with that value:
2088
- #
2089
- # a.each_element_with_attribute('id', '1') {|e| p e }
2090
- #
2091
- # Output:
2092
- #
2093
- # <b id='1'/>
2094
- # <d id='1'/>
2095
- #
2096
- # With arguments +attr_name+, +value+, and integer argument +max+ given,
2097
- # calls the block with at most +max+ child elements:
2098
- #
2099
- # a.each_element_with_attribute('id', '1', 1) {|e| p e }
2100
- #
2101
- # Output:
2102
- #
2103
- # <b id='1'/>
2104
- #
2105
- # With all arguments given, including +xpath+,
2106
- # calls the block with only those child elements
2107
- # that meet the first three criteria,
2108
- # and also match the given +xpath+:
2109
- #
2110
- # a.each_element_with_attribute('id', '1', 2, '//d') {|e| p e }
2111
- #
2112
- # Output:
2113
- #
2114
- # <d id='1'/>
2115
- #
2116
- # source://rexml//lib/rexml/element.rb#847
2117
- def each_element_with_attribute(key, value = T.unsafe(nil), max = T.unsafe(nil), name = T.unsafe(nil), &block); end
2118
-
2119
- # :call-seq:
2120
- # each_element_with_text(text = nil, max = 0, xpath = nil) {|e| ... }
2121
- #
2122
- # Calls the given block with each child element that meets given criteria.
2123
- #
2124
- # With no arguments, calls the block with each child element that has text:
2125
- #
2126
- # d = REXML::Document.new '<a><b>b</b><c>b</c><d>d</d><e/></a>'
2127
- # a = d.root
2128
- # a.each_element_with_text {|e| p e }
2129
- #
2130
- # Output:
2131
- #
2132
- # <b> ... </>
2133
- # <c> ... </>
2134
- # <d> ... </>
2135
- #
2136
- # With the single string argument +text+,
2137
- # calls the block with each element that has exactly that text:
2138
- #
2139
- # a.each_element_with_text('b') {|e| p e }
2140
- #
2141
- # Output:
2142
- #
2143
- # <b> ... </>
2144
- # <c> ... </>
2145
- #
2146
- # With argument +text+ and integer argument +max+,
2147
- # calls the block with at most +max+ elements:
2148
- #
2149
- # a.each_element_with_text('b', 1) {|e| p e }
2150
- #
2151
- # Output:
2152
- #
2153
- # <b> ... </>
2154
- #
2155
- # With all arguments given, including +xpath+,
2156
- # calls the block with only those child elements
2157
- # that meet the first two criteria,
2158
- # and also match the given +xpath+:
2159
- #
2160
- # a.each_element_with_text('b', 2, '//c') {|e| p e }
2161
- #
2162
- # Output:
2163
- #
2164
- # <c> ... </>
2165
- #
2166
- # source://rexml//lib/rexml/element.rb#904
2167
- def each_element_with_text(text = T.unsafe(nil), max = T.unsafe(nil), name = T.unsafe(nil), &block); end
2168
-
2169
- # Mechanisms for accessing attributes and child elements of this
2170
- # element.
2171
- #
2172
- # source://rexml//lib/rexml/element.rb#278
2173
- def elements; end
2174
-
2175
- # :call-seq:
2176
- # get_elements(xpath)
2177
- #
2178
- # Returns an array of the elements that match the given +xpath+:
2179
- #
2180
- # xml_string = <<-EOT
2181
- # <root>
2182
- # <a level='1'>
2183
- # <a level='2'/>
2184
- # </a>
2185
- # </root>
2186
- # EOT
2187
- # d = REXML::Document.new(xml_string)
2188
- # d.root.get_elements('//a') # => [<a level='1'> ... </>, <a level='2'/>]
2189
- #
2190
- # source://rexml//lib/rexml/element.rb#949
2191
- def get_elements(xpath); end
2192
-
2193
- # :call-seq:
2194
- # get_text(xpath = nil) -> text_node or nil
2195
- #
2196
- # Returns the first text node child in a specified element, if it exists,
2197
- # +nil+ otherwise.
2198
- #
2199
- # With no argument, returns the first text node from +self+:
2200
- #
2201
- # d = REXML::Document.new "<p>some text <b>this is bold!</b> more text</p>"
2202
- # d.root.get_text.class # => REXML::Text
2203
- # d.root.get_text # => "some text "
2204
- #
2205
- # With argument +xpath+, returns the first text node from the element
2206
- # that matches +xpath+:
2207
- #
2208
- # d.root.get_text(1) # => "this is bold!"
2209
- #
2210
- # source://rexml//lib/rexml/element.rb#1053
2211
- def get_text(path = T.unsafe(nil)); end
2212
-
2213
- # :call-seq:
2214
- # has_attributes? -> true or false
2215
- #
2216
- # Returns +true+ if the element has attributes, +false+ otherwise:
2217
- #
2218
- # d = REXML::Document.new('<root><a attr="val"/><b/></root>')
2219
- # a, b = *d.root
2220
- # a.has_attributes? # => true
2221
- # b.has_attributes? # => false
2222
- #
2223
- # @return [Boolean]
2224
- #
2225
- # source://rexml//lib/rexml/element.rb#1315
2226
- def has_attributes?; end
2227
-
2228
- # :call-seq:
2229
- # has_elements?
2230
- #
2231
- # Returns +true+ if the element has one or more element children,
2232
- # +false+ otherwise:
2233
- #
2234
- # d = REXML::Document.new '<a><b/>text<c/></a>'
2235
- # a = d.root # => <a> ... </>
2236
- # a.has_elements? # => true
2237
- # b = a[0] # => <b/>
2238
- # b.has_elements? # => false
2239
- #
2240
- # @return [Boolean]
2241
- #
2242
- # source://rexml//lib/rexml/element.rb#794
2243
- def has_elements?; end
2244
-
2245
- # :call-seq:
2246
- # has_text? -> true or false
2247
- #
2248
- # Returns +true+ if the element has one or more text noded,
2249
- # +false+ otherwise:
2250
- #
2251
- # d = REXML::Document.new '<a><b/>text<c/></a>'
2252
- # a = d.root
2253
- # a.has_text? # => true
2254
- # b = a[0]
2255
- # b.has_text? # => false
2256
- #
2257
- # @return [Boolean]
2258
- #
2259
- # source://rexml//lib/rexml/element.rb#1002
2260
- def has_text?; end
2261
-
2262
- # :call-seq:
2263
- # ignore_whitespace_nodes
2264
- #
2265
- # Returns +true+ if whitespace nodes are ignored for the element.
2266
- #
2267
- # See {Element Context}[../doc/rexml/context_rdoc.html].
2268
- #
2269
- # source://rexml//lib/rexml/element.rb#513
2270
- def ignore_whitespace_nodes; end
2271
-
2272
- # :call-seq:
2273
- # inspect -> string
2274
- #
2275
- # Returns a string representation of the element.
2276
- #
2277
- # For an element with no attributes and no children, shows the element name:
2278
- #
2279
- # REXML::Element.new.inspect # => "<UNDEFINED/>"
2280
- #
2281
- # Shows attributes, if any:
2282
- #
2283
- # e = REXML::Element.new('foo')
2284
- # e.add_attributes({'bar' => 0, 'baz' => 1})
2285
- # e.inspect # => "<foo bar='0' baz='1'/>"
2286
- #
2287
- # Shows an ellipsis (<tt>...</tt>), if there are child elements:
2288
- #
2289
- # e.add_element(REXML::Element.new('bar'))
2290
- # e.add_element(REXML::Element.new('baz'))
2291
- # e.inspect # => "<foo bar='0' baz='1'> ... </>"
2292
- #
2293
- # source://rexml//lib/rexml/element.rb#358
2294
- def inspect; end
2295
-
2296
- # :call-seq:
2297
- # instructions -> array_of_instruction_children
2298
- #
2299
- # Returns a frozen array of the REXML::Instruction children of the element:
2300
- #
2301
- # xml_string = <<-EOT
2302
- # <root>
2303
- # <?target0 foo?>
2304
- # <?target1 bar?>
2305
- # </root>
2306
- # EOT
2307
- # d = REXML::Document.new(xml_string)
2308
- # is = d.root.instructions
2309
- # is.frozen? # => true
2310
- # is.map {|i| i.class } # => [REXML::Instruction, REXML::Instruction]
2311
- # is.map {|i| i.to_s } # => ["<?target0 foo?>", "<?target1 bar?>"]
2312
- #
2313
- # source://rexml//lib/rexml/element.rb#1462
2314
- def instructions; end
2315
-
2316
- # :call-seq:
2317
- # namespace(prefix = nil) -> string_uri or nil
2318
- #
2319
- # Returns the string namespace URI for the element,
2320
- # possibly deriving from one of its ancestors.
2321
- #
2322
- # xml_string = <<-EOT
2323
- # <root>
2324
- # <a xmlns='1' xmlns:y='2'>
2325
- # <b/>
2326
- # <c xmlns:z='3'/>
2327
- # </a>
2328
- # </root>
2329
- # EOT
2330
- # d = REXML::Document.new(xml_string)
2331
- # b = d.elements['//b']
2332
- # b.namespace # => "1"
2333
- # b.namespace('y') # => "2"
2334
- # b.namespace('nosuch') # => nil
2335
- #
2336
- # source://rexml//lib/rexml/element.rb#618
2337
- def namespace(prefix = T.unsafe(nil)); end
2338
-
2339
- # :call-seq:
2340
- # namespaces -> array_of_namespace_names
2341
- #
2342
- # Returns a hash of all defined namespaces
2343
- # in the element and its ancestors:
2344
- #
2345
- # xml_string = <<-EOT
2346
- # <root>
2347
- # <a xmlns:x='1' xmlns:y='2'>
2348
- # <b/>
2349
- # <c xmlns:z='3'/>
2350
- # </a>
2351
- # </root>
2352
- # EOT
2353
- # d = REXML::Document.new(xml_string)
2354
- # d.elements['//a'].namespaces # => {"x"=>"1", "y"=>"2"}
2355
- # d.elements['//b'].namespaces # => {"x"=>"1", "y"=>"2"}
2356
- # d.elements['//c'].namespaces # => {"x"=>"1", "y"=>"2", "z"=>"3"}
2357
- #
2358
- # source://rexml//lib/rexml/element.rb#591
2359
- def namespaces; end
2360
-
2361
- # :call-seq:
2362
- # next_element
2363
- #
2364
- # Returns the next sibling that is an element if it exists,
2365
- # +niL+ otherwise:
2366
- #
2367
- # d = REXML::Document.new '<a><b/>text<c/></a>'
2368
- # d.root.elements['b'].next_element #-> <c/>
2369
- # d.root.elements['c'].next_element #-> nil
2370
- #
2371
- # source://rexml//lib/rexml/element.rb#963
2372
- def next_element; end
2373
-
2374
- # :call-seq:
2375
- # node_type -> :element
2376
- #
2377
- # Returns symbol <tt>:element</tt>:
2378
- #
2379
- # d = REXML::Document.new('<a/>')
2380
- # a = d.root # => <a/>
2381
- # a.node_type # => :element
2382
- #
2383
- # source://rexml//lib/rexml/element.rb#1168
2384
- def node_type; end
2385
-
2386
- # :call-seq:
2387
- # prefixes -> array_of_namespace_prefixes
2388
- #
2389
- # Returns an array of the string prefixes (names) of all defined namespaces
2390
- # in the element and its ancestors:
2391
- #
2392
- # xml_string = <<-EOT
2393
- # <root>
2394
- # <a xmlns:x='1' xmlns:y='2'>
2395
- # <b/>
2396
- # <c xmlns:z='3'/>
2397
- # </a>
2398
- # </root>
2399
- # EOT
2400
- # d = REXML::Document.new(xml_string, {compress_whitespace: :all})
2401
- # d.elements['//a'].prefixes # => ["x", "y"]
2402
- # d.elements['//b'].prefixes # => ["x", "y"]
2403
- # d.elements['//c'].prefixes # => ["x", "y", "z"]
2404
- #
2405
- # source://rexml//lib/rexml/element.rb#565
2406
- def prefixes; end
2407
-
2408
- # :call-seq:
2409
- # previous_element
2410
- #
2411
- # Returns the previous sibling that is an element if it exists,
2412
- # +niL+ otherwise:
2413
- #
2414
- # d = REXML::Document.new '<a><b/>text<c/></a>'
2415
- # d.root.elements['c'].previous_element #-> <b/>
2416
- # d.root.elements['b'].previous_element #-> nil
2417
- #
2418
- # source://rexml//lib/rexml/element.rb#979
2419
- def previous_element; end
2420
-
2421
- # :call-seq:
2422
- # raw
2423
- #
2424
- # Returns +true+ if raw mode is set for the element.
2425
- #
2426
- # See {Element Context}[../doc/rexml/context_rdoc.html].
2427
- #
2428
- # The evaluation is tested against +expanded_name+, and so is namespace
2429
- # sensitive.
2430
- #
2431
- # source://rexml//lib/rexml/element.rb#533
2432
- def raw; end
2433
-
2434
- # :call-seq:
2435
- # root -> element
2436
- #
2437
- # Returns the most distant _element_ (not document) ancestor of the element:
2438
- #
2439
- # d = REXML::Document.new('<a><b><c/></b></a>')
2440
- # top_element = d.first
2441
- # child = top_element.first
2442
- # top_element.root == top_element # => true
2443
- # child.root == top_element # => true
2444
- #
2445
- # For a document, returns the topmost element:
2446
- #
2447
- # d.root == top_element # => true
2448
- #
2449
- # Related: #root_node, #document.
2450
- #
2451
- # source://rexml//lib/rexml/element.rb#443
2452
- def root; end
2453
-
2454
- # :call-seq:
2455
- # root_node -> document or element
2456
- #
2457
- # Returns the most distant ancestor of +self+.
2458
- #
2459
- # When the element is part of a document,
2460
- # returns the root node of the document.
2461
- # Note that the root node is different from the document element;
2462
- # in this example +a+ is document element and the root node is its parent:
2463
- #
2464
- # d = REXML::Document.new('<a><b><c/></b></a>')
2465
- # top_element = d.first # => <a> ... </>
2466
- # child = top_element.first # => <b> ... </>
2467
- # d.root_node == d # => true
2468
- # top_element.root_node == d # => true
2469
- # child.root_node == d # => true
2470
- #
2471
- # When the element is not part of a document, but does have ancestor elements,
2472
- # returns the most distant ancestor element:
2473
- #
2474
- # e0 = REXML::Element.new('foo')
2475
- # e1 = REXML::Element.new('bar')
2476
- # e1.parent = e0
2477
- # e2 = REXML::Element.new('baz')
2478
- # e2.parent = e1
2479
- # e2.root_node == e0 # => true
2480
- #
2481
- # When the element has no ancestor elements,
2482
- # returns +self+:
2483
- #
2484
- # e = REXML::Element.new('foo')
2485
- # e.root_node == e # => true
2486
- #
2487
- # Related: #root, #document.
2488
- #
2489
- # source://rexml//lib/rexml/element.rb#422
2490
- def root_node; end
2491
-
2492
- # :call-seq:
2493
- # text(xpath = nil) -> text_string or nil
2494
- #
2495
- # Returns the text string from the first text node child
2496
- # in a specified element, if it exists, +nil+ otherwise.
2497
- #
2498
- # With no argument, returns the text from the first text node in +self+:
2499
- #
2500
- # d = REXML::Document.new "<p>some text <b>this is bold!</b> more text</p>"
2501
- # d.root.text.class # => String
2502
- # d.root.text # => "some text "
2503
- #
2504
- # With argument +xpath+, returns text from the first text node
2505
- # in the element that matches +xpath+:
2506
- #
2507
- # d.root.text(1) # => "this is bold!"
2508
- #
2509
- # Note that an element may have multiple text nodes,
2510
- # possibly separated by other non-text children, as above.
2511
- # Even so, the returned value is the string text from the first such node.
2512
- #
2513
- # Note also that the text note is retrieved by method get_text,
2514
- # and so is always normalized text.
2515
- #
2516
- # source://rexml//lib/rexml/element.rb#1030
2517
- def text(path = T.unsafe(nil)); end
2518
-
2519
- # :call-seq:
2520
- # text = string -> string
2521
- # text = nil -> nil
2522
- #
2523
- # Adds, replaces, or removes the first text node child in the element.
2524
- #
2525
- # With string argument +string+,
2526
- # creates a new \REXML::Text node containing that string,
2527
- # honoring the current settings for whitespace and row,
2528
- # then places the node as the first text child in the element;
2529
- # returns +string+.
2530
- #
2531
- # If the element has no text child, the text node is added:
2532
- #
2533
- # d = REXML::Document.new '<a><b/></a>'
2534
- # d.root.text = 'foo' #-> '<a><b/>foo</a>'
2535
- #
2536
- # If the element has a text child, it is replaced:
2537
- #
2538
- # d.root.text = 'bar' #-> '<a><b/>bar</a>'
2539
- #
2540
- # With argument +nil+, removes the first text child:
2541
- #
2542
- # d.root.text = nil #-> '<a><b/><c/></a>'
2543
- #
2544
- # source://rexml//lib/rexml/element.rb#1089
2545
- def text=(text); end
2546
-
2547
- # :call-seq:
2548
- # texts -> array_of_text_children
2549
- #
2550
- # Returns a frozen array of the REXML::Text children of the element:
2551
- #
2552
- # xml_string = '<root><a/>text<b/>more<c/></root>'
2553
- # d = REXML::Document.new(xml_string)
2554
- # ts = d.root.texts
2555
- # ts.frozen? # => true
2556
- # ts.map {|t| t.class } # => [REXML::Text, REXML::Text]
2557
- # ts.map {|t| t.to_s } # => ["text", "more"]
2558
- #
2559
- # source://rexml//lib/rexml/element.rb#1478
2560
- def texts; end
2561
-
2562
- # :call-seq:
2563
- # whitespace
2564
- #
2565
- # Returns +true+ if whitespace is respected for this element,
2566
- # +false+ otherwise.
2567
- #
2568
- # See {Element Context}[../doc/rexml/context_rdoc.html].
2569
- #
2570
- # The evaluation is tested against the element's +expanded_name+,
2571
- # and so is namespace-sensitive.
2572
- #
2573
- # source://rexml//lib/rexml/element.rb#490
2574
- def whitespace; end
2575
-
2576
- # == DEPRECATED
2577
- # See REXML::Formatters
2578
- #
2579
- # Writes out this element, and recursively, all children.
2580
- # output::
2581
- # output an object which supports '<< string'; this is where the
2582
- # document will be written.
2583
- # indent::
2584
- # An integer. If -1, no indenting will be used; otherwise, the
2585
- # indentation will be this number of spaces, and children will be
2586
- # indented an additional amount. Defaults to -1
2587
- # transitive::
2588
- # If transitive is true and indent is >= 0, then the output will be
2589
- # pretty-printed in such a way that the added whitespace does not affect
2590
- # the parse tree of the document
2591
- # ie_hack::
2592
- # This hack inserts a space before the /> on empty tags to address
2593
- # a limitation of Internet Explorer. Defaults to false
2594
- #
2595
- # out = ''
2596
- # doc.write( out ) #-> doc is written to the string 'out'
2597
- # doc.write( $stdout ) #-> doc written to the console
2598
- #
2599
- # source://rexml//lib/rexml/element.rb#1504
2600
- def write(output = T.unsafe(nil), indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
2601
-
2602
- # :call-seq:
2603
- # xpath -> string_xpath
2604
- #
2605
- # Returns the string xpath to the element
2606
- # relative to the most distant parent:
2607
- #
2608
- # d = REXML::Document.new('<a><b><c/></b></a>')
2609
- # a = d.root # => <a> ... </>
2610
- # b = a[0] # => <b> ... </>
2611
- # c = b[0] # => <c/>
2612
- # d.xpath # => ""
2613
- # a.xpath # => "/a"
2614
- # b.xpath # => "/a/b"
2615
- # c.xpath # => "/a/b/c"
2616
- #
2617
- # If there is no parent, returns the expanded name of the element:
2618
- #
2619
- # e = REXML::Element.new('foo')
2620
- # e.xpath # => "foo"
2621
- #
2622
- # source://rexml//lib/rexml/element.rb#1192
2623
- def xpath; end
2624
-
2625
- private
2626
-
2627
- # source://rexml//lib/rexml/element.rb#1521
2628
- def __to_xpath_helper(node); end
2629
-
2630
- # A private helper method
2631
- #
2632
- # source://rexml//lib/rexml/element.rb#1536
2633
- def each_with_something(test, max = T.unsafe(nil), name = T.unsafe(nil)); end
2634
- end
2635
-
2636
- # source://rexml//lib/rexml/doctype.rb#261
2637
- class REXML::ElementDecl < ::REXML::Declaration
2638
- # @return [ElementDecl] a new instance of ElementDecl
2639
- #
2640
- # source://rexml//lib/rexml/doctype.rb#262
2641
- def initialize(src); end
2642
- end
2643
-
2644
- # A class which provides filtering of children for Elements, and
2645
- # XPath search support. You are expected to only encounter this class as
2646
- # the <tt>element.elements</tt> object. Therefore, you are
2647
- # _not_ expected to instantiate this yourself.
2648
- #
2649
- # xml_string = <<-EOT
2650
- # <?xml version="1.0" encoding="UTF-8"?>
2651
- # <bookstore>
2652
- # <book category="cooking">
2653
- # <title lang="en">Everyday Italian</title>
2654
- # <author>Giada De Laurentiis</author>
2655
- # <year>2005</year>
2656
- # <price>30.00</price>
2657
- # </book>
2658
- # <book category="children">
2659
- # <title lang="en">Harry Potter</title>
2660
- # <author>J K. Rowling</author>
2661
- # <year>2005</year>
2662
- # <price>29.99</price>
2663
- # </book>
2664
- # <book category="web">
2665
- # <title lang="en">XQuery Kick Start</title>
2666
- # <author>James McGovern</author>
2667
- # <author>Per Bothner</author>
2668
- # <author>Kurt Cagle</author>
2669
- # <author>James Linn</author>
2670
- # <author>Vaidyanathan Nagarajan</author>
2671
- # <year>2003</year>
2672
- # <price>49.99</price>
2673
- # </book>
2674
- # <book category="web" cover="paperback">
2675
- # <title lang="en">Learning XML</title>
2676
- # <author>Erik T. Ray</author>
2677
- # <year>2003</year>
2678
- # <price>39.95</price>
2679
- # </book>
2680
- # </bookstore>
2681
- # EOT
2682
- # d = REXML::Document.new(xml_string)
2683
- # elements = d.root.elements
2684
- # elements # => #<REXML::Elements @element=<bookstore> ... </>>
2685
- #
2686
- # source://rexml//lib/rexml/element.rb#1591
2687
- class REXML::Elements
2688
- include ::Enumerable
2689
-
2690
- # :call-seq:
2691
- # new(parent) -> new_elements_object
2692
- #
2693
- # Returns a new \Elements object with the given +parent+.
2694
- # Does _not_ assign <tt>parent.elements = self</tt>:
2695
- #
2696
- # d = REXML::Document.new(xml_string)
2697
- # eles = REXML::Elements.new(d.root)
2698
- # eles # => #<REXML::Elements @element=<bookstore> ... </>>
2699
- # eles == d.root.elements # => false
2700
- #
2701
- # @return [Elements] a new instance of Elements
2702
- #
2703
- # source://rexml//lib/rexml/element.rb#1604
2704
- def initialize(parent); end
2705
-
2706
- # :call-seq:
2707
- # add -> new_element
2708
- # add(name) -> new_element
2709
- # add(element) -> element
2710
- #
2711
- # Adds an element; returns the element added.
2712
- #
2713
- # With no argument, creates and adds a new element.
2714
- # The new element has:
2715
- #
2716
- # - No name.
2717
- # - \Parent from the \Elements object.
2718
- # - Context from the that parent.
2719
- #
2720
- # Example:
2721
- #
2722
- # d = REXML::Document.new(xml_string)
2723
- # elements = d.root.elements
2724
- # parent = elements.parent # => <bookstore> ... </>
2725
- # parent.context = {raw: :all}
2726
- # elements.size # => 4
2727
- # new_element = elements.add # => </>
2728
- # elements.size # => 5
2729
- # new_element.name # => nil
2730
- # new_element.parent # => <bookstore> ... </>
2731
- # new_element.context # => {:raw=>:all}
2732
- #
2733
- # With string argument +name+, creates and adds a new element.
2734
- # The new element has:
2735
- #
2736
- # - Name +name+.
2737
- # - \Parent from the \Elements object.
2738
- # - Context from the that parent.
2739
- #
2740
- # Example:
2741
- #
2742
- # d = REXML::Document.new(xml_string)
2743
- # elements = d.root.elements
2744
- # parent = elements.parent # => <bookstore> ... </>
2745
- # parent.context = {raw: :all}
2746
- # elements.size # => 4
2747
- # new_element = elements.add('foo') # => <foo/>
2748
- # elements.size # => 5
2749
- # new_element.name # => "foo"
2750
- # new_element.parent # => <bookstore> ... </>
2751
- # new_element.context # => {:raw=>:all}
2752
- #
2753
- # With argument +element+,
2754
- # creates and adds a clone of the given +element+.
2755
- # The new element has name, parent, and context from the given +element+.
2756
- #
2757
- # d = REXML::Document.new(xml_string)
2758
- # elements = d.root.elements
2759
- # elements.size # => 4
2760
- # e0 = REXML::Element.new('foo')
2761
- # e1 = REXML::Element.new('bar', e0, {raw: :all})
2762
- # element = elements.add(e1) # => <bar/>
2763
- # elements.size # => 5
2764
- # element.name # => "bar"
2765
- # element.parent # => <bookstore> ... </>
2766
- # element.context # => {:raw=>:all}
2767
- #
2768
- # source://rexml//lib/rexml/element.rb#1921
2769
- def <<(element = T.unsafe(nil)); end
2770
-
2771
- # :call-seq:
2772
- # elements[index] -> element or nil
2773
- # elements[xpath] -> element or nil
2774
- # elements[n, name] -> element or nil
2775
- #
2776
- # Returns the first \Element object selected by the arguments,
2777
- # if any found, or +nil+ if none found.
2778
- #
2779
- # Notes:
2780
- # - The +index+ is 1-based, not 0-based, so that:
2781
- # - The first element has index <tt>1</tt>
2782
- # - The _nth_ element has index +n+.
2783
- # - The selection ignores non-\Element nodes.
2784
- #
2785
- # When the single argument +index+ is given,
2786
- # returns the element given by the index, if any; otherwise, +nil+:
2787
- #
2788
- # d = REXML::Document.new(xml_string)
2789
- # eles = d.root.elements
2790
- # eles # => #<REXML::Elements @element=<bookstore> ... </>>
2791
- # eles[1] # => <book category='cooking'> ... </>
2792
- # eles.size # => 4
2793
- # eles[4] # => <book category='web' cover='paperback'> ... </>
2794
- # eles[5] # => nil
2795
- #
2796
- # The node at this index is not an \Element, and so is not returned:
2797
- #
2798
- # eles = d.root.first.first # => <title lang='en'> ... </>
2799
- # eles.to_a # => ["Everyday Italian"]
2800
- # eles[1] # => nil
2801
- #
2802
- # When the single argument +xpath+ is given,
2803
- # returns the first element found via that +xpath+, if any; otherwise, +nil+:
2804
- #
2805
- # eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>>
2806
- # eles['/bookstore'] # => <bookstore> ... </>
2807
- # eles['//book'] # => <book category='cooking'> ... </>
2808
- # eles['//book [@category="children"]'] # => <book category='children'> ... </>
2809
- # eles['/nosuch'] # => nil
2810
- # eles['//nosuch'] # => nil
2811
- # eles['//book [@category="nosuch"]'] # => nil
2812
- # eles['.'] # => <bookstore> ... </>
2813
- # eles['..'].class # => REXML::Document
2814
- #
2815
- # With arguments +n+ and +name+ given,
2816
- # returns the _nth_ found element that has the given +name+,
2817
- # or +nil+ if there is no such _nth_ element:
2818
- #
2819
- # eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>>
2820
- # eles[1, 'book'] # => <book category='cooking'> ... </>
2821
- # eles[4, 'book'] # => <book category='web' cover='paperback'> ... </>
2822
- # eles[5, 'book'] # => nil
2823
- #
2824
- # source://rexml//lib/rexml/element.rb#1676
2825
- def [](index, name = T.unsafe(nil)); end
2826
-
2827
- # :call-seq:
2828
- # elements[] = index, replacement_element -> replacement_element or nil
2829
- #
2830
- # Replaces or adds an element.
2831
- #
2832
- # When <tt>eles[index]</tt> exists, replaces it with +replacement_element+
2833
- # and returns +replacement_element+:
2834
- #
2835
- # d = REXML::Document.new(xml_string)
2836
- # eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>>
2837
- # eles[1] # => <book category='cooking'> ... </>
2838
- # eles[1] = REXML::Element.new('foo')
2839
- # eles[1] # => <foo/>
2840
- #
2841
- # Does nothing (or raises an exception)
2842
- # if +replacement_element+ is not an \Element:
2843
- # eles[2] # => <book category='web' cover='paperback'> ... </>
2844
- # eles[2] = REXML::Text.new('bar')
2845
- # eles[2] # => <book category='web' cover='paperback'> ... </>
2846
- #
2847
- # When <tt>eles[index]</tt> does not exist,
2848
- # adds +replacement_element+ to the element and returns
2849
- #
2850
- # d = REXML::Document.new(xml_string)
2851
- # eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>>
2852
- # eles.size # => 4
2853
- # eles[50] = REXML::Element.new('foo') # => <foo/>
2854
- # eles.size # => 5
2855
- # eles[5] # => <foo/>
2856
- #
2857
- # Does nothing (or raises an exception)
2858
- # if +replacement_element+ is not an \Element:
2859
- #
2860
- # eles[50] = REXML::Text.new('bar') # => "bar"
2861
- # eles.size # => 5
2862
- #
2863
- # source://rexml//lib/rexml/element.rb#1731
2864
- def []=(index, element); end
2865
-
2866
- # :call-seq:
2867
- # add -> new_element
2868
- # add(name) -> new_element
2869
- # add(element) -> element
2870
- #
2871
- # Adds an element; returns the element added.
2872
- #
2873
- # With no argument, creates and adds a new element.
2874
- # The new element has:
2875
- #
2876
- # - No name.
2877
- # - \Parent from the \Elements object.
2878
- # - Context from the that parent.
2879
- #
2880
- # Example:
2881
- #
2882
- # d = REXML::Document.new(xml_string)
2883
- # elements = d.root.elements
2884
- # parent = elements.parent # => <bookstore> ... </>
2885
- # parent.context = {raw: :all}
2886
- # elements.size # => 4
2887
- # new_element = elements.add # => </>
2888
- # elements.size # => 5
2889
- # new_element.name # => nil
2890
- # new_element.parent # => <bookstore> ... </>
2891
- # new_element.context # => {:raw=>:all}
2892
- #
2893
- # With string argument +name+, creates and adds a new element.
2894
- # The new element has:
2895
- #
2896
- # - Name +name+.
2897
- # - \Parent from the \Elements object.
2898
- # - Context from the that parent.
2899
- #
2900
- # Example:
2901
- #
2902
- # d = REXML::Document.new(xml_string)
2903
- # elements = d.root.elements
2904
- # parent = elements.parent # => <bookstore> ... </>
2905
- # parent.context = {raw: :all}
2906
- # elements.size # => 4
2907
- # new_element = elements.add('foo') # => <foo/>
2908
- # elements.size # => 5
2909
- # new_element.name # => "foo"
2910
- # new_element.parent # => <bookstore> ... </>
2911
- # new_element.context # => {:raw=>:all}
2912
- #
2913
- # With argument +element+,
2914
- # creates and adds a clone of the given +element+.
2915
- # The new element has name, parent, and context from the given +element+.
2916
- #
2917
- # d = REXML::Document.new(xml_string)
2918
- # elements = d.root.elements
2919
- # elements.size # => 4
2920
- # e0 = REXML::Element.new('foo')
2921
- # e1 = REXML::Element.new('bar', e0, {raw: :all})
2922
- # element = elements.add(e1) # => <bar/>
2923
- # elements.size # => 5
2924
- # element.name # => "bar"
2925
- # element.parent # => <bookstore> ... </>
2926
- # element.context # => {:raw=>:all}
2927
- #
2928
- # source://rexml//lib/rexml/element.rb#1921
2929
- def add(element = T.unsafe(nil)); end
2930
-
2931
- # :call-seq:
2932
- # collect(xpath = nil) {|element| ... } -> array
2933
- #
2934
- # Iterates over the elements; returns the array of block return values.
2935
- #
2936
- # With no argument, iterates over all elements:
2937
- #
2938
- # d = REXML::Document.new(xml_string)
2939
- # elements = d.root.elements
2940
- # elements.collect {|element| element.size } # => [9, 9, 17, 9]
2941
- #
2942
- # With argument +xpath+, iterates over elements that match
2943
- # the given +xpath+:
2944
- #
2945
- # xpath = '//book [@category="web"]'
2946
- # elements.collect(xpath) {|element| element.size } # => [17, 9]
2947
- #
2948
- # source://rexml//lib/rexml/element.rb#1984
2949
- def collect(xpath = T.unsafe(nil)); end
2950
-
2951
- # :call-seq:
2952
- # delete(index) -> removed_element or nil
2953
- # delete(element) -> removed_element or nil
2954
- # delete(xpath) -> removed_element or nil
2955
- #
2956
- # Removes an element; returns the removed element, or +nil+ if none removed.
2957
- #
2958
- # With integer argument +index+ given,
2959
- # removes the child element at that offset:
2960
- #
2961
- # d = REXML::Document.new(xml_string)
2962
- # elements = d.root.elements
2963
- # elements.size # => 4
2964
- # elements[2] # => <book category='children'> ... </>
2965
- # elements.delete(2) # => <book category='children'> ... </>
2966
- # elements.size # => 3
2967
- # elements[2] # => <book category='web'> ... </>
2968
- # elements.delete(50) # => nil
2969
- #
2970
- # With element argument +element+ given,
2971
- # removes that child element:
2972
- #
2973
- # d = REXML::Document.new(xml_string)
2974
- # elements = d.root.elements
2975
- # ele_1, ele_2, ele_3, ele_4 = *elements
2976
- # elements.size # => 4
2977
- # elements[2] # => <book category='children'> ... </>
2978
- # elements.delete(ele_2) # => <book category='children'> ... </>
2979
- # elements.size # => 3
2980
- # elements[2] # => <book category='web'> ... </>
2981
- # elements.delete(ele_2) # => nil
2982
- #
2983
- # With string argument +xpath+ given,
2984
- # removes the first element found via that xpath:
2985
- #
2986
- # d = REXML::Document.new(xml_string)
2987
- # elements = d.root.elements
2988
- # elements.delete('//book') # => <book category='cooking'> ... </>
2989
- # elements.delete('//book [@category="children"]') # => <book category='children'> ... </>
2990
- # elements.delete('//nosuch') # => nil
2991
- #
2992
- # source://rexml//lib/rexml/element.rb#1821
2993
- def delete(element); end
2994
-
2995
- # :call-seq:
2996
- # delete_all(xpath)
2997
- #
2998
- # Removes all elements found via the given +xpath+;
2999
- # returns the array of removed elements, if any, else +nil+.
3000
- #
3001
- # d = REXML::Document.new(xml_string)
3002
- # elements = d.root.elements
3003
- # elements.size # => 4
3004
- # deleted_elements = elements.delete_all('//book [@category="web"]')
3005
- # deleted_elements.size # => 2
3006
- # elements.size # => 2
3007
- # deleted_elements = elements.delete_all('//book')
3008
- # deleted_elements.size # => 2
3009
- # elements.size # => 0
3010
- # elements.delete_all('//book') # => []
3011
- #
3012
- # source://rexml//lib/rexml/element.rb#1847
3013
- def delete_all(xpath); end
3014
-
3015
- # :call-seq:
3016
- # each(xpath = nil) {|element| ... } -> self
3017
- #
3018
- # Iterates over the elements.
3019
- #
3020
- # With no argument, calls the block with each element:
3021
- #
3022
- # d = REXML::Document.new(xml_string)
3023
- # elements = d.root.elements
3024
- # elements.each {|element| p element }
3025
- #
3026
- # Output:
3027
- #
3028
- # <book category='cooking'> ... </>
3029
- # <book category='children'> ... </>
3030
- # <book category='web'> ... </>
3031
- # <book category='web' cover='paperback'> ... </>
3032
- #
3033
- # With argument +xpath+, calls the block with each element
3034
- # that matches the given +xpath+:
3035
- #
3036
- # elements.each('//book [@category="web"]') {|element| p element }
3037
- #
3038
- # Output:
3039
- #
3040
- # <book category='web'> ... </>
3041
- # <book category='web' cover='paperback'> ... </>
3042
- #
3043
- # source://rexml//lib/rexml/element.rb#1963
3044
- def each(xpath = T.unsafe(nil)); end
3045
-
3046
- # :call-seq:
3047
- # empty? -> true or false
3048
- #
3049
- # Returns +true+ if there are no children, +false+ otherwise.
3050
- #
3051
- # d = REXML::Document.new('')
3052
- # d.elements.empty? # => true
3053
- # d = REXML::Document.new(xml_string)
3054
- # d.elements.empty? # => false
3055
- #
3056
- # @return [Boolean]
3057
- #
3058
- # source://rexml//lib/rexml/element.rb#1751
3059
- def empty?; end
3060
-
3061
- # :call-seq:
3062
- # index(element)
3063
- #
3064
- # Returns the 1-based index of the given +element+, if found;
3065
- # otherwise, returns -1:
3066
- #
3067
- # d = REXML::Document.new(xml_string)
3068
- # elements = d.root.elements
3069
- # ele_1, ele_2, ele_3, ele_4 = *elements
3070
- # elements.index(ele_4) # => 4
3071
- # elements.delete(ele_3)
3072
- # elements.index(ele_4) # => 3
3073
- # elements.index(ele_3) # => -1
3074
- #
3075
- # source://rexml//lib/rexml/element.rb#1769
3076
- def index(element); end
3077
-
3078
- # :call-seq:
3079
- # inject(xpath = nil, initial = nil) -> object
3080
- #
3081
- # Calls the block with elements; returns the last block return value.
3082
- #
3083
- # With no argument, iterates over the elements, calling the block
3084
- # <tt>elements.size - 1</tt> times.
3085
- #
3086
- # - The first call passes the first and second elements.
3087
- # - The second call passes the first block return value and the third element.
3088
- # - The third call passes the second block return value and the fourth element.
3089
- # - And so on.
3090
- #
3091
- # In this example, the block returns the passed element,
3092
- # which is then the object argument to the next call:
3093
- #
3094
- # d = REXML::Document.new(xml_string)
3095
- # elements = d.root.elements
3096
- # elements.inject do |object, element|
3097
- # p [elements.index(object), elements.index(element)]
3098
- # element
3099
- # end
3100
- #
3101
- # Output:
3102
- #
3103
- # [1, 2]
3104
- # [2, 3]
3105
- # [3, 4]
3106
- #
3107
- # With the single argument +xpath+, calls the block only with
3108
- # elements matching that xpath:
3109
- #
3110
- # elements.inject('//book [@category="web"]') do |object, element|
3111
- # p [elements.index(object), elements.index(element)]
3112
- # element
3113
- # end
3114
- #
3115
- # Output:
3116
- #
3117
- # [3, 4]
3118
- #
3119
- # With argument +xpath+ given as +nil+
3120
- # and argument +initial+ also given,
3121
- # calls the block once for each element.
3122
- #
3123
- # - The first call passes the +initial+ and the first element.
3124
- # - The second call passes the first block return value and the second element.
3125
- # - The third call passes the second block return value and the third element.
3126
- # - And so on.
3127
- #
3128
- # In this example, the first object index is <tt>-1</tt>
3129
- #
3130
- # elements.inject(nil, 'Initial') do |object, element|
3131
- # p [elements.index(object), elements.index(element)]
3132
- # element
3133
- # end
3134
- #
3135
- # Output:
3136
- #
3137
- # [-1, 1]
3138
- # [1, 2]
3139
- # [2, 3]
3140
- # [3, 4]
3141
- #
3142
- # In this form the passed object can be used as an accumulator:
3143
- #
3144
- # elements.inject(nil, 0) do |total, element|
3145
- # total += element.size
3146
- # end # => 44
3147
- #
3148
- # With both arguments +xpath+ and +initial+ are given,
3149
- # calls the block only with elements matching that xpath:
3150
- #
3151
- # elements.inject('//book [@category="web"]', 0) do |total, element|
3152
- # total += element.size
3153
- # end # => 26
3154
- #
3155
- # source://rexml//lib/rexml/element.rb#2069
3156
- def inject(xpath = T.unsafe(nil), initial = T.unsafe(nil)); end
3157
-
3158
- # :call-seq:
3159
- # parent
3160
- #
3161
- # Returns the parent element cited in creating the \Elements object.
3162
- # This element is also the default starting point for searching
3163
- # in the \Elements object.
3164
- #
3165
- # d = REXML::Document.new(xml_string)
3166
- # elements = REXML::Elements.new(d.root)
3167
- # elements.parent == d.root # => true
3168
- #
3169
- # source://rexml//lib/rexml/element.rb#1619
3170
- def parent; end
3171
-
3172
- # :call-seq:
3173
- # size -> integer
3174
- #
3175
- # Returns the count of \Element children:
3176
- #
3177
- # d = REXML::Document.new '<a>sean<b/>elliott<b/>russell<b/></a>'
3178
- # d.root.elements.size # => 3 # Three elements.
3179
- # d.root.size # => 6 # Three elements plus three text nodes..
3180
- #
3181
- # source://rexml//lib/rexml/element.rb#2093
3182
- def size; end
3183
-
3184
- # :call-seq:
3185
- # to_a(xpath = nil) -> array_of_elements
3186
- #
3187
- # Returns an array of element children (not including non-element children).
3188
- #
3189
- # With no argument, returns an array of all element children:
3190
- #
3191
- # d = REXML::Document.new '<a>sean<b/>elliott<c/></a>'
3192
- # elements = d.root.elements
3193
- # elements.to_a # => [<b/>, <c/>] # Omits non-element children.
3194
- # children = d.root.children
3195
- # children # => ["sean", <b/>, "elliott", <c/>] # Includes non-element children.
3196
- #
3197
- # With argument +xpath+, returns an array of element children
3198
- # that match the xpath:
3199
- #
3200
- # elements.to_a('//c') # => [<c/>]
3201
- #
3202
- # source://rexml//lib/rexml/element.rb#2117
3203
- def to_a(xpath = T.unsafe(nil)); end
3204
-
3205
- private
3206
-
3207
- # Private helper class. Removes quotes from quoted strings
3208
- #
3209
- # source://rexml//lib/rexml/element.rb#2125
3210
- def literalize(name); end
3211
- end
3212
-
3213
- # source://rexml//lib/rexml/encoding.rb#4
3214
- module REXML::Encoding
3215
- # source://rexml//lib/rexml/encoding.rb#29
3216
- def decode(string); end
3217
-
3218
- # source://rexml//lib/rexml/encoding.rb#25
3219
- def encode(string); end
3220
-
3221
- # ID ---> Encoding name
3222
- #
3223
- # source://rexml//lib/rexml/encoding.rb#6
3224
- def encoding; end
3225
-
3226
- # source://rexml//lib/rexml/encoding.rb#7
3227
- def encoding=(encoding); end
3228
-
3229
- private
3230
-
3231
- # source://rexml//lib/rexml/encoding.rb#34
3232
- def find_encoding(name); end
3233
- end
3234
-
3235
- # source://rexml//lib/rexml/entity.rb#7
3236
- class REXML::Entity < ::REXML::Child
3237
- include ::REXML::XMLTokens
3238
-
3239
- # Create a new entity. Simple entities can be constructed by passing a
3240
- # name, value to the constructor; this creates a generic, plain entity
3241
- # reference. For anything more complicated, you have to pass a Source to
3242
- # the constructor with the entity definition, or use the accessor methods.
3243
- # +WARNING+: There is no validation of entity state except when the entity
3244
- # is read from a stream. If you start poking around with the accessors,
3245
- # you can easily create a non-conformant Entity.
3246
- #
3247
- # e = Entity.new( 'amp', '&' )
3248
- #
3249
- # @return [Entity] a new instance of Entity
3250
- #
3251
- # source://rexml//lib/rexml/entity.rb#34
3252
- def initialize(stream, value = T.unsafe(nil), parent = T.unsafe(nil), reference = T.unsafe(nil)); end
3253
-
3254
- # Returns the value of attribute external.
3255
- #
3256
- # source://rexml//lib/rexml/entity.rb#23
3257
- def external; end
3258
-
3259
- # Returns the value of attribute name.
3260
- #
3261
- # source://rexml//lib/rexml/entity.rb#23
3262
- def name; end
3263
-
3264
- # Returns the value of attribute ndata.
3265
- #
3266
- # source://rexml//lib/rexml/entity.rb#23
3267
- def ndata; end
3268
-
3269
- # Returns the value of this entity unprocessed -- raw. This is the
3270
- # normalized value; that is, with all %ent; and &ent; entities intact
3271
- #
3272
- # source://rexml//lib/rexml/entity.rb#86
3273
- def normalized; end
3274
-
3275
- # Returns the value of attribute pubid.
3276
- #
3277
- # source://rexml//lib/rexml/entity.rb#23
3278
- def pubid; end
3279
-
3280
- # Returns the value of attribute ref.
3281
- #
3282
- # source://rexml//lib/rexml/entity.rb#23
3283
- def ref; end
3284
-
3285
- # Returns this entity as a string. See write().
3286
- #
3287
- # source://rexml//lib/rexml/entity.rb#120
3288
- def to_s; end
3289
-
3290
- # Evaluates to the unnormalized value of this entity; that is, replacing
3291
- # &ent; entities.
3292
- #
3293
- # source://rexml//lib/rexml/entity.rb#73
3294
- def unnormalized; end
3295
-
3296
- # Returns the value of attribute value.
3297
- #
3298
- # source://rexml//lib/rexml/entity.rb#23
3299
- def value; end
3300
-
3301
- # Write out a fully formed, correct entity definition (assuming the Entity
3302
- # object itself is valid.)
3303
- #
3304
- # out::
3305
- # An object implementing <TT>&lt;&lt;</TT> to which the entity will be
3306
- # output
3307
- # indent::
3308
- # *DEPRECATED* and ignored
3309
- #
3310
- # source://rexml//lib/rexml/entity.rb#98
3311
- def write(out, indent = T.unsafe(nil)); end
3312
-
3313
- class << self
3314
- # Evaluates whether the given string matches an entity definition,
3315
- # returning true if so, and false otherwise.
3316
- #
3317
- # @return [Boolean]
3318
- #
3319
- # source://rexml//lib/rexml/entity.rb#67
3320
- def matches?(string); end
3321
- end
3322
- end
3323
-
3324
- # source://rexml//lib/rexml/doctype.rb#267
3325
- class REXML::ExternalEntity < ::REXML::Child
3326
- # @return [ExternalEntity] a new instance of ExternalEntity
3327
- #
3328
- # source://rexml//lib/rexml/doctype.rb#268
3329
- def initialize(src); end
3330
-
3331
- # source://rexml//lib/rexml/doctype.rb#272
3332
- def to_s; end
3333
-
3334
- # source://rexml//lib/rexml/doctype.rb#275
3335
- def write(output, indent); end
3336
- end
3337
-
3338
- # source://rexml//lib/rexml/formatters/default.rb#5
3339
- class REXML::Formatters::Default
3340
- # Prints out the XML document with no formatting -- except if ie_hack is
3341
- # set.
3342
- #
3343
- # ie_hack::
3344
- # If set to true, then inserts whitespace before the close of an empty
3345
- # tag, so that IE's bad XML parser doesn't choke.
3346
- #
3347
- # @return [Default] a new instance of Default
3348
- #
3349
- # source://rexml//lib/rexml/formatters/default.rb#12
3350
- def initialize(ie_hack = T.unsafe(nil)); end
3351
-
3352
- # Writes the node to some output.
3353
- #
3354
- # node::
3355
- # The node to write
3356
- # output::
3357
- # A class implementing <TT>&lt;&lt;</TT>. Pass in an Output object to
3358
- # change the output encoding.
3359
- #
3360
- # source://rexml//lib/rexml/formatters/default.rb#23
3361
- def write(node, output); end
3362
-
3363
- protected
3364
-
3365
- # source://rexml//lib/rexml/formatters/default.rb#98
3366
- def write_cdata(node, output); end
3367
-
3368
- # source://rexml//lib/rexml/formatters/default.rb#92
3369
- def write_comment(node, output); end
3370
-
3371
- # source://rexml//lib/rexml/formatters/default.rb#61
3372
- def write_document(node, output); end
3373
-
3374
- # source://rexml//lib/rexml/formatters/default.rb#65
3375
- def write_element(node, output); end
3376
-
3377
- # source://rexml//lib/rexml/formatters/default.rb#104
3378
- def write_instruction(node, output); end
3379
-
3380
- # source://rexml//lib/rexml/formatters/default.rb#88
3381
- def write_text(node, output); end
3382
- end
3383
-
3384
- # Pretty-prints an XML document. This destroys whitespace in text nodes
3385
- # and will insert carriage returns and indentations.
3386
- #
3387
- # TODO: Add an option to print attributes on new lines
3388
- #
3389
- # source://rexml//lib/rexml/formatters/pretty.rb#10
3390
- class REXML::Formatters::Pretty < ::REXML::Formatters::Default
3391
- # Create a new pretty printer.
3392
- #
3393
- # output::
3394
- # An object implementing '<<(String)', to which the output will be written.
3395
- # indentation::
3396
- # An integer greater than 0. The indentation of each level will be
3397
- # this number of spaces. If this is < 1, the behavior of this object
3398
- # is undefined. Defaults to 2.
3399
- # ie_hack::
3400
- # If true, the printer will insert whitespace before closing empty
3401
- # tags, thereby allowing Internet Explorer's XML parser to
3402
- # function. Defaults to false.
3403
- #
3404
- # @return [Pretty] a new instance of Pretty
3405
- #
3406
- # source://rexml//lib/rexml/formatters/pretty.rb#30
3407
- def initialize(indentation = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
3408
-
3409
- # If compact is set to true, then the formatter will attempt to use as
3410
- # little space as possible
3411
- #
3412
- # source://rexml//lib/rexml/formatters/pretty.rb#14
3413
- def compact; end
3414
-
3415
- # If compact is set to true, then the formatter will attempt to use as
3416
- # little space as possible
3417
- #
3418
- # source://rexml//lib/rexml/formatters/pretty.rb#14
3419
- def compact=(_arg0); end
3420
-
3421
- # The width of a page. Used for formatting text
3422
- #
3423
- # source://rexml//lib/rexml/formatters/pretty.rb#16
3424
- def width; end
3425
-
3426
- # The width of a page. Used for formatting text
3427
- #
3428
- # source://rexml//lib/rexml/formatters/pretty.rb#16
3429
- def width=(_arg0); end
3430
-
3431
- protected
3432
-
3433
- # source://rexml//lib/rexml/formatters/pretty.rb#102
3434
- def write_cdata(node, output); end
3435
-
3436
- # source://rexml//lib/rexml/formatters/pretty.rb#97
3437
- def write_comment(node, output); end
3438
-
3439
- # source://rexml//lib/rexml/formatters/pretty.rb#107
3440
- def write_document(node, output); end
3441
-
3442
- # source://rexml//lib/rexml/formatters/pretty.rb#39
3443
- def write_element(node, output); end
3444
-
3445
- # source://rexml//lib/rexml/formatters/pretty.rb#88
3446
- def write_text(node, output); end
3447
-
3448
- private
3449
-
3450
- # source://rexml//lib/rexml/formatters/pretty.rb#124
3451
- def indent_text(string, level = T.unsafe(nil), style = T.unsafe(nil), indentfirstline = T.unsafe(nil)); end
3452
-
3453
- # source://rexml//lib/rexml/formatters/pretty.rb#129
3454
- def wrap(string, width); end
3455
- end
3456
-
3457
- # A Source that wraps an IO. See the Source class for method
3458
- # documentation
3459
- #
3460
- # source://rexml//lib/rexml/source.rb#184
3461
- class REXML::IOSource < ::REXML::Source
3462
- # block_size has been deprecated
3463
- #
3464
- # @return [IOSource] a new instance of IOSource
3465
- #
3466
- # source://rexml//lib/rexml/source.rb#187
3467
- def initialize(arg, block_size = T.unsafe(nil), encoding = T.unsafe(nil)); end
3468
-
3469
- # @return the current line in the source
3470
- #
3471
- # source://rexml//lib/rexml/source.rb#275
3472
- def current_line; end
3473
-
3474
- # @return [Boolean]
3475
- #
3476
- # source://rexml//lib/rexml/source.rb#270
3477
- def empty?; end
3478
-
3479
- # source://rexml//lib/rexml/source.rb#247
3480
- def ensure_buffer; end
3481
-
3482
- # source://rexml//lib/rexml/source.rb#251
3483
- def match(pattern, cons = T.unsafe(nil)); end
3484
-
3485
- # source://rexml//lib/rexml/source.rb#208
3486
- def read(term = T.unsafe(nil), min_bytes = T.unsafe(nil)); end
3487
-
3488
- # source://rexml//lib/rexml/source.rb#229
3489
- def read_until(term); end
3490
-
3491
- private
3492
-
3493
- # source://rexml//lib/rexml/source.rb#322
3494
- def encoding_updated; end
3495
-
3496
- # source://rexml//lib/rexml/source.rb#297
3497
- def readline(term = T.unsafe(nil)); end
3498
- end
3499
-
3500
- # Represents an XML Instruction; IE, <? ... ?>
3501
- # TODO: Add parent arg (3rd arg) to constructor
3502
- #
3503
- # source://rexml//lib/rexml/instruction.rb#9
3504
- class REXML::Instruction < ::REXML::Child
3505
- # Constructs a new Instruction
3506
- # the target of this instruction is set to this. If an Instruction,
3507
- # then the Instruction is shallowly cloned (target and content are
3508
- # copied).
3509
- # be a Parent if the target argument is a Source. Otherwise, this
3510
- # String is set as the content of this instruction.
3511
- #
3512
- # @param target can be one of a number of things. If String, then
3513
- # @param content Must be either a String, or a Parent. Can only
3514
- # @return [Instruction] a new instance of Instruction
3515
- #
3516
- # source://rexml//lib/rexml/instruction.rb#25
3517
- def initialize(target, content = T.unsafe(nil)); end
3518
-
3519
- # of the other matches the target and content of this object.
3520
- #
3521
- # @return true if other is an Instruction, and the content and target
3522
- #
3523
- # source://rexml//lib/rexml/instruction.rb#65
3524
- def ==(other); end
3525
-
3526
- # source://rexml//lib/rexml/instruction.rb#44
3527
- def clone; end
3528
-
3529
- # target is the "name" of the Instruction; IE, the "tag" in <?tag ...?>
3530
- # content is everything else.
3531
- #
3532
- # source://rexml//lib/rexml/instruction.rb#15
3533
- def content; end
3534
-
3535
- # target is the "name" of the Instruction; IE, the "tag" in <?tag ...?>
3536
- # content is everything else.
3537
- #
3538
- # source://rexml//lib/rexml/instruction.rb#15
3539
- def content=(_arg0); end
3540
-
3541
- # source://rexml//lib/rexml/instruction.rb#75
3542
- def inspect; end
3543
-
3544
- # source://rexml//lib/rexml/instruction.rb#71
3545
- def node_type; end
3546
-
3547
- # target is the "name" of the Instruction; IE, the "tag" in <?tag ...?>
3548
- # content is everything else.
3549
- #
3550
- # source://rexml//lib/rexml/instruction.rb#15
3551
- def target; end
3552
-
3553
- # target is the "name" of the Instruction; IE, the "tag" in <?tag ...?>
3554
- # content is everything else.
3555
- #
3556
- # source://rexml//lib/rexml/instruction.rb#15
3557
- def target=(_arg0); end
3558
-
3559
- # == DEPRECATED
3560
- # See the rexml/formatters package
3561
- #
3562
- # source://rexml//lib/rexml/instruction.rb#51
3563
- def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
3564
- end
3565
-
3566
- # source://rexml//lib/rexml/light/node.rb#5
3567
- module REXML::Light; end
3568
-
3569
- # Represents a tagged XML element. Elements are characterized by
3570
- # having children, attributes, and names, and can themselves be
3571
- # children.
3572
- #
3573
- # source://rexml//lib/rexml/light/node.rb#9
3574
- class REXML::Light::Node
3575
- # Create a new element.
3576
- #
3577
- # @return [Node] a new instance of Node
3578
- #
3579
- # source://rexml//lib/rexml/light/node.rb#13
3580
- def initialize(node = T.unsafe(nil)); end
3581
-
3582
- # Append a child to this element, optionally under a provided namespace.
3583
- # The namespace argument is ignored if the element argument is an Element
3584
- # object. Otherwise, the element argument is a string, the namespace (if
3585
- # provided) is the namespace the element is created in.
3586
- #
3587
- # source://rexml//lib/rexml/light/node.rb#114
3588
- def <<(element); end
3589
-
3590
- # source://rexml//lib/rexml/light/node.rb#90
3591
- def =~(path); end
3592
-
3593
- # source://rexml//lib/rexml/light/node.rb#78
3594
- def [](reference, ns = T.unsafe(nil)); end
3595
-
3596
- # Doesn't handle namespaces yet
3597
- #
3598
- # source://rexml//lib/rexml/light/node.rb#95
3599
- def []=(reference, ns, value = T.unsafe(nil)); end
3600
-
3601
- # source://rexml//lib/rexml/light/node.rb#143
3602
- def children; end
3603
-
3604
- # source://rexml//lib/rexml/light/node.rb#36
3605
- def each; end
3606
-
3607
- # @return [Boolean]
3608
- #
3609
- # source://rexml//lib/rexml/light/node.rb#139
3610
- def has_name?(name, namespace = T.unsafe(nil)); end
3611
-
3612
- # source://rexml//lib/rexml/light/node.rb#54
3613
- def local_name; end
3614
-
3615
- # source://rexml//lib/rexml/light/node.rb#59
3616
- def local_name=(name_str); end
3617
-
3618
- # source://rexml//lib/rexml/light/node.rb#40
3619
- def name; end
3620
-
3621
- # source://rexml//lib/rexml/light/node.rb#44
3622
- def name=(name_str, ns = T.unsafe(nil)); end
3623
-
3624
- # source://rexml//lib/rexml/light/node.rb#67
3625
- def namespace(prefix = T.unsafe(nil)); end
3626
-
3627
- # source://rexml//lib/rexml/light/node.rb#71
3628
- def namespace=(namespace); end
3629
-
3630
- # source://rexml//lib/rexml/light/node.rb#125
3631
- def node_type; end
3632
-
3633
- # source://rexml//lib/rexml/light/node.rb#147
3634
- def parent; end
3635
-
3636
- # source://rexml//lib/rexml/light/node.rb#50
3637
- def parent=(node); end
3638
-
3639
- # source://rexml//lib/rexml/light/node.rb#63
3640
- def prefix(namespace = T.unsafe(nil)); end
3641
-
3642
- # source://rexml//lib/rexml/light/node.rb#134
3643
- def root; end
3644
-
3645
- # source://rexml//lib/rexml/light/node.rb#28
3646
- def size; end
3647
-
3648
- # source://rexml//lib/rexml/light/node.rb#129
3649
- def text=(foo); end
3650
-
3651
- # source://rexml//lib/rexml/light/node.rb#151
3652
- def to_s; end
3653
-
3654
- private
3655
-
3656
- # source://rexml//lib/rexml/light/node.rb#164
3657
- def namespace_of(node, prefix = T.unsafe(nil)); end
3658
-
3659
- # source://rexml//lib/rexml/light/node.rb#157
3660
- def namesplit; end
3661
-
3662
- # source://rexml//lib/rexml/light/node.rb#176
3663
- def prefix_of(node, namespace = T.unsafe(nil)); end
3664
- end
3665
-
3666
- # source://rexml//lib/rexml/light/node.rb#10
3667
- REXML::Light::Node::NAMESPLIT = T.let(T.unsafe(nil), Regexp)
3668
-
3669
- # source://rexml//lib/rexml/light/node.rb#11
3670
- REXML::Light::Node::PARENTS = T.let(T.unsafe(nil), Array)
3671
-
3672
- # Adds named attributes to an object.
3673
- #
3674
- # source://rexml//lib/rexml/namespace.rb#7
3675
- module REXML::Namespace
3676
- include ::REXML::XMLTokens
3677
-
3678
- # The name of the object, valid if set
3679
- #
3680
- # source://rexml//lib/rexml/namespace.rb#9
3681
- def expanded_name; end
3682
-
3683
- # Fully expand the name, even if the prefix wasn't specified in the
3684
- # source file.
3685
- #
3686
- # source://rexml//lib/rexml/namespace.rb#57
3687
- def fully_expanded_name; end
3688
-
3689
- # Compares names optionally WITH namespaces
3690
- #
3691
- # @return [Boolean]
3692
- #
3693
- # source://rexml//lib/rexml/namespace.rb#43
3694
- def has_name?(other, ns = T.unsafe(nil)); end
3695
-
3696
- # The name of the object, valid if set
3697
- #
3698
- # source://rexml//lib/rexml/namespace.rb#9
3699
- def name; end
3700
-
3701
- # Sets the name and the expanded name
3702
- #
3703
- # source://rexml//lib/rexml/namespace.rb#17
3704
- def name=(name); end
3705
-
3706
- # The expanded name of the object, valid if name is set
3707
- #
3708
- # source://rexml//lib/rexml/namespace.rb#11
3709
- def prefix; end
3710
-
3711
- # The expanded name of the object, valid if name is set
3712
- #
3713
- # source://rexml//lib/rexml/namespace.rb#11
3714
- def prefix=(_arg0); end
3715
- end
3716
-
3717
- # source://rexml//lib/rexml/namespace.rb#13
3718
- REXML::Namespace::NAME_WITHOUT_NAMESPACE = T.let(T.unsafe(nil), Regexp)
3719
-
3720
- # source://rexml//lib/rexml/doctype.rb#280
3721
- class REXML::NotationDecl < ::REXML::Child
3722
- # @return [NotationDecl] a new instance of NotationDecl
3723
- #
3724
- # source://rexml//lib/rexml/doctype.rb#282
3725
- def initialize(name, middle, pub, sys); end
3726
-
3727
- # This method retrieves the name of the notation.
3728
- #
3729
- # Method contributed by Henrik Martensson
3730
- #
3731
- # source://rexml//lib/rexml/doctype.rb#307
3732
- def name; end
3733
-
3734
- # Returns the value of attribute public.
3735
- #
3736
- # source://rexml//lib/rexml/doctype.rb#281
3737
- def public; end
3738
-
3739
- # Sets the attribute public
3740
- #
3741
- # @param value the value to set the attribute public to.
3742
- #
3743
- # source://rexml//lib/rexml/doctype.rb#281
3744
- def public=(_arg0); end
3745
-
3746
- # Returns the value of attribute system.
3747
- #
3748
- # source://rexml//lib/rexml/doctype.rb#281
3749
- def system; end
3750
-
3751
- # Sets the attribute system
3752
- #
3753
- # @param value the value to set the attribute system to.
3754
- #
3755
- # source://rexml//lib/rexml/doctype.rb#281
3756
- def system=(_arg0); end
3757
-
3758
- # source://rexml//lib/rexml/doctype.rb#290
3759
- def to_s; end
3760
-
3761
- # source://rexml//lib/rexml/doctype.rb#300
3762
- def write(output, indent = T.unsafe(nil)); end
3763
- end
3764
-
3765
- # source://rexml//lib/rexml/output.rb#5
3766
- class REXML::Output
3767
- include ::REXML::Encoding
3768
-
3769
- # @return [Output] a new instance of Output
3770
- #
3771
- # source://rexml//lib/rexml/output.rb#10
3772
- def initialize(real_IO, encd = T.unsafe(nil)); end
3773
-
3774
- # source://rexml//lib/rexml/output.rb#22
3775
- def <<(content); end
3776
-
3777
- # Returns the value of attribute encoding.
3778
- #
3779
- # source://rexml//lib/rexml/output.rb#8
3780
- def encoding; end
3781
-
3782
- # source://rexml//lib/rexml/output.rb#26
3783
- def to_s; end
3784
- end
3785
-
3786
- # A parent has children, and has methods for accessing them. The Parent
3787
- # class is never encountered except as the superclass for some other
3788
- # object.
3789
- #
3790
- # source://rexml//lib/rexml/parent.rb#8
3791
- class REXML::Parent < ::REXML::Child
3792
- include ::Enumerable
3793
-
3794
- # Constructor
3795
- #
3796
- # @param parent if supplied, will be set as the parent of this object
3797
- # @return [Parent] a new instance of Parent
3798
- #
3799
- # source://rexml//lib/rexml/parent.rb#13
3800
- def initialize(parent = T.unsafe(nil)); end
3801
-
3802
- # source://rexml//lib/rexml/parent.rb#18
3803
- def <<(object); end
3804
-
3805
- # Fetches a child at a given index
3806
- #
3807
- # @param index the Integer index of the child to fetch
3808
- #
3809
- # source://rexml//lib/rexml/parent.rb#57
3810
- def [](index); end
3811
-
3812
- # Set an index entry. See Array.[]=
3813
- #
3814
- # @param index the index of the element to set
3815
- # @param opt either the object to set, or an Integer length
3816
- # @param child if opt is an Integer, this is the child to set
3817
- # @return the parent (self)
3818
- #
3819
- # source://rexml//lib/rexml/parent.rb#70
3820
- def []=(*args); end
3821
-
3822
- # source://rexml//lib/rexml/parent.rb#18
3823
- def add(object); end
3824
-
3825
- # source://rexml//lib/rexml/parent.rb#115
3826
- def children; end
3827
-
3828
- # Deeply clones this object. This creates a complete duplicate of this
3829
- # Parent, including all descendants.
3830
- #
3831
- # source://rexml//lib/rexml/parent.rb#148
3832
- def deep_clone; end
3833
-
3834
- # source://rexml//lib/rexml/parent.rb#32
3835
- def delete(object); end
3836
-
3837
- # source://rexml//lib/rexml/parent.rb#47
3838
- def delete_at(index); end
3839
-
3840
- # source://rexml//lib/rexml/parent.rb#43
3841
- def delete_if(&block); end
3842
-
3843
- # source://rexml//lib/rexml/parent.rb#39
3844
- def each(&block); end
3845
-
3846
- # source://rexml//lib/rexml/parent.rb#39
3847
- def each_child(&block); end
3848
-
3849
- # source://rexml//lib/rexml/parent.rb#51
3850
- def each_index(&block); end
3851
-
3852
- # Fetches the index of a given child
3853
- # of this parent.
3854
- #
3855
- # @param child the child to get the index of
3856
- # @return the index of the child, or nil if the object is not a child
3857
- #
3858
- # source://rexml//lib/rexml/parent.rb#123
3859
- def index(child); end
3860
-
3861
- # Inserts an child after another child
3862
- # child2 will be inserted after child1 in the child list of the parent.
3863
- # If an xpath, child2 will be inserted after the first child to match
3864
- # the xpath.
3865
- #
3866
- # @param child1 this is either an xpath or an Element. If an Element,
3867
- # @param child2 the child to insert
3868
- # @return the parent (self)
3869
- #
3870
- # source://rexml//lib/rexml/parent.rb#102
3871
- def insert_after(child1, child2); end
3872
-
3873
- # Inserts an child before another child
3874
- # child2 will be inserted before child1 in the child list of the parent.
3875
- # If an xpath, child2 will be inserted before the first child to match
3876
- # the xpath.
3877
- #
3878
- # @param child1 this is either an xpath or an Element. If an Element,
3879
- # @param child2 the child to insert
3880
- # @return the parent (self)
3881
- #
3882
- # source://rexml//lib/rexml/parent.rb#82
3883
- def insert_before(child1, child2); end
3884
-
3885
- # @return the number of children of this parent
3886
- #
3887
- # source://rexml//lib/rexml/parent.rb#130
3888
- def length; end
3889
-
3890
- # @return [Boolean]
3891
- #
3892
- # source://rexml//lib/rexml/parent.rb#162
3893
- def parent?; end
3894
-
3895
- # source://rexml//lib/rexml/parent.rb#18
3896
- def push(object); end
3897
-
3898
- # Replaces one child with another, making sure the nodelist is correct
3899
- # Child)
3900
- #
3901
- # @param to_replace the child to replace (must be a Child)
3902
- # @param replacement the child to insert into the nodelist (must be a
3903
- #
3904
- # source://rexml//lib/rexml/parent.rb#140
3905
- def replace_child(to_replace, replacement); end
3906
-
3907
- # @return the number of children of this parent
3908
- #
3909
- # source://rexml//lib/rexml/parent.rb#130
3910
- def size; end
3911
-
3912
- # source://rexml//lib/rexml/parent.rb#115
3913
- def to_a; end
3914
-
3915
- # source://rexml//lib/rexml/parent.rb#27
3916
- def unshift(object); end
3917
- end
3918
-
3919
- # source://rexml//lib/rexml/parseexception.rb#3
3920
- class REXML::ParseException < ::RuntimeError
3921
- # @return [ParseException] a new instance of ParseException
3922
- #
3923
- # source://rexml//lib/rexml/parseexception.rb#6
3924
- def initialize(message, source = T.unsafe(nil), parser = T.unsafe(nil), exception = T.unsafe(nil)); end
3925
-
3926
- # source://rexml//lib/rexml/parseexception.rb#49
3927
- def context; end
3928
-
3929
- # Returns the value of attribute continued_exception.
3930
- #
3931
- # source://rexml//lib/rexml/parseexception.rb#4
3932
- def continued_exception; end
3933
-
3934
- # Sets the attribute continued_exception
3935
- #
3936
- # @param value the value to set the attribute continued_exception to.
3937
- #
3938
- # source://rexml//lib/rexml/parseexception.rb#4
3939
- def continued_exception=(_arg0); end
3940
-
3941
- # source://rexml//lib/rexml/parseexception.rb#44
3942
- def line; end
3943
-
3944
- # Returns the value of attribute parser.
3945
- #
3946
- # source://rexml//lib/rexml/parseexception.rb#4
3947
- def parser; end
3948
-
3949
- # Sets the attribute parser
3950
- #
3951
- # @param value the value to set the attribute parser to.
3952
- #
3953
- # source://rexml//lib/rexml/parseexception.rb#4
3954
- def parser=(_arg0); end
3955
-
3956
- # source://rexml//lib/rexml/parseexception.rb#39
3957
- def position; end
3958
-
3959
- # Returns the value of attribute source.
3960
- #
3961
- # source://rexml//lib/rexml/parseexception.rb#4
3962
- def source; end
3963
-
3964
- # Sets the attribute source
3965
- #
3966
- # @param value the value to set the attribute source to.
3967
- #
3968
- # source://rexml//lib/rexml/parseexception.rb#4
3969
- def source=(_arg0); end
3970
-
3971
- # source://rexml//lib/rexml/parseexception.rb#13
3972
- def to_s; end
3973
- end
3974
-
3975
- # = Using the Pull Parser
3976
- # <em>This API is experimental, and subject to change.</em>
3977
- # parser = PullParser.new( "<a>text<b att='val'/>txet</a>" )
3978
- # while parser.has_next?
3979
- # res = parser.next
3980
- # puts res[1]['att'] if res.start_tag? and res[0] == 'b'
3981
- # end
3982
- # See the PullEvent class for information on the content of the results.
3983
- # The data is identical to the arguments passed for the various events to
3984
- # the StreamListener API.
3985
- #
3986
- # Notice that:
3987
- # parser = PullParser.new( "<a>BAD DOCUMENT" )
3988
- # while parser.has_next?
3989
- # res = parser.next
3990
- # raise res[1] if res.error?
3991
- # end
3992
- #
3993
- # Nat Price gave me some good ideas for the API.
3994
- #
3995
- # source://rexml//lib/rexml/parsers/baseparser.rb#57
3996
- class REXML::Parsers::BaseParser
3997
- # @return [BaseParser] a new instance of BaseParser
3998
- #
3999
- # source://rexml//lib/rexml/parsers/baseparser.rb#163
4000
- def initialize(source); end
4001
-
4002
- # source://rexml//lib/rexml/parsers/baseparser.rb#173
4003
- def add_listener(listener); end
4004
-
4005
- # Returns true if there are no more events
4006
- #
4007
- # @return [Boolean]
4008
- #
4009
- # source://rexml//lib/rexml/parsers/baseparser.rb#204
4010
- def empty?; end
4011
-
4012
- # source://rexml//lib/rexml/parsers/baseparser.rb#536
4013
- def entity(reference, entities); end
4014
-
4015
- # Returns the value of attribute entity_expansion_count.
4016
- #
4017
- # source://rexml//lib/rexml/parsers/baseparser.rb#178
4018
- def entity_expansion_count; end
4019
-
4020
- # Sets the attribute entity_expansion_limit
4021
- #
4022
- # @param value the value to set the attribute entity_expansion_limit to.
4023
- #
4024
- # source://rexml//lib/rexml/parsers/baseparser.rb#179
4025
- def entity_expansion_limit=(_arg0); end
4026
-
4027
- # Sets the attribute entity_expansion_text_limit
4028
- #
4029
- # @param value the value to set the attribute entity_expansion_text_limit to.
4030
- #
4031
- # source://rexml//lib/rexml/parsers/baseparser.rb#180
4032
- def entity_expansion_text_limit=(_arg0); end
4033
-
4034
- # Returns true if there are more events. Synonymous with !empty?
4035
- #
4036
- # @return [Boolean]
4037
- #
4038
- # source://rexml//lib/rexml/parsers/baseparser.rb#209
4039
- def has_next?; end
4040
-
4041
- # Escapes all possible entities
4042
- #
4043
- # source://rexml//lib/rexml/parsers/baseparser.rb#547
4044
- def normalize(input, entities = T.unsafe(nil), entity_filter = T.unsafe(nil)); end
4045
-
4046
- # Peek at the +depth+ event in the stack. The first element on the stack
4047
- # is at depth 0. If +depth+ is -1, will parse to the end of the input
4048
- # stream and return the last event, which is always :end_document.
4049
- # Be aware that this causes the stream to be parsed up to the +depth+
4050
- # event, so you can effectively pre-parse the entire document (pull the
4051
- # entire thing into memory) using this method.
4052
- #
4053
- # source://rexml//lib/rexml/parsers/baseparser.rb#225
4054
- def peek(depth = T.unsafe(nil)); end
4055
-
4056
- # source://rexml//lib/rexml/parsers/baseparser.rb#194
4057
- def position; end
4058
-
4059
- # Returns the next event. This is a +PullEvent+ object.
4060
- #
4061
- # source://rexml//lib/rexml/parsers/baseparser.rb#240
4062
- def pull; end
4063
-
4064
- # Returns the value of attribute source.
4065
- #
4066
- # source://rexml//lib/rexml/parsers/baseparser.rb#177
4067
- def source; end
4068
-
4069
- # source://rexml//lib/rexml/parsers/baseparser.rb#182
4070
- def stream=(source); end
4071
-
4072
- # Unescapes all possible entities
4073
- #
4074
- # source://rexml//lib/rexml/parsers/baseparser.rb#563
4075
- def unnormalize(string, entities = T.unsafe(nil), filter = T.unsafe(nil)); end
4076
-
4077
- # Push an event back on the head of the stream. This method
4078
- # has (theoretically) infinite depth.
4079
- #
4080
- # source://rexml//lib/rexml/parsers/baseparser.rb#215
4081
- def unshift(token); end
4082
-
4083
- private
4084
-
4085
- # source://rexml//lib/rexml/parsers/baseparser.rb#612
4086
- def add_namespace(prefix, uri); end
4087
-
4088
- # @return [Boolean]
4089
- #
4090
- # source://rexml//lib/rexml/parsers/baseparser.rb#645
4091
- def need_source_encoding_update?(xml_declaration_encoding); end
4092
-
4093
- # source://rexml//lib/rexml/parsers/baseparser.rb#765
4094
- def parse_attributes(prefixes); end
4095
-
4096
- # source://rexml//lib/rexml/parsers/baseparser.rb#664
4097
- def parse_id(base_error_message, accept_external_id:, accept_public_id:); end
4098
-
4099
- # source://rexml//lib/rexml/parsers/baseparser.rb#692
4100
- def parse_id_invalid_details(accept_external_id:, accept_public_id:); end
4101
-
4102
- # source://rexml//lib/rexml/parsers/baseparser.rb#651
4103
- def parse_name(base_error_message); end
4104
-
4105
- # source://rexml//lib/rexml/parsers/baseparser.rb#627
4106
- def pop_namespaces_restore; end
4107
-
4108
- # source://rexml//lib/rexml/parsers/baseparser.rb#730
4109
- def process_instruction; end
4110
-
4111
- # source://rexml//lib/rexml/parsers/baseparser.rb#250
4112
- def pull_event; end
4113
-
4114
- # source://rexml//lib/rexml/parsers/baseparser.rb#621
4115
- def push_namespaces_restore; end
4116
-
4117
- # source://rexml//lib/rexml/parsers/baseparser.rb#638
4118
- def record_entity_expansion(delta = T.unsafe(nil)); end
4119
- end
4120
-
4121
- # source://rexml//lib/rexml/parsers/baseparser.rb#130
4122
- REXML::Parsers::BaseParser::EXTERNAL_ID_PUBLIC = T.let(T.unsafe(nil), Regexp)
4123
-
4124
- # source://rexml//lib/rexml/parsers/baseparser.rb#131
4125
- REXML::Parsers::BaseParser::EXTERNAL_ID_SYSTEM = T.let(T.unsafe(nil), Regexp)
4126
-
4127
- # source://rexml//lib/rexml/parsers/baseparser.rb#132
4128
- REXML::Parsers::BaseParser::PUBLIC_ID = T.let(T.unsafe(nil), Regexp)
4129
-
4130
- # source://rexml//lib/rexml/parsers/baseparser.rb#143
4131
- module REXML::Parsers::BaseParser::Private; end
4132
-
4133
- # source://rexml//lib/rexml/parsers/baseparser.rb#147
4134
- REXML::Parsers::BaseParser::Private::ATTLISTDECL_END = T.let(T.unsafe(nil), Regexp)
4135
-
4136
- # source://rexml//lib/rexml/parsers/baseparser.rb#152
4137
- REXML::Parsers::BaseParser::Private::CARRIAGE_RETURN_NEWLINE_PATTERN = T.let(T.unsafe(nil), Regexp)
4138
-
4139
- # source://rexml//lib/rexml/parsers/baseparser.rb#153
4140
- REXML::Parsers::BaseParser::Private::CHARACTER_REFERENCES = T.let(T.unsafe(nil), Regexp)
4141
-
4142
- # source://rexml//lib/rexml/parsers/baseparser.rb#146
4143
- REXML::Parsers::BaseParser::Private::CLOSE_PATTERN = T.let(T.unsafe(nil), Regexp)
4144
-
4145
- # source://rexml//lib/rexml/parsers/baseparser.rb#154
4146
- REXML::Parsers::BaseParser::Private::DEFAULT_ENTITIES_PATTERNS = T.let(T.unsafe(nil), Hash)
4147
-
4148
- # source://rexml//lib/rexml/parsers/baseparser.rb#151
4149
- REXML::Parsers::BaseParser::Private::ENTITYDECL_PATTERN = T.let(T.unsafe(nil), Regexp)
4150
-
4151
- # source://rexml//lib/rexml/parsers/baseparser.rb#149
4152
- REXML::Parsers::BaseParser::Private::GEDECL_PATTERN = T.let(T.unsafe(nil), String)
4153
-
4154
- # source://rexml//lib/rexml/parsers/baseparser.rb#148
4155
- REXML::Parsers::BaseParser::Private::NAME_PATTERN = T.let(T.unsafe(nil), Regexp)
4156
-
4157
- # source://rexml//lib/rexml/parsers/baseparser.rb#150
4158
- REXML::Parsers::BaseParser::Private::PEDECL_PATTERN = T.let(T.unsafe(nil), String)
4159
-
4160
- # source://rexml//lib/rexml/parsers/baseparser.rb#144
4161
- REXML::Parsers::BaseParser::Private::PEREFERENCE_PATTERN = T.let(T.unsafe(nil), Regexp)
4162
-
4163
- # source://rexml//lib/rexml/parsers/baseparser.rb#145
4164
- REXML::Parsers::BaseParser::Private::TAG_PATTERN = T.let(T.unsafe(nil), Regexp)
4165
-
4166
- # source://rexml//lib/rexml/parsers/baseparser.rb#159
4167
- REXML::Parsers::BaseParser::Private::XML_PREFIXED_NAMESPACE = T.let(T.unsafe(nil), String)
4168
-
4169
- # source://rexml//lib/rexml/parsers/baseparser.rb#66
4170
- REXML::Parsers::BaseParser::QNAME = T.let(T.unsafe(nil), Regexp)
4171
-
4172
- # source://rexml//lib/rexml/parsers/baseparser.rb#65
4173
- REXML::Parsers::BaseParser::QNAME_STR = T.let(T.unsafe(nil), String)
4174
-
4175
- # source://rexml//lib/rexml/parsers/streamparser.rb#6
4176
- class REXML::Parsers::StreamParser
4177
- # @return [StreamParser] a new instance of StreamParser
4178
- #
4179
- # source://rexml//lib/rexml/parsers/streamparser.rb#7
4180
- def initialize(source, listener); end
4181
-
4182
- # source://rexml//lib/rexml/parsers/streamparser.rb#13
4183
- def add_listener(listener); end
4184
-
4185
- # source://rexml//lib/rexml/parsers/streamparser.rb#17
4186
- def entity_expansion_count; end
4187
-
4188
- # source://rexml//lib/rexml/parsers/streamparser.rb#21
4189
- def entity_expansion_limit=(limit); end
4190
-
4191
- # source://rexml//lib/rexml/parsers/streamparser.rb#25
4192
- def entity_expansion_text_limit=(limit); end
4193
-
4194
- # source://rexml//lib/rexml/parsers/streamparser.rb#29
4195
- def parse; end
4196
- end
4197
-
4198
- # source://rexml//lib/rexml/parsers/baseparser.rb#28
4199
- module REXML::Parsers::StringScannerCaptures; end
4200
-
4201
- # source://rexml//lib/rexml/parsers/treeparser.rb#7
4202
- class REXML::Parsers::TreeParser
4203
- # @return [TreeParser] a new instance of TreeParser
4204
- #
4205
- # source://rexml//lib/rexml/parsers/treeparser.rb#8
4206
- def initialize(source, build_context = T.unsafe(nil)); end
4207
-
4208
- # source://rexml//lib/rexml/parsers/treeparser.rb#13
4209
- def add_listener(listener); end
4210
-
4211
- # source://rexml//lib/rexml/parsers/treeparser.rb#17
4212
- def parse; end
4213
- end
4214
-
4215
- # You don't want to use this class. Really. Use XPath, which is a wrapper
4216
- # for this class. Believe me. You don't want to poke around in here.
4217
- # There is strange, dark magic at work in this code. Beware. Go back! Go
4218
- # back while you still can!
4219
- #
4220
- # source://rexml//lib/rexml/parsers/xpathparser.rb#12
4221
- class REXML::Parsers::XPathParser
4222
- include ::REXML::XMLTokens
4223
-
4224
- # source://rexml//lib/rexml/parsers/xpathparser.rb#42
4225
- def abbreviate(path_or_parsed); end
4226
-
4227
- # source://rexml//lib/rexml/parsers/xpathparser.rb#132
4228
- def expand(path_or_parsed); end
4229
-
4230
- # source://rexml//lib/rexml/parsers/xpathparser.rb#16
4231
- def namespaces=(namespaces); end
4232
-
4233
- # source://rexml//lib/rexml/parsers/xpathparser.rb#21
4234
- def parse(path); end
4235
-
4236
- # For backward compatibility
4237
- #
4238
- # source://rexml//lib/rexml/parsers/xpathparser.rb#174
4239
- def preciate_to_string(parsed, &block); end
4240
-
4241
- # source://rexml//lib/rexml/parsers/xpathparser.rb#36
4242
- def predicate(path); end
4243
-
4244
- # source://rexml//lib/rexml/parsers/xpathparser.rb#174
4245
- def predicate_to_path(parsed, &block); end
4246
-
4247
- private
4248
-
4249
- # | AdditiveExpr ('+' | '-') MultiplicativeExpr
4250
- # | MultiplicativeExpr
4251
- #
4252
- # source://rexml//lib/rexml/parsers/xpathparser.rb#505
4253
- def AdditiveExpr(path, parsed); end
4254
-
4255
- # | AndExpr S 'and' S EqualityExpr
4256
- # | EqualityExpr
4257
- #
4258
- # source://rexml//lib/rexml/parsers/xpathparser.rb#438
4259
- def AndExpr(path, parsed); end
4260
-
4261
- # | EqualityExpr ('=' | '!=') RelationalExpr
4262
- # | RelationalExpr
4263
- #
4264
- # source://rexml//lib/rexml/parsers/xpathparser.rb#457
4265
- def EqualityExpr(path, parsed); end
4266
-
4267
- # | FilterExpr Predicate
4268
- # | PrimaryExpr
4269
- #
4270
- # source://rexml//lib/rexml/parsers/xpathparser.rb#608
4271
- def FilterExpr(path, parsed); end
4272
-
4273
- # | FUNCTION_NAME '(' ( expr ( ',' expr )* )? ')'
4274
- #
4275
- # source://rexml//lib/rexml/parsers/xpathparser.rb#663
4276
- def FunctionCall(rest, parsed); end
4277
-
4278
- # LocationPath
4279
- # | RelativeLocationPath
4280
- # | '/' RelativeLocationPath?
4281
- # | '//' RelativeLocationPath
4282
- #
4283
- # source://rexml//lib/rexml/parsers/xpathparser.rb#243
4284
- def LocationPath(path, parsed); end
4285
-
4286
- # | MultiplicativeExpr ('*' | S ('div' | 'mod') S) UnaryExpr
4287
- # | UnaryExpr
4288
- #
4289
- # source://rexml//lib/rexml/parsers/xpathparser.rb#528
4290
- def MultiplicativeExpr(path, parsed); end
4291
-
4292
- # source://rexml//lib/rexml/parsers/xpathparser.rb#343
4293
- def NodeTest(path, parsed); end
4294
-
4295
- # | OrExpr S 'or' S AndExpr
4296
- # | AndExpr
4297
- #
4298
- # source://rexml//lib/rexml/parsers/xpathparser.rb#419
4299
- def OrExpr(path, parsed); end
4300
-
4301
- # | LocationPath
4302
- # | FilterExpr ('/' | '//') RelativeLocationPath
4303
- #
4304
- # source://rexml//lib/rexml/parsers/xpathparser.rb#590
4305
- def PathExpr(path, parsed); end
4306
-
4307
- # Filters the supplied nodeset on the predicate(s)
4308
- #
4309
- # source://rexml//lib/rexml/parsers/xpathparser.rb#395
4310
- def Predicate(path, parsed); end
4311
-
4312
- # source://rexml//lib/rexml/parsers/xpathparser.rb#626
4313
- def PrimaryExpr(path, parsed); end
4314
-
4315
- # | RelationalExpr ('<' | '>' | '<=' | '>=') AdditiveExpr
4316
- # | AdditiveExpr
4317
- #
4318
- # source://rexml//lib/rexml/parsers/xpathparser.rb#480
4319
- def RelationalExpr(path, parsed); end
4320
-
4321
- # source://rexml//lib/rexml/parsers/xpathparser.rb#267
4322
- def RelativeLocationPath(path, parsed); end
4323
-
4324
- # | '-' UnaryExpr
4325
- # | UnionExpr
4326
- #
4327
- # source://rexml//lib/rexml/parsers/xpathparser.rb#553
4328
- def UnaryExpr(path, parsed); end
4329
-
4330
- # | UnionExpr '|' PathExpr
4331
- # | PathExpr
4332
- #
4333
- # source://rexml//lib/rexml/parsers/xpathparser.rb#571
4334
- def UnionExpr(path, parsed); end
4335
-
4336
- # get_group( '[foo]bar' ) -> ['bar', '[foo]']
4337
- #
4338
- # source://rexml//lib/rexml/parsers/xpathparser.rb#676
4339
- def get_group(string); end
4340
-
4341
- # source://rexml//lib/rexml/parsers/xpathparser.rb#694
4342
- def parse_args(string); end
4343
-
4344
- # source://rexml//lib/rexml/parsers/xpathparser.rb#224
4345
- def quote_literal(literal); end
4346
- end
4347
-
4348
- # source://rexml//lib/rexml/parsers/xpathparser.rb#339
4349
- REXML::Parsers::XPathParser::LOCAL_NAME_WILDCARD = T.let(T.unsafe(nil), Regexp)
4350
-
4351
- # Returns a 1-1 map of the nodeset
4352
- # The contents of the resulting array are either:
4353
- # true/false, if a positive match
4354
- # String, if a name match
4355
- # NodeTest
4356
- # | ('*' | NCNAME ':' '*' | QNAME) NameTest
4357
- # | '*' ':' NCNAME NameTest since XPath 2.0
4358
- # | NODE_TYPE '(' ')' NodeType
4359
- # | PI '(' LITERAL ')' PI
4360
- # | '[' expr ']' Predicate
4361
- #
4362
- # source://rexml//lib/rexml/parsers/xpathparser.rb#338
4363
- REXML::Parsers::XPathParser::PREFIX_WILDCARD = T.let(T.unsafe(nil), Regexp)
4364
-
4365
- # source://rexml//lib/rexml/doctype.rb#10
4366
- class REXML::ReferenceWriter
4367
- # @return [ReferenceWriter] a new instance of ReferenceWriter
4368
- #
4369
- # source://rexml//lib/rexml/doctype.rb#11
4370
- def initialize(id_type, public_id_literal, system_literal, context = T.unsafe(nil)); end
4371
-
4372
- # source://rexml//lib/rexml/doctype.rb#25
4373
- def write(output); end
4374
- end
4375
-
4376
- # A Source can be searched for patterns, and wraps buffers and other
4377
- # objects and provides consumption of text
4378
- #
4379
- # source://rexml//lib/rexml/source.rb#51
4380
- class REXML::Source
4381
- include ::REXML::Encoding
4382
-
4383
- # Constructor
4384
- # value, overriding all encoding detection
4385
- #
4386
- # @param arg must be a String, and should be a valid XML document
4387
- # @param encoding if non-null, sets the encoding of the source to this
4388
- # @return [Source] a new instance of Source
4389
- #
4390
- # source://rexml//lib/rexml/source.rb#71
4391
- def initialize(arg, encoding = T.unsafe(nil)); end
4392
-
4393
- # The current buffer (what we're going to read next)
4394
- #
4395
- # source://rexml//lib/rexml/source.rb#84
4396
- def buffer; end
4397
-
4398
- # source://rexml//lib/rexml/source.rb#94
4399
- def buffer_encoding=(encoding); end
4400
-
4401
- # @return the current line in the source
4402
- #
4403
- # source://rexml//lib/rexml/source.rb#143
4404
- def current_line; end
4405
-
4406
- # source://rexml//lib/rexml/source.rb#88
4407
- def drop_parsed_content; end
4408
-
4409
- # @return [Boolean] true if the Source is exhausted
4410
- #
4411
- # source://rexml//lib/rexml/source.rb#138
4412
- def empty?; end
4413
-
4414
- # Returns the value of attribute encoding.
4415
- #
4416
- # source://rexml//lib/rexml/source.rb#55
4417
- def encoding; end
4418
-
4419
- # Inherited from Encoding
4420
- # Overridden to support optimized en/decoding
4421
- #
4422
- # source://rexml//lib/rexml/source.rb#100
4423
- def encoding=(enc); end
4424
-
4425
- # source://rexml//lib/rexml/source.rb#118
4426
- def ensure_buffer; end
4427
-
4428
- # The line number of the last consumed text
4429
- #
4430
- # source://rexml//lib/rexml/source.rb#54
4431
- def line; end
4432
-
4433
- # source://rexml//lib/rexml/source.rb#121
4434
- def match(pattern, cons = T.unsafe(nil)); end
4435
-
4436
- # source://rexml//lib/rexml/source.rb#129
4437
- def position; end
4438
-
4439
- # source://rexml//lib/rexml/source.rb#133
4440
- def position=(pos); end
4441
-
4442
- # source://rexml//lib/rexml/source.rb#105
4443
- def read(term = T.unsafe(nil)); end
4444
-
4445
- # source://rexml//lib/rexml/source.rb#108
4446
- def read_until(term); end
4447
-
4448
- private
4449
-
4450
- # source://rexml//lib/rexml/source.rb#152
4451
- def detect_encoding; end
4452
-
4453
- # source://rexml//lib/rexml/source.rb#170
4454
- def encoding_updated; end
4455
- end
4456
-
4457
- # source://rexml//lib/rexml/source.rb#57
4458
- module REXML::Source::Private; end
4459
-
4460
- # source://rexml//lib/rexml/source.rb#59
4461
- REXML::Source::Private::PRE_DEFINED_TERM_PATTERNS = T.let(T.unsafe(nil), Hash)
4462
-
4463
- # source://rexml//lib/rexml/source.rb#58
4464
- REXML::Source::Private::SCANNER_RESET_SIZE = T.let(T.unsafe(nil), Integer)
4465
-
4466
- # Represents text nodes in an XML document
4467
- #
4468
- # source://rexml//lib/rexml/text.rb#11
4469
- class REXML::Text < ::REXML::Child
4470
- include ::Comparable
4471
-
4472
- # Constructor
4473
- # +arg+ if a String, the content is set to the String. If a Text,
4474
- # the object is shallowly cloned.
4475
- #
4476
- # +respect_whitespace+ (boolean, false) if true, whitespace is
4477
- # respected
4478
- #
4479
- # +parent+ (nil) if this is a Parent object, the parent
4480
- # will be set to this.
4481
- #
4482
- # +raw+ (nil) This argument can be given three values.
4483
- # If true, then the value of used to construct this object is expected to
4484
- # contain no unescaped XML markup, and REXML will not change the text. If
4485
- # this value is false, the string may contain any characters, and REXML will
4486
- # escape any and all defined entities whose values are contained in the
4487
- # text. If this value is nil (the default), then the raw value of the
4488
- # parent will be used as the raw value for this node. If there is no raw
4489
- # value for the parent, and no value is supplied, the default is false.
4490
- # Use this field if you have entities defined for some text, and you don't
4491
- # want REXML to escape that text in output.
4492
- # Text.new( "<&", false, nil, false ) #-> "&lt;&amp;"
4493
- # Text.new( "&lt;&amp;", false, nil, false ) #-> "&amp;lt;&amp;amp;"
4494
- # Text.new( "<&", false, nil, true ) #-> Parse exception
4495
- # Text.new( "&lt;&amp;", false, nil, true ) #-> "&lt;&amp;"
4496
- # # Assume that the entity "s" is defined to be "sean"
4497
- # # and that the entity "r" is defined to be "russell"
4498
- # Text.new( "sean russell" ) #-> "&s; &r;"
4499
- # Text.new( "sean russell", false, nil, true ) #-> "sean russell"
4500
- #
4501
- # +entity_filter+ (nil) This can be an array of entities to match in the
4502
- # supplied text. This argument is only useful if +raw+ is set to false.
4503
- # Text.new( "sean russell", false, nil, false, ["s"] ) #-> "&s; russell"
4504
- # Text.new( "sean russell", false, nil, true, ["s"] ) #-> "sean russell"
4505
- # In the last example, the +entity_filter+ argument is ignored.
4506
- #
4507
- # +illegal+ INTERNAL USE ONLY
4508
- #
4509
- # @return [Text] a new instance of Text
4510
- #
4511
- # source://rexml//lib/rexml/text.rb#94
4512
- def initialize(arg, respect_whitespace = T.unsafe(nil), parent = T.unsafe(nil), raw = T.unsafe(nil), entity_filter = T.unsafe(nil), illegal = T.unsafe(nil)); end
4513
-
4514
- # Appends text to this text node. The text is appended in the +raw+ mode
4515
- # of this text node.
4516
- #
4517
- # +returns+ the text itself to enable method chain like
4518
- # 'text << "XXX" << "YYY"'.
4519
- #
4520
- # source://rexml//lib/rexml/text.rb#214
4521
- def <<(to_append); end
4522
-
4523
- # +other+ a String or a Text
4524
- # +returns+ the result of (to_s <=> arg.to_s)
4525
- #
4526
- # source://rexml//lib/rexml/text.rb#223
4527
- def <=>(other); end
4528
-
4529
- # source://rexml//lib/rexml/text.rb#204
4530
- def clone; end
4531
-
4532
- # source://rexml//lib/rexml/text.rb#227
4533
- def doctype; end
4534
-
4535
- # @return [Boolean]
4536
- #
4537
- # source://rexml//lib/rexml/text.rb#199
4538
- def empty?; end
4539
-
4540
- # source://rexml//lib/rexml/text.rb#299
4541
- def indent_text(string, level = T.unsafe(nil), style = T.unsafe(nil), indentfirstline = T.unsafe(nil)); end
4542
-
4543
- # source://rexml//lib/rexml/text.rb#253
4544
- def inspect; end
4545
-
4546
- # source://rexml//lib/rexml/text.rb#195
4547
- def node_type; end
4548
-
4549
- # source://rexml//lib/rexml/text.rb#125
4550
- def parent=(parent); end
4551
-
4552
- # If +raw+ is true, then REXML leaves the value alone
4553
- #
4554
- # source://rexml//lib/rexml/text.rb#21
4555
- def raw; end
4556
-
4557
- # If +raw+ is true, then REXML leaves the value alone
4558
- #
4559
- # source://rexml//lib/rexml/text.rb#21
4560
- def raw=(_arg0); end
4561
-
4562
- # Returns the string value of this text node. This string is always
4563
- # escaped, meaning that it is a valid XML text node string, and all
4564
- # entities that can be escaped, have been inserted. This method respects
4565
- # the entity filter set in the constructor.
4566
- #
4567
- # # Assume that the entity "s" is defined to be "sean", and that the
4568
- # # entity "r" is defined to be "russell"
4569
- # t = Text.new( "< & sean russell", false, nil, false, ['s'] )
4570
- # t.to_s #-> "&lt; &amp; &s; russell"
4571
- # t = Text.new( "< & &s; russell", false, nil, false )
4572
- # t.to_s #-> "&lt; &amp; &s; russell"
4573
- # u = Text.new( "sean russell", false, nil, true )
4574
- # u.to_s #-> "sean russell"
4575
- #
4576
- # source://rexml//lib/rexml/text.rb#248
4577
- def to_s; end
4578
-
4579
- # Returns the string value of this text. This is the text without
4580
- # entities, as it might be used programmatically, or printed to the
4581
- # console. This ignores the 'raw' attribute setting, and any
4582
- # entity_filter.
4583
- #
4584
- # # Assume that the entity "s" is defined to be "sean", and that the
4585
- # # entity "r" is defined to be "russell"
4586
- # t = Text.new( "< & sean russell", false, nil, false, ['s'] )
4587
- # t.value #-> "< & sean russell"
4588
- # t = Text.new( "< & &s; russell", false, nil, false )
4589
- # t.value #-> "< & sean russell"
4590
- # u = Text.new( "sean russell", false, nil, true )
4591
- # u.value #-> "sean russell"
4592
- #
4593
- # source://rexml//lib/rexml/text.rb#270
4594
- def value; end
4595
-
4596
- # Sets the contents of this text node. This expects the text to be
4597
- # unnormalized. It returns self.
4598
- #
4599
- # e = Element.new( "a" )
4600
- # e.add_text( "foo" ) # <a>foo</a>
4601
- # e[0].value = "bar" # <a>bar</a>
4602
- # e[0].value = "<a>" # <a>&lt;a&gt;</a>
4603
- #
4604
- # source://rexml//lib/rexml/text.rb#282
4605
- def value=(val); end
4606
-
4607
- # source://rexml//lib/rexml/text.rb#288
4608
- def wrap(string, width, addnewline = T.unsafe(nil)); end
4609
-
4610
- # == DEPRECATED
4611
- # See REXML::Formatters
4612
- #
4613
- # source://rexml//lib/rexml/text.rb#314
4614
- def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
4615
-
4616
- # Writes out text, substituting special characters beforehand.
4617
- # +out+ A String, IO, or any other object supporting <<( String )
4618
- # +input+ the text to substitute and the write out
4619
- #
4620
- # z=utf8.unpack("U*")
4621
- # ascOut=""
4622
- # z.each{|r|
4623
- # if r < 0x100
4624
- # ascOut.concat(r.chr)
4625
- # else
4626
- # ascOut.concat(sprintf("&#x%x;", r))
4627
- # end
4628
- # }
4629
- # puts ascOut
4630
- #
4631
- # source://rexml//lib/rexml/text.rb#346
4632
- def write_with_substitution(out, input); end
4633
-
4634
- # FIXME
4635
- # This probably won't work properly
4636
- #
4637
- # source://rexml//lib/rexml/text.rb#326
4638
- def xpath; end
4639
-
4640
- private
4641
-
4642
- # source://rexml//lib/rexml/text.rb#359
4643
- def clear_cache; end
4644
-
4645
- class << self
4646
- # check for illegal characters
4647
- #
4648
- # source://rexml//lib/rexml/text.rb#131
4649
- def check(string, pattern, doctype); end
4650
-
4651
- # source://rexml//lib/rexml/text.rb#429
4652
- def expand(ref, doctype, filter); end
4653
-
4654
- # Escapes all possible entities
4655
- #
4656
- # source://rexml//lib/rexml/text.rb#391
4657
- def normalize(input, doctype = T.unsafe(nil), entity_filter = T.unsafe(nil)); end
4658
-
4659
- # Reads text, substituting entities
4660
- #
4661
- # source://rexml//lib/rexml/text.rb#365
4662
- def read_with_substitution(input, illegal = T.unsafe(nil)); end
4663
-
4664
- # Unescapes all possible entities
4665
- #
4666
- # source://rexml//lib/rexml/text.rb#415
4667
- def unnormalize(string, doctype = T.unsafe(nil), filter = T.unsafe(nil), illegal = T.unsafe(nil), entity_expansion_text_limit: T.unsafe(nil)); end
4668
- end
4669
- end
4670
-
4671
- # source://rexml//lib/rexml/undefinednamespaceexception.rb#4
4672
- class REXML::UndefinedNamespaceException < ::REXML::ParseException
4673
- # @return [UndefinedNamespaceException] a new instance of UndefinedNamespaceException
4674
- #
4675
- # source://rexml//lib/rexml/undefinednamespaceexception.rb#5
4676
- def initialize(prefix, source, parser); end
4677
- end
4678
-
4679
- # source://rexml//lib/rexml/validation/validationexception.rb#4
4680
- class REXML::Validation::ValidationException < ::RuntimeError
4681
- # @return [ValidationException] a new instance of ValidationException
4682
- #
4683
- # source://rexml//lib/rexml/validation/validationexception.rb#5
4684
- def initialize(msg); end
4685
- end
4686
-
4687
- # NEEDS DOCUMENTATION
4688
- #
4689
- # source://rexml//lib/rexml/xmldecl.rb#8
4690
- class REXML::XMLDecl < ::REXML::Child
4691
- include ::REXML::Encoding
4692
-
4693
- # @return [XMLDecl] a new instance of XMLDecl
4694
- #
4695
- # source://rexml//lib/rexml/xmldecl.rb#20
4696
- def initialize(version = T.unsafe(nil), encoding = T.unsafe(nil), standalone = T.unsafe(nil)); end
4697
-
4698
- # source://rexml//lib/rexml/xmldecl.rb#56
4699
- def ==(other); end
4700
-
4701
- # source://rexml//lib/rexml/xmldecl.rb#39
4702
- def clone; end
4703
-
4704
- # source://rexml//lib/rexml/xmldecl.rb#102
4705
- def dowrite; end
4706
-
4707
- # source://rexml//lib/rexml/xmldecl.rb#76
4708
- def encoding=(enc); end
4709
-
4710
- # source://rexml//lib/rexml/xmldecl.rb#106
4711
- def inspect; end
4712
-
4713
- # source://rexml//lib/rexml/xmldecl.rb#69
4714
- def node_type; end
4715
-
4716
- # source://rexml//lib/rexml/xmldecl.rb#98
4717
- def nowrite; end
4718
-
4719
- # source://rexml//lib/rexml/encoding.rb#7
4720
- def old_enc=(encoding); end
4721
-
4722
- # Returns the value of attribute standalone.
4723
- #
4724
- # source://rexml//lib/rexml/xmldecl.rb#17
4725
- def stand_alone?; end
4726
-
4727
- # Returns the value of attribute standalone.
4728
- #
4729
- # source://rexml//lib/rexml/xmldecl.rb#17
4730
- def standalone; end
4731
-
4732
- # Sets the attribute standalone
4733
- #
4734
- # @param value the value to set the attribute standalone to.
4735
- #
4736
- # source://rexml//lib/rexml/xmldecl.rb#17
4737
- def standalone=(_arg0); end
4738
-
4739
- # Returns the value of attribute version.
4740
- #
4741
- # source://rexml//lib/rexml/xmldecl.rb#17
4742
- def version; end
4743
-
4744
- # Sets the attribute version
4745
- #
4746
- # @param value the value to set the attribute version to.
4747
- #
4748
- # source://rexml//lib/rexml/xmldecl.rb#17
4749
- def version=(_arg0); end
4750
-
4751
- # indent::
4752
- # Ignored. There must be no whitespace before an XML declaration
4753
- # transitive::
4754
- # Ignored
4755
- # ie_hack::
4756
- # Ignored
4757
- #
4758
- # source://rexml//lib/rexml/xmldecl.rb#49
4759
- def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
4760
-
4761
- # Returns the value of attribute writeencoding.
4762
- #
4763
- # source://rexml//lib/rexml/xmldecl.rb#18
4764
- def writeencoding; end
4765
-
4766
- # Returns the value of attribute writethis.
4767
- #
4768
- # source://rexml//lib/rexml/xmldecl.rb#18
4769
- def writethis; end
4770
-
4771
- # source://rexml//lib/rexml/xmldecl.rb#63
4772
- def xmldecl(version, encoding, standalone); end
4773
-
4774
- private
4775
-
4776
- # source://rexml//lib/rexml/xmldecl.rb#111
4777
- def content(enc); end
4778
-
4779
- class << self
4780
- # Only use this if you do not want the XML declaration to be written;
4781
- # this object is ignored by the XML writer. Otherwise, instantiate your
4782
- # own XMLDecl and add it to the document.
4783
- #
4784
- # Note that XML 1.1 documents *must* include an XML declaration
4785
- #
4786
- # source://rexml//lib/rexml/xmldecl.rb#92
4787
- def default; end
4788
- end
4789
- end
4790
-
4791
- # @private
4792
- #
4793
- # source://rexml//lib/rexml/xpath_parser.rb#963
4794
- class REXML::XPathNode
4795
- # @return [XPathNode] a new instance of XPathNode
4796
- #
4797
- # source://rexml//lib/rexml/xpath_parser.rb#965
4798
- def initialize(node, context = T.unsafe(nil)); end
4799
-
4800
- # Returns the value of attribute context.
4801
- #
4802
- # source://rexml//lib/rexml/xpath_parser.rb#964
4803
- def context; end
4804
-
4805
- # source://rexml//lib/rexml/xpath_parser.rb#974
4806
- def position; end
4807
-
4808
- # Returns the value of attribute raw_node.
4809
- #
4810
- # source://rexml//lib/rexml/xpath_parser.rb#964
4811
- def raw_node; end
4812
- end
4813
-
4814
- # You don't want to use this class. Really. Use XPath, which is a wrapper
4815
- # for this class. Believe me. You don't want to poke around in here.
4816
- # There is strange, dark magic at work in this code. Beware. Go back! Go
4817
- # back while you still can!
4818
- #
4819
- # source://rexml//lib/rexml/xpath_parser.rb#54
4820
- class REXML::XPathParser
4821
- include ::REXML::XMLTokens
4822
-
4823
- # @return [XPathParser] a new instance of XPathParser
4824
- #
4825
- # source://rexml//lib/rexml/xpath_parser.rb#60
4826
- def initialize(strict: T.unsafe(nil)); end
4827
-
4828
- # source://rexml//lib/rexml/xpath_parser.rb#94
4829
- def []=(variable_name, value); end
4830
-
4831
- # Performs a depth-first (document order) XPath search, and returns the
4832
- # first match. This is the fastest, lightest way to return a single result.
4833
- #
4834
- # FIXME: This method is incomplete!
4835
- #
4836
- # source://rexml//lib/rexml/xpath_parser.rb#103
4837
- def first(path_stack, node); end
4838
-
4839
- # source://rexml//lib/rexml/xpath_parser.rb#84
4840
- def get_first(path, nodeset); end
4841
-
4842
- # source://rexml//lib/rexml/xpath_parser.rb#139
4843
- def match(path_stack, nodeset); end
4844
-
4845
- # source://rexml//lib/rexml/xpath_parser.rb#69
4846
- def namespaces=(namespaces = T.unsafe(nil)); end
4847
-
4848
- # source://rexml//lib/rexml/xpath_parser.rb#79
4849
- def parse(path, nodeset); end
4850
-
4851
- # source://rexml//lib/rexml/xpath_parser.rb#89
4852
- def predicate(path, nodeset); end
4853
-
4854
- # source://rexml//lib/rexml/xpath_parser.rb#74
4855
- def variables=(vars = T.unsafe(nil)); end
4856
-
4857
- private
4858
-
4859
- # source://rexml//lib/rexml/xpath_parser.rb#779
4860
- def child(nodeset); end
4861
-
4862
- # source://rexml//lib/rexml/xpath_parser.rb#920
4863
- def compare(a, operator, b); end
4864
-
4865
- # source://rexml//lib/rexml/xpath_parser.rb#682
4866
- def descendant(nodeset, include_self); end
4867
-
4868
- # source://rexml//lib/rexml/xpath_parser.rb#693
4869
- def descendant_recursive(raw_node, new_nodeset, new_nodes, include_self); end
4870
-
4871
- # source://rexml//lib/rexml/xpath_parser.rb#942
4872
- def each_unnode(nodeset); end
4873
-
4874
- # source://rexml//lib/rexml/xpath_parser.rb#641
4875
- def enter(tag, *args); end
4876
-
4877
- # source://rexml//lib/rexml/xpath_parser.rb#819
4878
- def equality_relational_compare(set1, op, set2); end
4879
-
4880
- # source://rexml//lib/rexml/xpath_parser.rb#591
4881
- def evaluate_predicate(expression, nodesets); end
4882
-
4883
- # Expr takes a stack of path elements and a set of nodes (either a Parent
4884
- # or an Array and returns an Array of matching nodes
4885
- #
4886
- # source://rexml//lib/rexml/xpath_parser.rb#175
4887
- def expr(path_stack, nodeset, context = T.unsafe(nil)); end
4888
-
4889
- # source://rexml//lib/rexml/xpath_parser.rb#582
4890
- def filter_nodeset(nodeset); end
4891
-
4892
- # source://rexml//lib/rexml/xpath_parser.rb#749
4893
- def following(node); end
4894
-
4895
- # source://rexml//lib/rexml/xpath_parser.rb#760
4896
- def following_node_of(node); end
4897
-
4898
- # Returns a String namespace for a node, given a prefix
4899
- # The rules are:
4900
- #
4901
- # 1. Use the supplied namespace mapping first.
4902
- # 2. If no mapping was supplied, use the context node to look up the namespace
4903
- #
4904
- # source://rexml//lib/rexml/xpath_parser.rb#163
4905
- def get_namespace(node, prefix); end
4906
-
4907
- # source://rexml//lib/rexml/xpath_parser.rb#646
4908
- def leave(tag, *args); end
4909
-
4910
- # source://rexml//lib/rexml/xpath_parser.rb#767
4911
- def next_sibling_node(node); end
4912
-
4913
- # source://rexml//lib/rexml/xpath_parser.rb#477
4914
- def node_test(path_stack, nodesets, any_type: T.unsafe(nil)); end
4915
-
4916
- # source://rexml//lib/rexml/xpath_parser.rb#806
4917
- def norm(b); end
4918
-
4919
- # source://rexml//lib/rexml/xpath_parser.rb#894
4920
- def normalize_compare_values(a, operator, b); end
4921
-
4922
- # Builds a nodeset of all of the preceding nodes of the supplied node,
4923
- # in reverse document order
4924
- # preceding:: includes every element in the document that precedes this node,
4925
- # except for ancestors
4926
- #
4927
- # source://rexml//lib/rexml/xpath_parser.rb#712
4928
- def preceding(node); end
4929
-
4930
- # source://rexml//lib/rexml/xpath_parser.rb#734
4931
- def preceding_node_of(node); end
4932
-
4933
- # Reorders an array of nodes so that they are in document order
4934
- # It tries to do this efficiently.
4935
- #
4936
- # FIXME: I need to get rid of this, but the issue is that most of the XPath
4937
- # interpreter functions as a filter, which means that we lose context going
4938
- # in and out of function calls. If I knew what the index of the nodes was,
4939
- # I wouldn't have to do this. Maybe add a document IDX for each node?
4940
- # Problems with mutable documents. Or, rewrite everything.
4941
- #
4942
- # source://rexml//lib/rexml/xpath_parser.rb#659
4943
- def sort(array_of_nodes, order); end
4944
-
4945
- # source://rexml//lib/rexml/xpath_parser.rb#441
4946
- def step(path_stack, any_type: T.unsafe(nil), order: T.unsafe(nil)); end
4947
-
4948
- # @return [Boolean]
4949
- #
4950
- # source://rexml//lib/rexml/xpath_parser.rb#154
4951
- def strict?; end
4952
-
4953
- # source://rexml//lib/rexml/xpath_parser.rb#634
4954
- def trace(*args); end
4955
-
4956
- # source://rexml//lib/rexml/xpath_parser.rb#954
4957
- def unnode(nodeset); end
4958
-
4959
- # source://rexml//lib/rexml/xpath_parser.rb#881
4960
- def value_type(value); end
4961
- end
4962
-
4963
- # source://rexml//lib/rexml/xpath_parser.rb#58
4964
- REXML::XPathParser::DEBUG = T.let(T.unsafe(nil), FalseClass)