class REXML::Elements


elements # => #<REXML::Elements @element=<bookstore> … </>>
elements = d.root.elements
d = REXML::Document.new(xml_string)
EOT
</bookstore>
</book>
<price>39.95</price>
<year>2003</year>
<author>Erik T. Ray</author>
<title lang=“en”>Learning XML</title>
<book category=“web” cover=“paperback”>
</book>
<price>49.99</price>
<year>2003</year>
<author>Vaidyanathan Nagarajan</author>
<author>James Linn</author>
<author>Kurt Cagle</author>
<author>Per Bothner</author>
<author>James McGovern</author>
<title lang=“en”>XQuery Kick Start</title>
<book category=“web”>
</book>
<price>29.99</price>
<year>2005</year>
<author>J K. Rowling</author>
<title lang=“en”>Harry Potter</title>
<book category=“children”>
</book>
<price>30.00</price>
<year>2005</year>
<author>Giada De Laurentiis</author>
<title lang=“en”>Everyday Italian</title>
<book category=“cooking”>
<bookstore>
<?xml version=“1.0” encoding=“UTF-8”?>
xml_string = <<-EOT
not expected to instantiate this yourself.
the element.elements object. Therefore, you are
XPath search support. You are expected to only encounter this class as
A class which provides filtering of children for Elements, and

def []( index, name=nil)


eles[5, 'book'] # => nil
eles[4, 'book'] # => ...
eles[1, 'book'] # => ...
eles = d.root.elements # => # ... >

or +nil+ if there is no such _nth_ element:
returns the _nth_ found element that has the given +name+,
With arguments +n+ and +name+ given,

eles['..'].class # => REXML::Document
eles['.'] # => ...
eles['//book [@category="nosuch"]'] # => nil
eles['//nosuch'] # => nil
eles['/nosuch'] # => nil
eles['//book [@category="children"]'] # => ...
eles['//book'] # => ...
eles['/bookstore'] # => ...
eles = d.root.elements # => # ... >

returns the first element found via that +xpath+, if any; otherwise, +nil+:
When the single argument +xpath+ is given,

eles[1] # => nil
eles.to_a # => ["Everyday Italian"]
eles = d.root.first.first # => ... </><br><br>The node at this index is not an \Element, and so is not returned:<br><br>eles[5] # => nil<br>eles[4] # => <book category='web' cover='paperback'> ... </><br>eles.size # => 4<br>eles[1] # => <book category='cooking'> ... </><br>eles # => #<REXML::Elements @element=<bookstore> ... </>><br>eles = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>returns the element given by the index, if any; otherwise, +nil+:<br>When the single argument +index+ is given,<br><br>- The selection ignores non-\Element nodes.<br>- The _nth_ element has index +n+.<br>- The first element has index <tt>1</tt><br>- The +index+ is 1-based, not 0-based, so that:<br>Notes:<br><br>if any found, or +nil+ if none found.<br>Returns the first \Element object selected by the arguments,<br><br>elements[n, name] -> element or nil<br>elements[xpath] -> element or nil<br>elements[index] -> element or nil<br>:call-seq: </div> <pre id="code-block-8812" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">[]</span><span class="p">(</span> <span class="n">index</span><span class="p">,</span> <span class="nb">name</span><span class="o">=</span><span class="kp">nil</span><span class="p">)</span> <span class="k">if</span> <span class="n">index</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Integer</span> <span class="k">raise</span> <span class="s2">"index (</span><span class="si">#{</span><span class="n">index</span><span class="si">}</span><span class="s2">) must be >= 1"</span> <span class="k">if</span> <span class="n">index</span> <span class="o"><</span> <span class="mi">1</span> <span class="nb">name</span> <span class="o">=</span> <span class="n">literalize</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span> <span class="k">if</span> <span class="nb">name</span> <span class="n">num</span> <span class="o">=</span> <span class="mi">0</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">find</span> <span class="p">{</span> <span class="o">|</span><span class="n">child</span><span class="o">|</span> <span class="n">child</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span> <span class="ow">and</span> <span class="p">(</span><span class="nb">name</span><span class="p">.</span><span class="nf">nil?</span> <span class="p">?</span> <span class="kp">true</span> <span class="p">:</span> <span class="n">child</span><span class="p">.</span><span class="nf">has_name?</span><span class="p">(</span> <span class="nb">name</span> <span class="p">))</span> <span class="ow">and</span> <span class="p">(</span><span class="n">num</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="n">index</span> <span class="p">}</span> <span class="k">else</span> <span class="k">return</span> <span class="no">XPath</span><span class="o">::</span><span class="n">first</span><span class="p">(</span> <span class="vi">@element</span><span class="p">,</span> <span class="n">index</span> <span class="p">)</span> <span class="c1">#{ |element|</span> <span class="c1"># return element if element.kind_of? Element</span> <span class="c1">#}</span> <span class="c1">#return nil</span> <span class="k">end</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-8812.rouge table td { padding: 5px; } pre#code-block-8812.rouge table pre { margin: 0; } pre#code-block-8812.rouge, pre#code-block-8812.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-8812.rouge .k, pre#code-block-8812.rouge .kd, pre#code-block-8812.rouge .kn, pre#code-block-8812.rouge .kp, pre#code-block-8812.rouge .kr, pre#code-block-8812.rouge .kt, pre#code-block-8812.rouge .kv { color: #cf222e; } pre#code-block-8812.rouge .gr { color: #f6f8fa; } pre#code-block-8812.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-8812.rouge .nb { color: #953800; } pre#code-block-8812.rouge .nc { color: #953800; } pre#code-block-8812.rouge .no { color: #953800; } pre#code-block-8812.rouge .nn { color: #953800; } pre#code-block-8812.rouge .sr { color: #116329; } pre#code-block-8812.rouge .na { color: #116329; } pre#code-block-8812.rouge .nt { color: #116329; } pre#code-block-8812.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-8812.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-8812.rouge .kc { color: #0550ae; } pre#code-block-8812.rouge .l, pre#code-block-8812.rouge .ld, pre#code-block-8812.rouge .m, pre#code-block-8812.rouge .mb, pre#code-block-8812.rouge .mf, pre#code-block-8812.rouge .mh, pre#code-block-8812.rouge .mi, pre#code-block-8812.rouge .il, pre#code-block-8812.rouge .mo, pre#code-block-8812.rouge .mx { color: #0550ae; } pre#code-block-8812.rouge .sb { color: #0550ae; } pre#code-block-8812.rouge .bp { color: #0550ae; } pre#code-block-8812.rouge .ne { color: #0550ae; } pre#code-block-8812.rouge .nl { color: #0550ae; } pre#code-block-8812.rouge .py { color: #0550ae; } pre#code-block-8812.rouge .nv, pre#code-block-8812.rouge .vc, pre#code-block-8812.rouge .vg, pre#code-block-8812.rouge .vi, pre#code-block-8812.rouge .vm { color: #0550ae; } pre#code-block-8812.rouge .o, pre#code-block-8812.rouge .ow { color: #0550ae; } pre#code-block-8812.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-8812.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-8812.rouge .s, pre#code-block-8812.rouge .sa, pre#code-block-8812.rouge .sc, pre#code-block-8812.rouge .dl, pre#code-block-8812.rouge .sd, pre#code-block-8812.rouge .s2, pre#code-block-8812.rouge .se, pre#code-block-8812.rouge .sh, pre#code-block-8812.rouge .sx, pre#code-block-8812.rouge .s1, pre#code-block-8812.rouge .ss { color: #0a3069; } pre#code-block-8812.rouge .nd { color: #8250df; } pre#code-block-8812.rouge .nf, pre#code-block-8812.rouge .fm { color: #8250df; } pre#code-block-8812.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-8812.rouge .c, pre#code-block-8812.rouge .ch, pre#code-block-8812.rouge .cd, pre#code-block-8812.rouge .cm, pre#code-block-8812.rouge .cp, pre#code-block-8812.rouge .cpf, pre#code-block-8812.rouge .c1, pre#code-block-8812.rouge .cs { color: #6e7781; } pre#code-block-8812.rouge .gl { color: #6e7781; } pre#code-block-8812.rouge .gt { color: #6e7781; } pre#code-block-8812.rouge .ni { color: #24292f; } pre#code-block-8812.rouge .si { color: #24292f; } pre#code-block-8812.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-8812.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def []=( index, element ) </h3> </div> <br>eles.size # => 5<br>eles[50] = REXML::Text.new('bar') # => "bar"<br><br>if +replacement_element+ is not an \Element:<br>Does nothing (or raises an exception)<br><br>eles[5] # => <foo/><br>eles.size # => 5<br>eles[50] = REXML::Element.new('foo') # => <foo/><br>eles.size # => 4<br>eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>><br>d = REXML::Document.new(xml_string)<br><br>adds +replacement_element+ to the element and returns<br>When <tt>eles[index]</tt> does not exist,<br><br>eles[2] # => <book category='web' cover='paperback'> ... </><br>eles[2] = REXML::Text.new('bar')<br>eles[2] # => <book category='web' cover='paperback'> ... </><br>if +replacement_element+ is not an \Element:<br>Does nothing (or raises an exception)<br><br>eles[1] # => <foo/><br>eles[1] = REXML::Element.new('foo')<br>eles[1] # => <book category='cooking'> ... </><br>eles = d.root.elements # => #<REXML::Elements @element=<bookstore> ... </>><br>d = REXML::Document.new(xml_string)<br><br>and returns +replacement_element+:<br>When <tt>eles[index]</tt> exists, replaces it with +replacement_element+<br><br>Replaces or adds an element.<br><br>elements[] = index, replacement_element -> replacement_element or nil<br>:call-seq: </div> <pre id="code-block-6759" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">[]=</span><span class="p">(</span> <span class="n">index</span><span class="p">,</span> <span class="n">element</span> <span class="p">)</span> <span class="n">previous</span> <span class="o">=</span> <span class="nb">self</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="k">if</span> <span class="n">previous</span><span class="p">.</span><span class="nf">nil?</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">add</span> <span class="n">element</span> <span class="k">else</span> <span class="n">previous</span><span class="p">.</span><span class="nf">replace_with</span> <span class="n">element</span> <span class="k">end</span> <span class="k">return</span> <span class="n">previous</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-6759.rouge table td { padding: 5px; } pre#code-block-6759.rouge table pre { margin: 0; } pre#code-block-6759.rouge, pre#code-block-6759.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-6759.rouge .k, pre#code-block-6759.rouge .kd, pre#code-block-6759.rouge .kn, pre#code-block-6759.rouge .kp, pre#code-block-6759.rouge .kr, pre#code-block-6759.rouge .kt, pre#code-block-6759.rouge .kv { color: #cf222e; } pre#code-block-6759.rouge .gr { color: #f6f8fa; } pre#code-block-6759.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-6759.rouge .nb { color: #953800; } pre#code-block-6759.rouge .nc { color: #953800; } pre#code-block-6759.rouge .no { color: #953800; } pre#code-block-6759.rouge .nn { color: #953800; } pre#code-block-6759.rouge .sr { color: #116329; } pre#code-block-6759.rouge .na { color: #116329; } pre#code-block-6759.rouge .nt { color: #116329; } pre#code-block-6759.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-6759.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-6759.rouge .kc { color: #0550ae; } pre#code-block-6759.rouge .l, pre#code-block-6759.rouge .ld, pre#code-block-6759.rouge .m, pre#code-block-6759.rouge .mb, pre#code-block-6759.rouge .mf, pre#code-block-6759.rouge .mh, pre#code-block-6759.rouge .mi, pre#code-block-6759.rouge .il, pre#code-block-6759.rouge .mo, pre#code-block-6759.rouge .mx { color: #0550ae; } pre#code-block-6759.rouge .sb { color: #0550ae; } pre#code-block-6759.rouge .bp { color: #0550ae; } pre#code-block-6759.rouge .ne { color: #0550ae; } pre#code-block-6759.rouge .nl { color: #0550ae; } pre#code-block-6759.rouge .py { color: #0550ae; } pre#code-block-6759.rouge .nv, pre#code-block-6759.rouge .vc, pre#code-block-6759.rouge .vg, pre#code-block-6759.rouge .vi, pre#code-block-6759.rouge .vm { color: #0550ae; } pre#code-block-6759.rouge .o, pre#code-block-6759.rouge .ow { color: #0550ae; } pre#code-block-6759.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-6759.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-6759.rouge .s, pre#code-block-6759.rouge .sa, pre#code-block-6759.rouge .sc, pre#code-block-6759.rouge .dl, pre#code-block-6759.rouge .sd, pre#code-block-6759.rouge .s2, pre#code-block-6759.rouge .se, pre#code-block-6759.rouge .sh, pre#code-block-6759.rouge .sx, pre#code-block-6759.rouge .s1, pre#code-block-6759.rouge .ss { color: #0a3069; } pre#code-block-6759.rouge .nd { color: #8250df; } pre#code-block-6759.rouge .nf, pre#code-block-6759.rouge .fm { color: #8250df; } pre#code-block-6759.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-6759.rouge .c, pre#code-block-6759.rouge .ch, pre#code-block-6759.rouge .cd, pre#code-block-6759.rouge .cm, pre#code-block-6759.rouge .cp, pre#code-block-6759.rouge .cpf, pre#code-block-6759.rouge .c1, pre#code-block-6759.rouge .cs { color: #6e7781; } pre#code-block-6759.rouge .gl { color: #6e7781; } pre#code-block-6759.rouge .gt { color: #6e7781; } pre#code-block-6759.rouge .ni { color: #24292f; } pre#code-block-6759.rouge .si { color: #24292f; } pre#code-block-6759.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-6759.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def add element=nil </h3> </div> <br>element.context # => {:raw=>:all}<br>element.parent # => <bookstore> ... </><br>element.name # => "bar"<br>elements.size # => 5<br>element = elements.add(e1) # => <bar/><br>e1 = REXML::Element.new('bar', e0, {raw: :all})<br>e0 = REXML::Element.new('foo')<br>elements.size # => 4<br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>The new element has name, parent, and context from the given +element+.<br>creates and adds a clone of the given +element+.<br>With argument +element+,<br><br>new_element.context # => {:raw=>:all}<br>new_element.parent # => <bookstore> ... </><br>new_element.name # => "foo"<br>elements.size # => 5<br>new_element = elements.add('foo') # => <foo/><br>elements.size # => 4<br>parent.context = {raw: :all}<br>parent = elements.parent # => <bookstore> ... </><br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>Example:<br><br>- Context from the that parent.<br>- \Parent from the \Elements object.<br>- Name +name+.<br><br>The new element has:<br>With string argument +name+, creates and adds a new element.<br><br>new_element.context # => {:raw=>:all}<br>new_element.parent # => <bookstore> ... </><br>new_element.name # => nil<br>elements.size # => 5<br>new_element = elements.add # => </><br>elements.size # => 4<br>parent.context = {raw: :all}<br>parent = elements.parent # => <bookstore> ... </><br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>Example:<br><br>- Context from the that parent.<br>- \Parent from the \Elements object.<br>- No name.<br><br>The new element has:<br>With no argument, creates and adds a new element.<br><br>Adds an element; returns the element added.<br><br>add(element) -> element<br>add(name) -> new_element<br>add -> new_element<br>:call-seq: </div> <pre id="code-block-2540" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">add</span> <span class="n">element</span><span class="o">=</span><span class="kp">nil</span> <span class="k">if</span> <span class="n">element</span><span class="p">.</span><span class="nf">nil?</span> <span class="no">Element</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="nb">self</span><span class="p">,</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">context</span><span class="p">)</span> <span class="k">elsif</span> <span class="ow">not</span> <span class="n">element</span><span class="p">.</span><span class="nf">kind_of?</span><span class="p">(</span><span class="no">Element</span><span class="p">)</span> <span class="no">Element</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="nb">self</span><span class="p">,</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">context</span><span class="p">)</span> <span class="k">else</span> <span class="vi">@element</span> <span class="o"><<</span> <span class="n">element</span> <span class="n">element</span><span class="p">.</span><span class="nf">context</span> <span class="o">=</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">context</span> <span class="n">element</span> <span class="k">end</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-2540.rouge table td { padding: 5px; } pre#code-block-2540.rouge table pre { margin: 0; } pre#code-block-2540.rouge, pre#code-block-2540.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-2540.rouge .k, pre#code-block-2540.rouge .kd, pre#code-block-2540.rouge .kn, pre#code-block-2540.rouge .kp, pre#code-block-2540.rouge .kr, pre#code-block-2540.rouge .kt, pre#code-block-2540.rouge .kv { color: #cf222e; } pre#code-block-2540.rouge .gr { color: #f6f8fa; } pre#code-block-2540.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-2540.rouge .nb { color: #953800; } pre#code-block-2540.rouge .nc { color: #953800; } pre#code-block-2540.rouge .no { color: #953800; } pre#code-block-2540.rouge .nn { color: #953800; } pre#code-block-2540.rouge .sr { color: #116329; } pre#code-block-2540.rouge .na { color: #116329; } pre#code-block-2540.rouge .nt { color: #116329; } pre#code-block-2540.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-2540.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-2540.rouge .kc { color: #0550ae; } pre#code-block-2540.rouge .l, pre#code-block-2540.rouge .ld, pre#code-block-2540.rouge .m, pre#code-block-2540.rouge .mb, pre#code-block-2540.rouge .mf, pre#code-block-2540.rouge .mh, pre#code-block-2540.rouge .mi, pre#code-block-2540.rouge .il, pre#code-block-2540.rouge .mo, pre#code-block-2540.rouge .mx { color: #0550ae; } pre#code-block-2540.rouge .sb { color: #0550ae; } pre#code-block-2540.rouge .bp { color: #0550ae; } pre#code-block-2540.rouge .ne { color: #0550ae; } pre#code-block-2540.rouge .nl { color: #0550ae; } pre#code-block-2540.rouge .py { color: #0550ae; } pre#code-block-2540.rouge .nv, pre#code-block-2540.rouge .vc, pre#code-block-2540.rouge .vg, pre#code-block-2540.rouge .vi, pre#code-block-2540.rouge .vm { color: #0550ae; } pre#code-block-2540.rouge .o, pre#code-block-2540.rouge .ow { color: #0550ae; } pre#code-block-2540.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-2540.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-2540.rouge .s, pre#code-block-2540.rouge .sa, pre#code-block-2540.rouge .sc, pre#code-block-2540.rouge .dl, pre#code-block-2540.rouge .sd, pre#code-block-2540.rouge .s2, pre#code-block-2540.rouge .se, pre#code-block-2540.rouge .sh, pre#code-block-2540.rouge .sx, pre#code-block-2540.rouge .s1, pre#code-block-2540.rouge .ss { color: #0a3069; } pre#code-block-2540.rouge .nd { color: #8250df; } pre#code-block-2540.rouge .nf, pre#code-block-2540.rouge .fm { color: #8250df; } pre#code-block-2540.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-2540.rouge .c, pre#code-block-2540.rouge .ch, pre#code-block-2540.rouge .cd, pre#code-block-2540.rouge .cm, pre#code-block-2540.rouge .cp, pre#code-block-2540.rouge .cpf, pre#code-block-2540.rouge .c1, pre#code-block-2540.rouge .cs { color: #6e7781; } pre#code-block-2540.rouge .gl { color: #6e7781; } pre#code-block-2540.rouge .gt { color: #6e7781; } pre#code-block-2540.rouge .ni { color: #24292f; } pre#code-block-2540.rouge .si { color: #24292f; } pre#code-block-2540.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-2540.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def collect( xpath=nil ) </h3> </div> <br>elements.collect(xpath) {|element| element.size } # => [17, 9]<br>xpath = '//book [@category="web"]'<br><br>the given +xpath+:<br>With argument +xpath+, iterates over elements that match<br><br>elements.collect {|element| element.size } # => [9, 9, 17, 9]<br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>With no argument, iterates over all elements:<br><br>Iterates over the elements; returns the array of block return values.<br><br>collect(xpath = nil) {|element| ... } -> array<br>:call-seq: </div> <pre id="code-block-2259" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">collect</span><span class="p">(</span> <span class="n">xpath</span><span class="o">=</span><span class="kp">nil</span> <span class="p">)</span> <span class="n">collection</span> <span class="o">=</span> <span class="p">[]</span> <span class="no">XPath</span><span class="o">::</span><span class="n">each</span><span class="p">(</span> <span class="vi">@element</span><span class="p">,</span> <span class="n">xpath</span> <span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">e</span><span class="o">|</span> <span class="n">collection</span> <span class="o"><<</span> <span class="k">yield</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> <span class="k">if</span> <span class="n">e</span><span class="p">.</span><span class="nf">kind_of?</span><span class="p">(</span><span class="no">Element</span><span class="p">)</span> <span class="p">}</span> <span class="n">collection</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-2259.rouge table td { padding: 5px; } pre#code-block-2259.rouge table pre { margin: 0; } pre#code-block-2259.rouge, pre#code-block-2259.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-2259.rouge .k, pre#code-block-2259.rouge .kd, pre#code-block-2259.rouge .kn, pre#code-block-2259.rouge .kp, pre#code-block-2259.rouge .kr, pre#code-block-2259.rouge .kt, pre#code-block-2259.rouge .kv { color: #cf222e; } pre#code-block-2259.rouge .gr { color: #f6f8fa; } pre#code-block-2259.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-2259.rouge .nb { color: #953800; } pre#code-block-2259.rouge .nc { color: #953800; } pre#code-block-2259.rouge .no { color: #953800; } pre#code-block-2259.rouge .nn { color: #953800; } pre#code-block-2259.rouge .sr { color: #116329; } pre#code-block-2259.rouge .na { color: #116329; } pre#code-block-2259.rouge .nt { color: #116329; } pre#code-block-2259.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-2259.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-2259.rouge .kc { color: #0550ae; } pre#code-block-2259.rouge .l, pre#code-block-2259.rouge .ld, pre#code-block-2259.rouge .m, pre#code-block-2259.rouge .mb, pre#code-block-2259.rouge .mf, pre#code-block-2259.rouge .mh, pre#code-block-2259.rouge .mi, pre#code-block-2259.rouge .il, pre#code-block-2259.rouge .mo, pre#code-block-2259.rouge .mx { color: #0550ae; } pre#code-block-2259.rouge .sb { color: #0550ae; } pre#code-block-2259.rouge .bp { color: #0550ae; } pre#code-block-2259.rouge .ne { color: #0550ae; } pre#code-block-2259.rouge .nl { color: #0550ae; } pre#code-block-2259.rouge .py { color: #0550ae; } pre#code-block-2259.rouge .nv, pre#code-block-2259.rouge .vc, pre#code-block-2259.rouge .vg, pre#code-block-2259.rouge .vi, pre#code-block-2259.rouge .vm { color: #0550ae; } pre#code-block-2259.rouge .o, pre#code-block-2259.rouge .ow { color: #0550ae; } pre#code-block-2259.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-2259.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-2259.rouge .s, pre#code-block-2259.rouge .sa, pre#code-block-2259.rouge .sc, pre#code-block-2259.rouge .dl, pre#code-block-2259.rouge .sd, pre#code-block-2259.rouge .s2, pre#code-block-2259.rouge .se, pre#code-block-2259.rouge .sh, pre#code-block-2259.rouge .sx, pre#code-block-2259.rouge .s1, pre#code-block-2259.rouge .ss { color: #0a3069; } pre#code-block-2259.rouge .nd { color: #8250df; } pre#code-block-2259.rouge .nf, pre#code-block-2259.rouge .fm { color: #8250df; } pre#code-block-2259.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-2259.rouge .c, pre#code-block-2259.rouge .ch, pre#code-block-2259.rouge .cd, pre#code-block-2259.rouge .cm, pre#code-block-2259.rouge .cp, pre#code-block-2259.rouge .cpf, pre#code-block-2259.rouge .c1, pre#code-block-2259.rouge .cs { color: #6e7781; } pre#code-block-2259.rouge .gl { color: #6e7781; } pre#code-block-2259.rouge .gt { color: #6e7781; } pre#code-block-2259.rouge .ni { color: #24292f; } pre#code-block-2259.rouge .si { color: #24292f; } pre#code-block-2259.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-2259.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def delete element </h3> </div> <br>elements.delete('//nosuch') # => nil<br>elements.delete('//book [@category="children"]') # => <book category='children'> ... </><br>elements.delete('//book') # => <book category='cooking'> ... </><br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>removes the first element found via that xpath:<br>With string argument +xpath+ given,<br><br>elements.delete(ele_2) # => nil<br>elements[2] # => <book category='web'> ... </><br>elements.size # => 3<br>elements.delete(ele_2) # => <book category='children'> ... </><br>elements[2] # => <book category='children'> ... </><br>elements.size # => 4<br>ele_1, ele_2, ele_3, ele_4 = *elements<br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>removes that child element:<br>With element argument +element+ given,<br><br>elements.delete(50) # => nil<br>elements[2] # => <book category='web'> ... </><br>elements.size # => 3<br>elements.delete(2) # => <book category='children'> ... </><br>elements[2] # => <book category='children'> ... </><br>elements.size # => 4<br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>removes the child element at that offset:<br>With integer argument +index+ given,<br><br>Removes an element; returns the removed element, or +nil+ if none removed.<br><br>delete(xpath) -> removed_element or nil<br>delete(element) -> removed_element or nil<br>delete(index) -> removed_element or nil<br>:call-seq: </div> <pre id="code-block-4465" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">delete</span> <span class="n">element</span> <span class="k">if</span> <span class="n">element</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">delete</span> <span class="n">element</span> <span class="k">else</span> <span class="n">el</span> <span class="o">=</span> <span class="nb">self</span><span class="p">[</span><span class="n">element</span><span class="p">]</span> <span class="n">el</span><span class="p">.</span><span class="nf">remove</span> <span class="k">if</span> <span class="n">el</span> <span class="k">end</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-4465.rouge table td { padding: 5px; } pre#code-block-4465.rouge table pre { margin: 0; } pre#code-block-4465.rouge, pre#code-block-4465.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-4465.rouge .k, pre#code-block-4465.rouge .kd, pre#code-block-4465.rouge .kn, pre#code-block-4465.rouge .kp, pre#code-block-4465.rouge .kr, pre#code-block-4465.rouge .kt, pre#code-block-4465.rouge .kv { color: #cf222e; } pre#code-block-4465.rouge .gr { color: #f6f8fa; } pre#code-block-4465.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-4465.rouge .nb { color: #953800; } pre#code-block-4465.rouge .nc { color: #953800; } pre#code-block-4465.rouge .no { color: #953800; } pre#code-block-4465.rouge .nn { color: #953800; } pre#code-block-4465.rouge .sr { color: #116329; } pre#code-block-4465.rouge .na { color: #116329; } pre#code-block-4465.rouge .nt { color: #116329; } pre#code-block-4465.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-4465.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-4465.rouge .kc { color: #0550ae; } pre#code-block-4465.rouge .l, pre#code-block-4465.rouge .ld, pre#code-block-4465.rouge .m, pre#code-block-4465.rouge .mb, pre#code-block-4465.rouge .mf, pre#code-block-4465.rouge .mh, pre#code-block-4465.rouge .mi, pre#code-block-4465.rouge .il, pre#code-block-4465.rouge .mo, pre#code-block-4465.rouge .mx { color: #0550ae; } pre#code-block-4465.rouge .sb { color: #0550ae; } pre#code-block-4465.rouge .bp { color: #0550ae; } pre#code-block-4465.rouge .ne { color: #0550ae; } pre#code-block-4465.rouge .nl { color: #0550ae; } pre#code-block-4465.rouge .py { color: #0550ae; } pre#code-block-4465.rouge .nv, pre#code-block-4465.rouge .vc, pre#code-block-4465.rouge .vg, pre#code-block-4465.rouge .vi, pre#code-block-4465.rouge .vm { color: #0550ae; } pre#code-block-4465.rouge .o, pre#code-block-4465.rouge .ow { color: #0550ae; } pre#code-block-4465.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-4465.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-4465.rouge .s, pre#code-block-4465.rouge .sa, pre#code-block-4465.rouge .sc, pre#code-block-4465.rouge .dl, pre#code-block-4465.rouge .sd, pre#code-block-4465.rouge .s2, pre#code-block-4465.rouge .se, pre#code-block-4465.rouge .sh, pre#code-block-4465.rouge .sx, pre#code-block-4465.rouge .s1, pre#code-block-4465.rouge .ss { color: #0a3069; } pre#code-block-4465.rouge .nd { color: #8250df; } pre#code-block-4465.rouge .nf, pre#code-block-4465.rouge .fm { color: #8250df; } pre#code-block-4465.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-4465.rouge .c, pre#code-block-4465.rouge .ch, pre#code-block-4465.rouge .cd, pre#code-block-4465.rouge .cm, pre#code-block-4465.rouge .cp, pre#code-block-4465.rouge .cpf, pre#code-block-4465.rouge .c1, pre#code-block-4465.rouge .cs { color: #6e7781; } pre#code-block-4465.rouge .gl { color: #6e7781; } pre#code-block-4465.rouge .gt { color: #6e7781; } pre#code-block-4465.rouge .ni { color: #24292f; } pre#code-block-4465.rouge .si { color: #24292f; } pre#code-block-4465.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-4465.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def delete_all( xpath ) </h3> </div> <br>elements.delete_all('//book') # => []<br>elements.size # => 0<br>deleted_elements.size # => 2<br>deleted_elements = elements.delete_all('//book')<br>elements.size # => 2<br>deleted_elements.size # => 2<br>deleted_elements = elements.delete_all('//book [@category="web"]')<br>elements.size # => 4<br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>returns the array of removed elements, if any, else +nil+.<br>Removes all elements found via the given +xpath+;<br><br>delete_all(xpath)<br>:call-seq: </div> <pre id="code-block-1846" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">delete_all</span><span class="p">(</span> <span class="n">xpath</span> <span class="p">)</span> <span class="n">rv</span> <span class="o">=</span> <span class="p">[]</span> <span class="no">XPath</span><span class="o">::</span><span class="n">each</span><span class="p">(</span> <span class="vi">@element</span><span class="p">,</span> <span class="n">xpath</span><span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">element</span><span class="o">|</span> <span class="n">rv</span> <span class="o"><<</span> <span class="n">element</span> <span class="k">if</span> <span class="n">element</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span> <span class="p">}</span> <span class="n">rv</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">element</span><span class="o">|</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">delete</span> <span class="n">element</span> <span class="n">element</span><span class="p">.</span><span class="nf">remove</span> <span class="k">end</span> <span class="k">return</span> <span class="n">rv</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-1846.rouge table td { padding: 5px; } pre#code-block-1846.rouge table pre { margin: 0; } pre#code-block-1846.rouge, pre#code-block-1846.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-1846.rouge .k, pre#code-block-1846.rouge .kd, pre#code-block-1846.rouge .kn, pre#code-block-1846.rouge .kp, pre#code-block-1846.rouge .kr, pre#code-block-1846.rouge .kt, pre#code-block-1846.rouge .kv { color: #cf222e; } pre#code-block-1846.rouge .gr { color: #f6f8fa; } pre#code-block-1846.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-1846.rouge .nb { color: #953800; } pre#code-block-1846.rouge .nc { color: #953800; } pre#code-block-1846.rouge .no { color: #953800; } pre#code-block-1846.rouge .nn { color: #953800; } pre#code-block-1846.rouge .sr { color: #116329; } pre#code-block-1846.rouge .na { color: #116329; } pre#code-block-1846.rouge .nt { color: #116329; } pre#code-block-1846.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-1846.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-1846.rouge .kc { color: #0550ae; } pre#code-block-1846.rouge .l, pre#code-block-1846.rouge .ld, pre#code-block-1846.rouge .m, pre#code-block-1846.rouge .mb, pre#code-block-1846.rouge .mf, pre#code-block-1846.rouge .mh, pre#code-block-1846.rouge .mi, pre#code-block-1846.rouge .il, pre#code-block-1846.rouge .mo, pre#code-block-1846.rouge .mx { color: #0550ae; } pre#code-block-1846.rouge .sb { color: #0550ae; } pre#code-block-1846.rouge .bp { color: #0550ae; } pre#code-block-1846.rouge .ne { color: #0550ae; } pre#code-block-1846.rouge .nl { color: #0550ae; } pre#code-block-1846.rouge .py { color: #0550ae; } pre#code-block-1846.rouge .nv, pre#code-block-1846.rouge .vc, pre#code-block-1846.rouge .vg, pre#code-block-1846.rouge .vi, pre#code-block-1846.rouge .vm { color: #0550ae; } pre#code-block-1846.rouge .o, pre#code-block-1846.rouge .ow { color: #0550ae; } pre#code-block-1846.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-1846.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-1846.rouge .s, pre#code-block-1846.rouge .sa, pre#code-block-1846.rouge .sc, pre#code-block-1846.rouge .dl, pre#code-block-1846.rouge .sd, pre#code-block-1846.rouge .s2, pre#code-block-1846.rouge .se, pre#code-block-1846.rouge .sh, pre#code-block-1846.rouge .sx, pre#code-block-1846.rouge .s1, pre#code-block-1846.rouge .ss { color: #0a3069; } pre#code-block-1846.rouge .nd { color: #8250df; } pre#code-block-1846.rouge .nf, pre#code-block-1846.rouge .fm { color: #8250df; } pre#code-block-1846.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-1846.rouge .c, pre#code-block-1846.rouge .ch, pre#code-block-1846.rouge .cd, pre#code-block-1846.rouge .cm, pre#code-block-1846.rouge .cp, pre#code-block-1846.rouge .cpf, pre#code-block-1846.rouge .c1, pre#code-block-1846.rouge .cs { color: #6e7781; } pre#code-block-1846.rouge .gl { color: #6e7781; } pre#code-block-1846.rouge .gt { color: #6e7781; } pre#code-block-1846.rouge .ni { color: #24292f; } pre#code-block-1846.rouge .si { color: #24292f; } pre#code-block-1846.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-1846.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def each( xpath=nil ) </h3> </div> <br><book category='web' cover='paperback'> ... </><br><book category='web'> ... </><br><br>Output:<br><br>elements.each('//book [@category="web"]') {|element| p element }<br><br>that matches the given +xpath+:<br>With argument +xpath+, calls the block with each element<br><br><book category='web' cover='paperback'> ... </><br><book category='web'> ... </><br><book category='children'> ... </><br><book category='cooking'> ... </><br><br>Output:<br><br>elements.each {|element| p element }<br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>With no argument, calls the block with each element:<br><br>Iterates over the elements.<br><br>each(xpath = nil) {|element| ... } -> self<br>:call-seq: </div> <pre id="code-block-7972" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">each</span><span class="p">(</span> <span class="n">xpath</span><span class="o">=</span><span class="kp">nil</span> <span class="p">)</span> <span class="no">XPath</span><span class="o">::</span><span class="n">each</span><span class="p">(</span> <span class="vi">@element</span><span class="p">,</span> <span class="n">xpath</span> <span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">e</span><span class="o">|</span> <span class="k">yield</span> <span class="n">e</span> <span class="k">if</span> <span class="n">e</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span> <span class="p">}</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-7972.rouge table td { padding: 5px; } pre#code-block-7972.rouge table pre { margin: 0; } pre#code-block-7972.rouge, pre#code-block-7972.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-7972.rouge .k, pre#code-block-7972.rouge .kd, pre#code-block-7972.rouge .kn, pre#code-block-7972.rouge .kp, pre#code-block-7972.rouge .kr, pre#code-block-7972.rouge .kt, pre#code-block-7972.rouge .kv { color: #cf222e; } pre#code-block-7972.rouge .gr { color: #f6f8fa; } pre#code-block-7972.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-7972.rouge .nb { color: #953800; } pre#code-block-7972.rouge .nc { color: #953800; } pre#code-block-7972.rouge .no { color: #953800; } pre#code-block-7972.rouge .nn { color: #953800; } pre#code-block-7972.rouge .sr { color: #116329; } pre#code-block-7972.rouge .na { color: #116329; } pre#code-block-7972.rouge .nt { color: #116329; } pre#code-block-7972.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-7972.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-7972.rouge .kc { color: #0550ae; } pre#code-block-7972.rouge .l, pre#code-block-7972.rouge .ld, pre#code-block-7972.rouge .m, pre#code-block-7972.rouge .mb, pre#code-block-7972.rouge .mf, pre#code-block-7972.rouge .mh, pre#code-block-7972.rouge .mi, pre#code-block-7972.rouge .il, pre#code-block-7972.rouge .mo, pre#code-block-7972.rouge .mx { color: #0550ae; } pre#code-block-7972.rouge .sb { color: #0550ae; } pre#code-block-7972.rouge .bp { color: #0550ae; } pre#code-block-7972.rouge .ne { color: #0550ae; } pre#code-block-7972.rouge .nl { color: #0550ae; } pre#code-block-7972.rouge .py { color: #0550ae; } pre#code-block-7972.rouge .nv, pre#code-block-7972.rouge .vc, pre#code-block-7972.rouge .vg, pre#code-block-7972.rouge .vi, pre#code-block-7972.rouge .vm { color: #0550ae; } pre#code-block-7972.rouge .o, pre#code-block-7972.rouge .ow { color: #0550ae; } pre#code-block-7972.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-7972.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-7972.rouge .s, pre#code-block-7972.rouge .sa, pre#code-block-7972.rouge .sc, pre#code-block-7972.rouge .dl, pre#code-block-7972.rouge .sd, pre#code-block-7972.rouge .s2, pre#code-block-7972.rouge .se, pre#code-block-7972.rouge .sh, pre#code-block-7972.rouge .sx, pre#code-block-7972.rouge .s1, pre#code-block-7972.rouge .ss { color: #0a3069; } pre#code-block-7972.rouge .nd { color: #8250df; } pre#code-block-7972.rouge .nf, pre#code-block-7972.rouge .fm { color: #8250df; } pre#code-block-7972.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-7972.rouge .c, pre#code-block-7972.rouge .ch, pre#code-block-7972.rouge .cd, pre#code-block-7972.rouge .cm, pre#code-block-7972.rouge .cp, pre#code-block-7972.rouge .cpf, pre#code-block-7972.rouge .c1, pre#code-block-7972.rouge .cs { color: #6e7781; } pre#code-block-7972.rouge .gl { color: #6e7781; } pre#code-block-7972.rouge .gt { color: #6e7781; } pre#code-block-7972.rouge .ni { color: #24292f; } pre#code-block-7972.rouge .si { color: #24292f; } pre#code-block-7972.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-7972.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def empty? </h3> </div> <br>d.elements.empty? # => false<br>d = REXML::Document.new(xml_string)<br>d.elements.empty? # => true<br>d = REXML::Document.new('')<br><br>Returns +true+ if there are no children, +false+ otherwise.<br><br>empty? -> true or false<br>:call-seq: </div> <pre id="code-block-1175" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">empty?</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">find</span><span class="p">{</span> <span class="o">|</span><span class="n">child</span><span class="o">|</span> <span class="n">child</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span><span class="p">}.</span><span class="nf">nil?</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-1175.rouge table td { padding: 5px; } pre#code-block-1175.rouge table pre { margin: 0; } pre#code-block-1175.rouge, pre#code-block-1175.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-1175.rouge .k, pre#code-block-1175.rouge .kd, pre#code-block-1175.rouge .kn, pre#code-block-1175.rouge .kp, pre#code-block-1175.rouge .kr, pre#code-block-1175.rouge .kt, pre#code-block-1175.rouge .kv { color: #cf222e; } pre#code-block-1175.rouge .gr { color: #f6f8fa; } pre#code-block-1175.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-1175.rouge .nb { color: #953800; } pre#code-block-1175.rouge .nc { color: #953800; } pre#code-block-1175.rouge .no { color: #953800; } pre#code-block-1175.rouge .nn { color: #953800; } pre#code-block-1175.rouge .sr { color: #116329; } pre#code-block-1175.rouge .na { color: #116329; } pre#code-block-1175.rouge .nt { color: #116329; } pre#code-block-1175.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-1175.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-1175.rouge .kc { color: #0550ae; } pre#code-block-1175.rouge .l, pre#code-block-1175.rouge .ld, pre#code-block-1175.rouge .m, pre#code-block-1175.rouge .mb, pre#code-block-1175.rouge .mf, pre#code-block-1175.rouge .mh, pre#code-block-1175.rouge .mi, pre#code-block-1175.rouge .il, pre#code-block-1175.rouge .mo, pre#code-block-1175.rouge .mx { color: #0550ae; } pre#code-block-1175.rouge .sb { color: #0550ae; } pre#code-block-1175.rouge .bp { color: #0550ae; } pre#code-block-1175.rouge .ne { color: #0550ae; } pre#code-block-1175.rouge .nl { color: #0550ae; } pre#code-block-1175.rouge .py { color: #0550ae; } pre#code-block-1175.rouge .nv, pre#code-block-1175.rouge .vc, pre#code-block-1175.rouge .vg, pre#code-block-1175.rouge .vi, pre#code-block-1175.rouge .vm { color: #0550ae; } pre#code-block-1175.rouge .o, pre#code-block-1175.rouge .ow { color: #0550ae; } pre#code-block-1175.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-1175.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-1175.rouge .s, pre#code-block-1175.rouge .sa, pre#code-block-1175.rouge .sc, pre#code-block-1175.rouge .dl, pre#code-block-1175.rouge .sd, pre#code-block-1175.rouge .s2, pre#code-block-1175.rouge .se, pre#code-block-1175.rouge .sh, pre#code-block-1175.rouge .sx, pre#code-block-1175.rouge .s1, pre#code-block-1175.rouge .ss { color: #0a3069; } pre#code-block-1175.rouge .nd { color: #8250df; } pre#code-block-1175.rouge .nf, pre#code-block-1175.rouge .fm { color: #8250df; } pre#code-block-1175.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-1175.rouge .c, pre#code-block-1175.rouge .ch, pre#code-block-1175.rouge .cd, pre#code-block-1175.rouge .cm, pre#code-block-1175.rouge .cp, pre#code-block-1175.rouge .cpf, pre#code-block-1175.rouge .c1, pre#code-block-1175.rouge .cs { color: #6e7781; } pre#code-block-1175.rouge .gl { color: #6e7781; } pre#code-block-1175.rouge .gt { color: #6e7781; } pre#code-block-1175.rouge .ni { color: #24292f; } pre#code-block-1175.rouge .si { color: #24292f; } pre#code-block-1175.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-1175.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def index element </h3> </div> <br>elements.index(ele_3) # => -1<br>elements.index(ele_4) # => 3<br>elements.delete(ele_3)<br>elements.index(ele_4) # => 4<br>ele_1, ele_2, ele_3, ele_4 = *elements<br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>otherwise, returns -1:<br>Returns the 1-based index of the given +element+, if found;<br><br>index(element)<br>:call-seq: </div> <pre id="code-block-7327" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">index</span> <span class="n">element</span> <span class="n">rv</span> <span class="o">=</span> <span class="mi">0</span> <span class="n">found</span> <span class="o">=</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">find</span> <span class="k">do</span> <span class="o">|</span><span class="n">child</span><span class="o">|</span> <span class="n">child</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span> <span class="ow">and</span> <span class="p">(</span><span class="n">rv</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">and</span> <span class="n">child</span> <span class="o">==</span> <span class="n">element</span> <span class="k">end</span> <span class="k">return</span> <span class="n">rv</span> <span class="k">if</span> <span class="n">found</span> <span class="o">==</span> <span class="n">element</span> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-7327.rouge table td { padding: 5px; } pre#code-block-7327.rouge table pre { margin: 0; } pre#code-block-7327.rouge, pre#code-block-7327.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-7327.rouge .k, pre#code-block-7327.rouge .kd, pre#code-block-7327.rouge .kn, pre#code-block-7327.rouge .kp, pre#code-block-7327.rouge .kr, pre#code-block-7327.rouge .kt, pre#code-block-7327.rouge .kv { color: #cf222e; } pre#code-block-7327.rouge .gr { color: #f6f8fa; } pre#code-block-7327.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-7327.rouge .nb { color: #953800; } pre#code-block-7327.rouge .nc { color: #953800; } pre#code-block-7327.rouge .no { color: #953800; } pre#code-block-7327.rouge .nn { color: #953800; } pre#code-block-7327.rouge .sr { color: #116329; } pre#code-block-7327.rouge .na { color: #116329; } pre#code-block-7327.rouge .nt { color: #116329; } pre#code-block-7327.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-7327.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-7327.rouge .kc { color: #0550ae; } pre#code-block-7327.rouge .l, pre#code-block-7327.rouge .ld, pre#code-block-7327.rouge .m, pre#code-block-7327.rouge .mb, pre#code-block-7327.rouge .mf, pre#code-block-7327.rouge .mh, pre#code-block-7327.rouge .mi, pre#code-block-7327.rouge .il, pre#code-block-7327.rouge .mo, pre#code-block-7327.rouge .mx { color: #0550ae; } pre#code-block-7327.rouge .sb { color: #0550ae; } pre#code-block-7327.rouge .bp { color: #0550ae; } pre#code-block-7327.rouge .ne { color: #0550ae; } pre#code-block-7327.rouge .nl { color: #0550ae; } pre#code-block-7327.rouge .py { color: #0550ae; } pre#code-block-7327.rouge .nv, pre#code-block-7327.rouge .vc, pre#code-block-7327.rouge .vg, pre#code-block-7327.rouge .vi, pre#code-block-7327.rouge .vm { color: #0550ae; } pre#code-block-7327.rouge .o, pre#code-block-7327.rouge .ow { color: #0550ae; } pre#code-block-7327.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-7327.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-7327.rouge .s, pre#code-block-7327.rouge .sa, pre#code-block-7327.rouge .sc, pre#code-block-7327.rouge .dl, pre#code-block-7327.rouge .sd, pre#code-block-7327.rouge .s2, pre#code-block-7327.rouge .se, pre#code-block-7327.rouge .sh, pre#code-block-7327.rouge .sx, pre#code-block-7327.rouge .s1, pre#code-block-7327.rouge .ss { color: #0a3069; } pre#code-block-7327.rouge .nd { color: #8250df; } pre#code-block-7327.rouge .nf, pre#code-block-7327.rouge .fm { color: #8250df; } pre#code-block-7327.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-7327.rouge .c, pre#code-block-7327.rouge .ch, pre#code-block-7327.rouge .cd, pre#code-block-7327.rouge .cm, pre#code-block-7327.rouge .cp, pre#code-block-7327.rouge .cpf, pre#code-block-7327.rouge .c1, pre#code-block-7327.rouge .cs { color: #6e7781; } pre#code-block-7327.rouge .gl { color: #6e7781; } pre#code-block-7327.rouge .gt { color: #6e7781; } pre#code-block-7327.rouge .ni { color: #24292f; } pre#code-block-7327.rouge .si { color: #24292f; } pre#code-block-7327.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-7327.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def initialize parent </h3> </div> <br>eles == d.root.elements # => false<br>eles # => #<REXML::Elements @element=<bookstore> ... </>><br>eles = REXML::Elements.new(d.root)<br>d = REXML::Document.new(xml_string)<br><br>Does _not_ assign <tt>parent.elements = self</tt>:<br>Returns a new \Elements object with the given +parent+.<br><br>new(parent) -> new_elements_object<br>:call-seq: </div> <pre id="code-block-7678" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">initialize</span> <span class="n">parent</span> <span class="vi">@element</span> <span class="o">=</span> <span class="n">parent</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-7678.rouge table td { padding: 5px; } pre#code-block-7678.rouge table pre { margin: 0; } pre#code-block-7678.rouge, pre#code-block-7678.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-7678.rouge .k, pre#code-block-7678.rouge .kd, pre#code-block-7678.rouge .kn, pre#code-block-7678.rouge .kp, pre#code-block-7678.rouge .kr, pre#code-block-7678.rouge .kt, pre#code-block-7678.rouge .kv { color: #cf222e; } pre#code-block-7678.rouge .gr { color: #f6f8fa; } pre#code-block-7678.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-7678.rouge .nb { color: #953800; } pre#code-block-7678.rouge .nc { color: #953800; } pre#code-block-7678.rouge .no { color: #953800; } pre#code-block-7678.rouge .nn { color: #953800; } pre#code-block-7678.rouge .sr { color: #116329; } pre#code-block-7678.rouge .na { color: #116329; } pre#code-block-7678.rouge .nt { color: #116329; } pre#code-block-7678.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-7678.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-7678.rouge .kc { color: #0550ae; } pre#code-block-7678.rouge .l, pre#code-block-7678.rouge .ld, pre#code-block-7678.rouge .m, pre#code-block-7678.rouge .mb, pre#code-block-7678.rouge .mf, pre#code-block-7678.rouge .mh, pre#code-block-7678.rouge .mi, pre#code-block-7678.rouge .il, pre#code-block-7678.rouge .mo, pre#code-block-7678.rouge .mx { color: #0550ae; } pre#code-block-7678.rouge .sb { color: #0550ae; } pre#code-block-7678.rouge .bp { color: #0550ae; } pre#code-block-7678.rouge .ne { color: #0550ae; } pre#code-block-7678.rouge .nl { color: #0550ae; } pre#code-block-7678.rouge .py { color: #0550ae; } pre#code-block-7678.rouge .nv, pre#code-block-7678.rouge .vc, pre#code-block-7678.rouge .vg, pre#code-block-7678.rouge .vi, pre#code-block-7678.rouge .vm { color: #0550ae; } pre#code-block-7678.rouge .o, pre#code-block-7678.rouge .ow { color: #0550ae; } pre#code-block-7678.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-7678.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-7678.rouge .s, pre#code-block-7678.rouge .sa, pre#code-block-7678.rouge .sc, pre#code-block-7678.rouge .dl, pre#code-block-7678.rouge .sd, pre#code-block-7678.rouge .s2, pre#code-block-7678.rouge .se, pre#code-block-7678.rouge .sh, pre#code-block-7678.rouge .sx, pre#code-block-7678.rouge .s1, pre#code-block-7678.rouge .ss { color: #0a3069; } pre#code-block-7678.rouge .nd { color: #8250df; } pre#code-block-7678.rouge .nf, pre#code-block-7678.rouge .fm { color: #8250df; } pre#code-block-7678.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-7678.rouge .c, pre#code-block-7678.rouge .ch, pre#code-block-7678.rouge .cd, pre#code-block-7678.rouge .cm, pre#code-block-7678.rouge .cp, pre#code-block-7678.rouge .cpf, pre#code-block-7678.rouge .c1, pre#code-block-7678.rouge .cs { color: #6e7781; } pre#code-block-7678.rouge .gl { color: #6e7781; } pre#code-block-7678.rouge .gt { color: #6e7781; } pre#code-block-7678.rouge .ni { color: #24292f; } pre#code-block-7678.rouge .si { color: #24292f; } pre#code-block-7678.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-7678.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def inject( xpath=nil, initial=nil ) </h3> </div> <br>end # => 26<br>total += element.size<br>elements.inject('//book [@category="web"]', 0) do |total, element|<br><br>calls the block only with elements matching that xpath:<br>With both arguments +xpath+ and +initial+ are given,<br><br>end # => 44<br>total += element.size<br>elements.inject(nil, 0) do |total, element|<br><br>In this form the passed object can be used as an accumulator:<br><br>[3, 4]<br>[2, 3]<br>[1, 2]<br>[-1, 1]<br><br>Output:<br><br>end<br>element<br>p [elements.index(object), elements.index(element)]<br>elements.inject(nil, 'Initial') do |object, element|<br><br>In this example, the first object index is <tt>-1</tt><br><br>- And so on.<br>- The third call passes the second block return value and the third element.<br>- The second call passes the first block return value and the second element.<br>- The first call passes the +initial+ and the first element.<br><br>calls the block once for each element.<br>and argument +initial+ also given,<br>With argument +xpath+ given as +nil+<br><br>[3, 4]<br><br>Output:<br><br>end<br>element<br>p [elements.index(object), elements.index(element)]<br>elements.inject('//book [@category="web"]') do |object, element|<br><br>elements matching that xpath:<br>With the single argument +xpath+, calls the block only with<br><br>[3, 4]<br>[2, 3]<br>[1, 2]<br><br>Output:<br><br>end<br>element<br>p [elements.index(object), elements.index(element)]<br>elements.inject do |object, element|<br>elements = d.root.elements<br>d = REXML::Document.new(xml_string)<br><br>which is then the object argument to the next call:<br>In this example, the block returns the passed element,<br><br>- And so on.<br>- The third call passes the second block return value and the fourth element.<br>- The second call passes the first block return value and the third element.<br>- The first call passes the first and second elements.<br><br><tt>elements.size - 1</tt> times.<br>With no argument, iterates over the elements, calling the block<br><br>Calls the block with elements; returns the last block return value.<br><br>inject(xpath = nil, initial = nil) -> object<br>:call-seq: </div> <pre id="code-block-6927" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">inject</span><span class="p">(</span> <span class="n">xpath</span><span class="o">=</span><span class="kp">nil</span><span class="p">,</span> <span class="n">initial</span><span class="o">=</span><span class="kp">nil</span> <span class="p">)</span> <span class="n">first</span> <span class="o">=</span> <span class="kp">true</span> <span class="no">XPath</span><span class="o">::</span><span class="n">each</span><span class="p">(</span> <span class="vi">@element</span><span class="p">,</span> <span class="n">xpath</span> <span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">e</span><span class="o">|</span> <span class="k">if</span> <span class="p">(</span><span class="n">e</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span><span class="p">)</span> <span class="k">if</span> <span class="p">(</span><span class="n">first</span> <span class="ow">and</span> <span class="n">initial</span> <span class="o">==</span> <span class="kp">nil</span><span class="p">)</span> <span class="n">initial</span> <span class="o">=</span> <span class="n">e</span> <span class="n">first</span> <span class="o">=</span> <span class="kp">false</span> <span class="k">else</span> <span class="n">initial</span> <span class="o">=</span> <span class="k">yield</span><span class="p">(</span> <span class="n">initial</span><span class="p">,</span> <span class="n">e</span> <span class="p">)</span> <span class="k">if</span> <span class="n">e</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span> <span class="k">end</span> <span class="k">end</span> <span class="p">}</span> <span class="n">initial</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-6927.rouge table td { padding: 5px; } pre#code-block-6927.rouge table pre { margin: 0; } pre#code-block-6927.rouge, pre#code-block-6927.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-6927.rouge .k, pre#code-block-6927.rouge .kd, pre#code-block-6927.rouge .kn, pre#code-block-6927.rouge .kp, pre#code-block-6927.rouge .kr, pre#code-block-6927.rouge .kt, pre#code-block-6927.rouge .kv { color: #cf222e; } pre#code-block-6927.rouge .gr { color: #f6f8fa; } pre#code-block-6927.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-6927.rouge .nb { color: #953800; } pre#code-block-6927.rouge .nc { color: #953800; } pre#code-block-6927.rouge .no { color: #953800; } pre#code-block-6927.rouge .nn { color: #953800; } pre#code-block-6927.rouge .sr { color: #116329; } pre#code-block-6927.rouge .na { color: #116329; } pre#code-block-6927.rouge .nt { color: #116329; } pre#code-block-6927.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-6927.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-6927.rouge .kc { color: #0550ae; } pre#code-block-6927.rouge .l, pre#code-block-6927.rouge .ld, pre#code-block-6927.rouge .m, pre#code-block-6927.rouge .mb, pre#code-block-6927.rouge .mf, pre#code-block-6927.rouge .mh, pre#code-block-6927.rouge .mi, pre#code-block-6927.rouge .il, pre#code-block-6927.rouge .mo, pre#code-block-6927.rouge .mx { color: #0550ae; } pre#code-block-6927.rouge .sb { color: #0550ae; } pre#code-block-6927.rouge .bp { color: #0550ae; } pre#code-block-6927.rouge .ne { color: #0550ae; } pre#code-block-6927.rouge .nl { color: #0550ae; } pre#code-block-6927.rouge .py { color: #0550ae; } pre#code-block-6927.rouge .nv, pre#code-block-6927.rouge .vc, pre#code-block-6927.rouge .vg, pre#code-block-6927.rouge .vi, pre#code-block-6927.rouge .vm { color: #0550ae; } pre#code-block-6927.rouge .o, pre#code-block-6927.rouge .ow { color: #0550ae; } pre#code-block-6927.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-6927.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-6927.rouge .s, pre#code-block-6927.rouge .sa, pre#code-block-6927.rouge .sc, pre#code-block-6927.rouge .dl, pre#code-block-6927.rouge .sd, pre#code-block-6927.rouge .s2, pre#code-block-6927.rouge .se, pre#code-block-6927.rouge .sh, pre#code-block-6927.rouge .sx, pre#code-block-6927.rouge .s1, pre#code-block-6927.rouge .ss { color: #0a3069; } pre#code-block-6927.rouge .nd { color: #8250df; } pre#code-block-6927.rouge .nf, pre#code-block-6927.rouge .fm { color: #8250df; } pre#code-block-6927.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-6927.rouge .c, pre#code-block-6927.rouge .ch, pre#code-block-6927.rouge .cd, pre#code-block-6927.rouge .cm, pre#code-block-6927.rouge .cp, pre#code-block-6927.rouge .cpf, pre#code-block-6927.rouge .c1, pre#code-block-6927.rouge .cs { color: #6e7781; } pre#code-block-6927.rouge .gl { color: #6e7781; } pre#code-block-6927.rouge .gt { color: #6e7781; } pre#code-block-6927.rouge .ni { color: #24292f; } pre#code-block-6927.rouge .si { color: #24292f; } pre#code-block-6927.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-6927.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def literalize name </h3> </div> Private helper class. Removes quotes from quoted strings </div> <pre id="code-block-6604" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">literalize</span> <span class="nb">name</span> <span class="nb">name</span> <span class="o">=</span> <span class="nb">name</span><span class="p">[</span><span class="mi">1</span><span class="o">..-</span><span class="mi">2</span><span class="p">]</span> <span class="k">if</span> <span class="nb">name</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="sc">?'</span> <span class="ow">or</span> <span class="nb">name</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="sc">?"</span> <span class="c1">#'</span> <span class="nb">name</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-6604.rouge table td { padding: 5px; } pre#code-block-6604.rouge table pre { margin: 0; } pre#code-block-6604.rouge, pre#code-block-6604.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-6604.rouge .k, pre#code-block-6604.rouge .kd, pre#code-block-6604.rouge .kn, pre#code-block-6604.rouge .kp, pre#code-block-6604.rouge .kr, pre#code-block-6604.rouge .kt, pre#code-block-6604.rouge .kv { color: #cf222e; } pre#code-block-6604.rouge .gr { color: #f6f8fa; } pre#code-block-6604.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-6604.rouge .nb { color: #953800; } pre#code-block-6604.rouge .nc { color: #953800; } pre#code-block-6604.rouge .no { color: #953800; } pre#code-block-6604.rouge .nn { color: #953800; } pre#code-block-6604.rouge .sr { color: #116329; } pre#code-block-6604.rouge .na { color: #116329; } pre#code-block-6604.rouge .nt { color: #116329; } pre#code-block-6604.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-6604.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-6604.rouge .kc { color: #0550ae; } pre#code-block-6604.rouge .l, pre#code-block-6604.rouge .ld, pre#code-block-6604.rouge .m, pre#code-block-6604.rouge .mb, pre#code-block-6604.rouge .mf, pre#code-block-6604.rouge .mh, pre#code-block-6604.rouge .mi, pre#code-block-6604.rouge .il, pre#code-block-6604.rouge .mo, pre#code-block-6604.rouge .mx { color: #0550ae; } pre#code-block-6604.rouge .sb { color: #0550ae; } pre#code-block-6604.rouge .bp { color: #0550ae; } pre#code-block-6604.rouge .ne { color: #0550ae; } pre#code-block-6604.rouge .nl { color: #0550ae; } pre#code-block-6604.rouge .py { color: #0550ae; } pre#code-block-6604.rouge .nv, pre#code-block-6604.rouge .vc, pre#code-block-6604.rouge .vg, pre#code-block-6604.rouge .vi, pre#code-block-6604.rouge .vm { color: #0550ae; } pre#code-block-6604.rouge .o, pre#code-block-6604.rouge .ow { color: #0550ae; } pre#code-block-6604.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-6604.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-6604.rouge .s, pre#code-block-6604.rouge .sa, pre#code-block-6604.rouge .sc, pre#code-block-6604.rouge .dl, pre#code-block-6604.rouge .sd, pre#code-block-6604.rouge .s2, pre#code-block-6604.rouge .se, pre#code-block-6604.rouge .sh, pre#code-block-6604.rouge .sx, pre#code-block-6604.rouge .s1, pre#code-block-6604.rouge .ss { color: #0a3069; } pre#code-block-6604.rouge .nd { color: #8250df; } pre#code-block-6604.rouge .nf, pre#code-block-6604.rouge .fm { color: #8250df; } pre#code-block-6604.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-6604.rouge .c, pre#code-block-6604.rouge .ch, pre#code-block-6604.rouge .cd, pre#code-block-6604.rouge .cm, pre#code-block-6604.rouge .cp, pre#code-block-6604.rouge .cpf, pre#code-block-6604.rouge .c1, pre#code-block-6604.rouge .cs { color: #6e7781; } pre#code-block-6604.rouge .gl { color: #6e7781; } pre#code-block-6604.rouge .gt { color: #6e7781; } pre#code-block-6604.rouge .ni { color: #24292f; } pre#code-block-6604.rouge .si { color: #24292f; } pre#code-block-6604.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-6604.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def parent </h3> </div> <br>elements.parent == d.root # => true<br>elements = REXML::Elements.new(d.root)<br>d = REXML::Document.new(xml_string)<br><br>in the \Elements object.<br>This element is also the default starting point for searching<br>Returns the parent element cited in creating the \Elements object.<br><br>parent<br>:call-seq: </div> <pre id="code-block-8474" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">parent</span> <span class="vi">@element</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-8474.rouge table td { padding: 5px; } pre#code-block-8474.rouge table pre { margin: 0; } pre#code-block-8474.rouge, pre#code-block-8474.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-8474.rouge .k, pre#code-block-8474.rouge .kd, pre#code-block-8474.rouge .kn, pre#code-block-8474.rouge .kp, pre#code-block-8474.rouge .kr, pre#code-block-8474.rouge .kt, pre#code-block-8474.rouge .kv { color: #cf222e; } pre#code-block-8474.rouge .gr { color: #f6f8fa; } pre#code-block-8474.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-8474.rouge .nb { color: #953800; } pre#code-block-8474.rouge .nc { color: #953800; } pre#code-block-8474.rouge .no { color: #953800; } pre#code-block-8474.rouge .nn { color: #953800; } pre#code-block-8474.rouge .sr { color: #116329; } pre#code-block-8474.rouge .na { color: #116329; } pre#code-block-8474.rouge .nt { color: #116329; } pre#code-block-8474.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-8474.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-8474.rouge .kc { color: #0550ae; } pre#code-block-8474.rouge .l, pre#code-block-8474.rouge .ld, pre#code-block-8474.rouge .m, pre#code-block-8474.rouge .mb, pre#code-block-8474.rouge .mf, pre#code-block-8474.rouge .mh, pre#code-block-8474.rouge .mi, pre#code-block-8474.rouge .il, pre#code-block-8474.rouge .mo, pre#code-block-8474.rouge .mx { color: #0550ae; } pre#code-block-8474.rouge .sb { color: #0550ae; } pre#code-block-8474.rouge .bp { color: #0550ae; } pre#code-block-8474.rouge .ne { color: #0550ae; } pre#code-block-8474.rouge .nl { color: #0550ae; } pre#code-block-8474.rouge .py { color: #0550ae; } pre#code-block-8474.rouge .nv, pre#code-block-8474.rouge .vc, pre#code-block-8474.rouge .vg, pre#code-block-8474.rouge .vi, pre#code-block-8474.rouge .vm { color: #0550ae; } pre#code-block-8474.rouge .o, pre#code-block-8474.rouge .ow { color: #0550ae; } pre#code-block-8474.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-8474.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-8474.rouge .s, pre#code-block-8474.rouge .sa, pre#code-block-8474.rouge .sc, pre#code-block-8474.rouge .dl, pre#code-block-8474.rouge .sd, pre#code-block-8474.rouge .s2, pre#code-block-8474.rouge .se, pre#code-block-8474.rouge .sh, pre#code-block-8474.rouge .sx, pre#code-block-8474.rouge .s1, pre#code-block-8474.rouge .ss { color: #0a3069; } pre#code-block-8474.rouge .nd { color: #8250df; } pre#code-block-8474.rouge .nf, pre#code-block-8474.rouge .fm { color: #8250df; } pre#code-block-8474.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-8474.rouge .c, pre#code-block-8474.rouge .ch, pre#code-block-8474.rouge .cd, pre#code-block-8474.rouge .cm, pre#code-block-8474.rouge .cp, pre#code-block-8474.rouge .cpf, pre#code-block-8474.rouge .c1, pre#code-block-8474.rouge .cs { color: #6e7781; } pre#code-block-8474.rouge .gl { color: #6e7781; } pre#code-block-8474.rouge .gt { color: #6e7781; } pre#code-block-8474.rouge .ni { color: #24292f; } pre#code-block-8474.rouge .si { color: #24292f; } pre#code-block-8474.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-8474.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def size </h3> </div> <br>d.root.size # => 6 # Three elements plus three text nodes..<br>d.root.elements.size # => 3 # Three elements.<br>d = REXML::Document.new '<a>sean<b/>elliott<b/>russell<b/></a>'<br><br>Returns the count of \Element children:<br><br>size -> integer<br>:call-seq: </div> <pre id="code-block-7051" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">size</span> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span> <span class="vi">@element</span><span class="p">.</span><span class="nf">each</span> <span class="p">{</span><span class="o">|</span><span class="n">child</span><span class="o">|</span> <span class="n">count</span><span class="o">+=</span><span class="mi">1</span> <span class="k">if</span> <span class="n">child</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span> <span class="p">}</span> <span class="n">count</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-7051.rouge table td { padding: 5px; } pre#code-block-7051.rouge table pre { margin: 0; } pre#code-block-7051.rouge, pre#code-block-7051.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-7051.rouge .k, pre#code-block-7051.rouge .kd, pre#code-block-7051.rouge .kn, pre#code-block-7051.rouge .kp, pre#code-block-7051.rouge .kr, pre#code-block-7051.rouge .kt, pre#code-block-7051.rouge .kv { color: #cf222e; } pre#code-block-7051.rouge .gr { color: #f6f8fa; } pre#code-block-7051.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-7051.rouge .nb { color: #953800; } pre#code-block-7051.rouge .nc { color: #953800; } pre#code-block-7051.rouge .no { color: #953800; } pre#code-block-7051.rouge .nn { color: #953800; } pre#code-block-7051.rouge .sr { color: #116329; } pre#code-block-7051.rouge .na { color: #116329; } pre#code-block-7051.rouge .nt { color: #116329; } pre#code-block-7051.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-7051.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-7051.rouge .kc { color: #0550ae; } pre#code-block-7051.rouge .l, pre#code-block-7051.rouge .ld, pre#code-block-7051.rouge .m, pre#code-block-7051.rouge .mb, pre#code-block-7051.rouge .mf, pre#code-block-7051.rouge .mh, pre#code-block-7051.rouge .mi, pre#code-block-7051.rouge .il, pre#code-block-7051.rouge .mo, pre#code-block-7051.rouge .mx { color: #0550ae; } pre#code-block-7051.rouge .sb { color: #0550ae; } pre#code-block-7051.rouge .bp { color: #0550ae; } pre#code-block-7051.rouge .ne { color: #0550ae; } pre#code-block-7051.rouge .nl { color: #0550ae; } pre#code-block-7051.rouge .py { color: #0550ae; } pre#code-block-7051.rouge .nv, pre#code-block-7051.rouge .vc, pre#code-block-7051.rouge .vg, pre#code-block-7051.rouge .vi, pre#code-block-7051.rouge .vm { color: #0550ae; } pre#code-block-7051.rouge .o, pre#code-block-7051.rouge .ow { color: #0550ae; } pre#code-block-7051.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-7051.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-7051.rouge .s, pre#code-block-7051.rouge .sa, pre#code-block-7051.rouge .sc, pre#code-block-7051.rouge .dl, pre#code-block-7051.rouge .sd, pre#code-block-7051.rouge .s2, pre#code-block-7051.rouge .se, pre#code-block-7051.rouge .sh, pre#code-block-7051.rouge .sx, pre#code-block-7051.rouge .s1, pre#code-block-7051.rouge .ss { color: #0a3069; } pre#code-block-7051.rouge .nd { color: #8250df; } pre#code-block-7051.rouge .nf, pre#code-block-7051.rouge .fm { color: #8250df; } pre#code-block-7051.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-7051.rouge .c, pre#code-block-7051.rouge .ch, pre#code-block-7051.rouge .cd, pre#code-block-7051.rouge .cm, pre#code-block-7051.rouge .cp, pre#code-block-7051.rouge .cpf, pre#code-block-7051.rouge .c1, pre#code-block-7051.rouge .cs { color: #6e7781; } pre#code-block-7051.rouge .gl { color: #6e7781; } pre#code-block-7051.rouge .gt { color: #6e7781; } pre#code-block-7051.rouge .ni { color: #24292f; } pre#code-block-7051.rouge .si { color: #24292f; } pre#code-block-7051.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-7051.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> <div class="mt-6 overflow-scroll"> <div class="mt-6 mb-3"> <div class="border-b border-gray-300 pb-2 mb-4"> <h3 class="fs-step-1 font-medium tracking-tight monospace-font-family">def to_a( xpath=nil ) </h3> </div> <br>elements.to_a('//c') # => [<c/>]<br><br>that match the xpath:<br>With argument +xpath+, returns an array of element children<br><br>children # => ["sean", <b/>, "elliott", <c/>] # Includes non-element children.<br>children = d.root.children<br>elements.to_a # => [<b/>, <c/>] # Omits non-element children.<br>elements = d.root.elements<br>d = REXML::Document.new '<a>sean<b/>elliott<c/></a>'<br><br>With no argument, returns an array of all element children:<br><br>Returns an array of element children (not including non-element children).<br><br>to_a(xpath = nil) -> array_of_elements<br>:call-seq: </div> <pre id="code-block-414" class="rouge border border-gray-300 rounded overflow-scroll px-4 py-2"><span class="k">def</span> <span class="nf">to_a</span><span class="p">(</span> <span class="n">xpath</span><span class="o">=</span><span class="kp">nil</span> <span class="p">)</span> <span class="n">rv</span> <span class="o">=</span> <span class="no">XPath</span><span class="p">.</span><span class="nf">match</span><span class="p">(</span> <span class="vi">@element</span><span class="p">,</span> <span class="n">xpath</span> <span class="p">)</span> <span class="k">return</span> <span class="n">rv</span><span class="p">.</span><span class="nf">find_all</span><span class="p">{</span><span class="o">|</span><span class="n">e</span><span class="o">|</span> <span class="n">e</span><span class="p">.</span><span class="nf">kind_of?</span> <span class="no">Element</span><span class="p">}</span> <span class="k">if</span> <span class="n">xpath</span> <span class="n">rv</span> <span class="k">end</span></pre> <style type="text/css"> pre#code-block-414.rouge table td { padding: 5px; } pre#code-block-414.rouge table pre { margin: 0; } pre#code-block-414.rouge, pre#code-block-414.rouge .w { color: #24292f; background-color: #f6f8fa; } pre#code-block-414.rouge .k, pre#code-block-414.rouge .kd, pre#code-block-414.rouge .kn, pre#code-block-414.rouge .kp, pre#code-block-414.rouge .kr, pre#code-block-414.rouge .kt, pre#code-block-414.rouge .kv { color: #cf222e; } pre#code-block-414.rouge .gr { color: #f6f8fa; } pre#code-block-414.rouge .gd { color: #82071e; background-color: #ffebe9; } pre#code-block-414.rouge .nb { color: #953800; } pre#code-block-414.rouge .nc { color: #953800; } pre#code-block-414.rouge .no { color: #953800; } pre#code-block-414.rouge .nn { color: #953800; } pre#code-block-414.rouge .sr { color: #116329; } pre#code-block-414.rouge .na { color: #116329; } pre#code-block-414.rouge .nt { color: #116329; } pre#code-block-414.rouge .gi { color: #116329; background-color: #dafbe1; } pre#code-block-414.rouge .ges { font-weight: bold; font-style: italic; } pre#code-block-414.rouge .kc { color: #0550ae; } pre#code-block-414.rouge .l, pre#code-block-414.rouge .ld, pre#code-block-414.rouge .m, pre#code-block-414.rouge .mb, pre#code-block-414.rouge .mf, pre#code-block-414.rouge .mh, pre#code-block-414.rouge .mi, pre#code-block-414.rouge .il, pre#code-block-414.rouge .mo, pre#code-block-414.rouge .mx { color: #0550ae; } pre#code-block-414.rouge .sb { color: #0550ae; } pre#code-block-414.rouge .bp { color: #0550ae; } pre#code-block-414.rouge .ne { color: #0550ae; } pre#code-block-414.rouge .nl { color: #0550ae; } pre#code-block-414.rouge .py { color: #0550ae; } pre#code-block-414.rouge .nv, pre#code-block-414.rouge .vc, pre#code-block-414.rouge .vg, pre#code-block-414.rouge .vi, pre#code-block-414.rouge .vm { color: #0550ae; } pre#code-block-414.rouge .o, pre#code-block-414.rouge .ow { color: #0550ae; } pre#code-block-414.rouge .gh { color: #0550ae; font-weight: bold; } pre#code-block-414.rouge .gu { color: #0550ae; font-weight: bold; } pre#code-block-414.rouge .s, pre#code-block-414.rouge .sa, pre#code-block-414.rouge .sc, pre#code-block-414.rouge .dl, pre#code-block-414.rouge .sd, pre#code-block-414.rouge .s2, pre#code-block-414.rouge .se, pre#code-block-414.rouge .sh, pre#code-block-414.rouge .sx, pre#code-block-414.rouge .s1, pre#code-block-414.rouge .ss { color: #0a3069; } pre#code-block-414.rouge .nd { color: #8250df; } pre#code-block-414.rouge .nf, pre#code-block-414.rouge .fm { color: #8250df; } pre#code-block-414.rouge .err { color: #f6f8fa; background-color: #82071e; } pre#code-block-414.rouge .c, pre#code-block-414.rouge .ch, pre#code-block-414.rouge .cd, pre#code-block-414.rouge .cm, pre#code-block-414.rouge .cp, pre#code-block-414.rouge .cpf, pre#code-block-414.rouge .c1, pre#code-block-414.rouge .cs { color: #6e7781; } pre#code-block-414.rouge .gl { color: #6e7781; } pre#code-block-414.rouge .gt { color: #6e7781; } pre#code-block-414.rouge .ni { color: #24292f; } pre#code-block-414.rouge .si { color: #24292f; } pre#code-block-414.rouge .ge { color: #24292f; font-style: italic; } pre#code-block-414.rouge .gs { color: #24292f; font-weight: bold; } </style> </div> </div> </div> </div> </main> </div> <div class="overflow-hidden mt-6 hidden xl:block"> <div class="block truncate col-span-1 mb-6"> <h3 class="list-header">Namespace</h3> <ul class="list code"> <li><a href="/gems/rexml/v3.4.1/modules/REXML">REXML</a></li> </ul> </div> <div class="block truncate col-span-1 mb-6"> <h3 class="list-header">Included Modules</h3> <ul class="list code"> <li><a href="/gems/rexml/v3.4.1/modules/REXML::Elements::Enumerable">REXML::Elements::Enumerable</a></li> </ul> </div> <div class="block truncate col-span-1 mb-6"> <h3 class="list-header">Instance Methods</h3> <ul class="list code"> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/%5B%5D"># []</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/%5B%5D="># []=</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/add"># add</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/collect"># collect</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/delete"># delete</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/delete_all"># delete_all</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/each"># each</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/empty%3F"># empty?</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/index"># index</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/initialize"># initialize</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/inject"># inject</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/literalize"># literalize</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/parent"># parent</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/size"># size</a></li> <li><a href="/gems/rexml/v3.4.1/classes/REXML::Elements/instance_methods/to_a"># to_a</a></li> </ul> </div> <div class="block truncate col-span-1 mb-6"> <h3 class="list-header">Defined in</h3> <ul class="list code"> <li><a href="/gems/rexml/v3.4.1/files/lib%2Frexml%2Felement.rb">lib/rexml/element.rb</a></li> </ul> </div> </div> </div> </div> </main> </div> <footer class="bg-white"> <div class="mx-auto max-w-7xl overflow-hidden px-6 py-20 sm:py-24 lg:px-8"> <nav class="-mb-6 flex flex-wrap text-center justify-center gap-x-12" aria-label="Footer"> <div class="pb-6"> <a class="text-sm leading-6 text-gray-600 hover:text-gray-900" href="/">Home</a> </div> <div class="pb-6"> <a class="text-sm leading-6 text-gray-600 hover:text-gray-900" href="/gems">Gems</a> </div> <div class="pb-6"> <a class="text-sm leading-6 text-gray-600 hover:text-gray-900" href="/docs">Docs</a> </div> <div class="pb-6"> <a target="_blank" class="text-sm leading-6 text-gray-600 hover:text-gray-900" href="https://github.com/marcoroth/gem.sh">Contribute</a> </div> <div class="pb-6"> <a target="_blank" class="text-sm leading-6 text-gray-600 hover:text-gray-900" href="https://www.rorvswild.com/applications/136042/requests?utm_medium=referral&utm_source=gem.sh">Monitoring</a> </div> </nav> <div class="mt-8 flex justify-center space-x-6"> <a target="_blank" href="https://twitter.com/marcoroth_" class="text-gray-400 hover:text-gray-500"> <span class="sr-only">Twitter</span> <svg class="h-6 w-6" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path> </svg> </a> <a target="_blank" href="https://github.com/marcoroth/gem.sh" class="text-gray-400 hover:text-gray-500"> <span class="sr-only">GitHub</span> <svg class="h-6 w-6" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"> <path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path> </svg> </a> <a target="_blank" href="https://ruby.social/@marcoroth" target="_blank" class="text-gray-400 hover:text-gray-500"> <span class="sr-only">Mastodon</span> <svg class="h-6 w-6" fill="currentColor" viewBox="0 0 16 16"> <path d="M11.19 12.195c2.016-.24 3.77-1.475 3.99-2.603.348-1.778.32-4.339.32-4.339 0-3.47-2.286-4.488-2.286-4.488C12.062.238 10.083.017 8.027 0h-.05C5.92.017 3.942.238 2.79.765c0 0-2.285 1.017-2.285 4.488l-.002.662c-.004.64-.007 1.35.011 2.091.083 3.394.626 6.74 3.78 7.57 1.454.383 2.703.463 3.709.408 1.823-.1 2.847-.647 2.847-.647l-.06-1.317s-1.303.41-2.767.36c-1.45-.05-2.98-.156-3.215-1.928a3.614 3.614 0 0 1-.033-.496s1.424.346 3.228.428c1.103.05 2.137-.064 3.188-.189zm1.613-2.47H11.13v-4.08c0-.859-.364-1.295-1.091-1.295-.804 0-1.207.517-1.207 1.541v2.233H7.168V5.89c0-1.024-.403-1.541-1.207-1.541-.727 0-1.091.436-1.091 1.296v4.079H3.197V5.522c0-.859.22-1.541.66-2.046.456-.505 1.052-.764 1.793-.764.856 0 1.504.328 1.933.983L8 4.39l.417-.695c.429-.655 1.077-.983 1.934-.983.74 0 1.336.259 1.791.764.442.505.661 1.187.661 2.046v4.203z"></path> </svg> </a> </div> <p class="mt-10 text-center text-xs leading-5 text-gray-500"> © 2025 gem.sh - Beautiful documentation for any Ruby gem </p> </div> </footer> </body> </html>