rexle 1.0.28 → 1.0.29
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/rexle.rb +32 -3
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 093ee31cda01f5cb6bed485d2bc513cf866373cf
|
4
|
+
data.tar.gz: e54e0d493cfde0d7411b28f517164fafc1790981
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bede7d10f4ebe56bf7b05e34a9c8e020a81a4a789a1838f539d9c9508fd501ed8a1ac65bb0737622ccc66543532924e1e0416a23c13edb114ccedaafb32b7b0
|
7
|
+
data.tar.gz: 329aab680819126a9f58589aeb18252388edd4320fb8da7fef6c656f6609088abdf234f96e7d252b54af8c12b80962ece05e06d0c896d9c39c3b7feb9fd79aa0
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/rexle.rb
CHANGED
@@ -12,6 +12,8 @@ include REXML
|
|
12
12
|
|
13
13
|
# modifications:
|
14
14
|
|
15
|
+
# 21-Oct-2014: partial feature: An Xpath containing //preceding-sibling and
|
16
|
+
# //following-sibling now works
|
15
17
|
# 19-Oct-2014: feature: An XPath containing the attribute @class is
|
16
18
|
# now treated as a type of CSS selector storage area
|
17
19
|
# feature: Implemented Rexle::Element#previous_element and
|
@@ -345,6 +347,7 @@ class Rexle
|
|
345
347
|
|
346
348
|
def xpath(path, rlist=[], &blk)
|
347
349
|
|
350
|
+
#return if path[/^(?:preceding|following)-sibling/]
|
348
351
|
r = filter_xpath(path, rlist=[], &blk)
|
349
352
|
r.is_a?(Array) ? r.compact : r
|
350
353
|
end
|
@@ -489,9 +492,35 @@ class Rexle
|
|
489
492
|
#jr101013 return [self]
|
490
493
|
else
|
491
494
|
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
+
if element_name.is_a? String then
|
496
|
+
ename, raw_selector = (element_name.split('::',2)).reverse
|
497
|
+
|
498
|
+
selector = case raw_selector
|
499
|
+
when 'following-sibling' then 1
|
500
|
+
when 'preceding-sibling' then -1
|
501
|
+
end
|
502
|
+
|
503
|
+
else
|
504
|
+
ename = element_name
|
505
|
+
end
|
506
|
+
|
507
|
+
return_elements = @child_lookup.map.with_index.select do |x|
|
508
|
+
|
509
|
+
(x[0][0] == ename || ename == '.') or \
|
510
|
+
(ename == '*' && x[0].is_a?(Array))
|
511
|
+
end
|
512
|
+
|
513
|
+
if selector then
|
514
|
+
ne = return_elements.inject([]) do |r,x|
|
515
|
+
i = x.last + selector
|
516
|
+
if i >= 0 then
|
517
|
+
r << i
|
518
|
+
else
|
519
|
+
r
|
520
|
+
end
|
521
|
+
end
|
522
|
+
|
523
|
+
return_elements = ne.map {|x| [@child_lookup[x], x] if x}
|
495
524
|
end
|
496
525
|
|
497
526
|
end
|
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: 1.0.
|
4
|
+
version: 1.0.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
UOGKUMV5RApHDnC0ywMYNe0HK7qMSTP5YLKs8JUjNxpc5jl8+o3D3sHkNN4DzbQm
|
32
32
|
jVfzDZ+niKvAUA==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2014-10-
|
34
|
+
date: 2014-10-21 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rexleparser
|
metadata.gz.sig
CHANGED
Binary file
|