rexle 0.9.9 → 0.9.10
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 +16 -4
- metadata +3 -14
data/lib/rexle.rb
CHANGED
@@ -10,6 +10,8 @@ include REXML
|
|
10
10
|
|
11
11
|
|
12
12
|
# modifications:
|
13
|
+
# 03-Sep-2011: Implemented deep_clone as well as modifying clone to function
|
14
|
+
# similar to REXML.
|
13
15
|
# 28-Au-2011: New line characters between elements are now preserved
|
14
16
|
# 24-Jul-2011: Smybols are used for attribute keys instead of strings now
|
15
17
|
# 18-Jun-2011: A Rexle document can now be added to another Rexle document
|
@@ -143,6 +145,8 @@ class Rexle
|
|
143
145
|
|
144
146
|
attr_accessor :name, :value, :parent
|
145
147
|
attr_reader :child_lookup
|
148
|
+
|
149
|
+
alias original_clone clone
|
146
150
|
|
147
151
|
def initialize(name=nil, value='', attributes={}, rexle=nil)
|
148
152
|
@rexle = rexle
|
@@ -211,7 +215,8 @@ class Rexle
|
|
211
215
|
attr_search = format_condition(condition) if condition and condition.length > 0
|
212
216
|
|
213
217
|
if raw_path[0,2] == '//'
|
214
|
-
|
218
|
+
rs = scan_match(self, xpath_value).flatten.compact
|
219
|
+
return rs
|
215
220
|
else
|
216
221
|
|
217
222
|
return_elements = @child_lookup.map.with_index.select do |x|
|
@@ -278,7 +283,11 @@ class Rexle
|
|
278
283
|
end
|
279
284
|
|
280
285
|
def inspect()
|
286
|
+
if self.xml.length > 30 then
|
281
287
|
"%s ... </>" % self.xml[/<[^>]+>/]
|
288
|
+
else
|
289
|
+
self.xml
|
290
|
+
end
|
282
291
|
end
|
283
292
|
|
284
293
|
alias add add_element
|
@@ -301,8 +310,10 @@ class Rexle
|
|
301
310
|
def attribute(key) @attributes[key] end
|
302
311
|
def attributes() @attributes end
|
303
312
|
def children() @child_elements end
|
304
|
-
def children=(a) @child_elements = a end
|
305
|
-
|
313
|
+
def children=(a) @child_elements = a end
|
314
|
+
def deep_clone() self.original_clone end
|
315
|
+
def clone() Element.new(@name, @value, @attributes) end
|
316
|
+
|
306
317
|
def delete(obj=nil)
|
307
318
|
if obj then
|
308
319
|
i = @child_elements.index(obj)
|
@@ -367,6 +378,7 @@ class Rexle
|
|
367
378
|
method(msg).call(self.children)
|
368
379
|
end
|
369
380
|
|
381
|
+
alias to_s xml
|
370
382
|
|
371
383
|
private
|
372
384
|
|
@@ -433,7 +445,7 @@ class Rexle
|
|
433
445
|
def scan_match(node, xpath)
|
434
446
|
|
435
447
|
r = node.xpath(xpath[2..-1])
|
436
|
-
r << node.children.map {|n| scan_match(n, xpath)}
|
448
|
+
r << node.children.map {|n| scan_match(n, xpath) if n.is_a? Rexle::Element}
|
437
449
|
#puts 'r: ' + r.inspect
|
438
450
|
r
|
439
451
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rexle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.9.
|
5
|
+
version: 0.9.10
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- James Robertson
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-09-03 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
type: :runtime
|
48
48
|
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
50
|
+
name: rexle-builder
|
51
51
|
prerelease: false
|
52
52
|
requirement: &id004 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
@@ -57,17 +57,6 @@ dependencies:
|
|
57
57
|
version: "0"
|
58
58
|
type: :runtime
|
59
59
|
version_requirements: *id004
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: rexle-builder
|
62
|
-
prerelease: false
|
63
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
64
|
-
none: false
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: "0"
|
69
|
-
type: :runtime
|
70
|
-
version_requirements: *id005
|
71
60
|
description:
|
72
61
|
email:
|
73
62
|
executables: []
|