rexle 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/rexle.rb +24 -3
- metadata +2 -2
data/lib/rexle.rb
CHANGED
@@ -109,7 +109,7 @@ class Rexle
|
|
109
109
|
rlist << return_elements.map.with_index do |x,i|
|
110
110
|
rtn_element = filter(x, i+1, attr_search){|e| r = e.xpath(a_path.join('/'), &blk); (r || e) }
|
111
111
|
next if rtn_element.nil? or (rtn_element.is_a? Array and rtn_element.empty?)
|
112
|
-
|
112
|
+
def add_attribute(h={}) @attributes.merge! h end
|
113
113
|
if rtn_element.is_a? Array then
|
114
114
|
rtn_element
|
115
115
|
elsif (rtn_element.is_a? String) || (rtn_element.is_a?(Array) and not(rtn_element[0].is_a? String))
|
@@ -166,6 +166,15 @@ class Rexle
|
|
166
166
|
end
|
167
167
|
|
168
168
|
def element(s) self.xpath(s).first end
|
169
|
+
|
170
|
+
def elements(s=nil)
|
171
|
+
procs = {
|
172
|
+
NilClass: proc {Elements.new(@child_elements)},
|
173
|
+
String: proc {|x| @child_elements[x]}
|
174
|
+
}
|
175
|
+
procs[s.class.to_s.to_sym].call(s)
|
176
|
+
end
|
177
|
+
|
169
178
|
def root() self end
|
170
179
|
def text(s='')
|
171
180
|
s.empty? ? @value : self.xpath(s).first.value
|
@@ -288,6 +297,17 @@ class Rexle
|
|
288
297
|
|
289
298
|
end # -- end of element --
|
290
299
|
|
300
|
+
class Elements
|
301
|
+
def initialize(elements=[])
|
302
|
+
@elements = elements
|
303
|
+
end
|
304
|
+
|
305
|
+
def [](i)
|
306
|
+
@elements[i-1]
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
|
291
311
|
def parse(x=nil)
|
292
312
|
|
293
313
|
a = []
|
@@ -312,9 +332,10 @@ class Rexle
|
|
312
332
|
alias add add_element
|
313
333
|
|
314
334
|
def delete(xpath) @doc.element(xpath).delete end
|
315
|
-
def element(xpath) @doc.element(xpath) end
|
316
|
-
def
|
335
|
+
def element(xpath) @doc.element(xpath) end
|
336
|
+
def elements(s=nil) @doc.elements(s) end
|
317
337
|
def to_s() self.xml end
|
338
|
+
def text(xpath) @doc.text(xpath) end
|
318
339
|
def root() @doc end
|
319
340
|
def write() "<?xml version='1.0' encoding='UTF-8'?>\n" + xml end
|
320
341
|
def xml()
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rexle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors: []
|
7
7
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-12-
|
12
|
+
date: 2010-12-02 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|