rexle 1.0.34 → 1.0.35

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66fbc225c0d02896b6d418d0ec6a982513108c36
4
- data.tar.gz: 0bd1814fdfe1109a3cdfe2d9fbf91cbccd8f33ff
3
+ metadata.gz: dda89926370f5a1b5312d4bf4572a73b51756087
4
+ data.tar.gz: b1353620bab763e726578a2c6e7138bf47d8a370
5
5
  SHA512:
6
- metadata.gz: a2ce98866752e6bcb22a50d1407d31ccf2294f18ba90eb8f3e4a814af8e8cc8b04ed3d5c4fabc86bc51fe3b209d1746fcf30fb682ed6c9c2db39f1693e437a6d
7
- data.tar.gz: 93aa15cc820fb639ad1dc41393543110532b541c046edb3e041f858cd062e62f2dfa8e2a5fad90821c59ab1accb224a53d0245bc792905c50ae24b9100b25387
6
+ metadata.gz: 7e0af2828ca5917c322f699c66093f214eaa09d55db35a107467829b6729735a75b0c07376ce45457413402897b234f6ed9a474db02227d5f021180a16356001
7
+ data.tar.gz: bfadb7996db8c7accf95ca59e65ec05c00d04cd35554baf26ef2c67cb8bd351df3fbff181406ed033842fab5bfeb1e6ef963c6473772b568a913243dcaa33ae9
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
@@ -1 +1,2 @@
1
- �%�{b��I��ny��p[��k%��ͷ�]xJf�-�N7D�R��� ��[q�Mu���x��lm��r�p�vgq%C��|�̣���Jz�����=�X!�;��l^���5�}��0b�C+|j�[i[�6c)�j4� �&�Т�{d�B�0��<�BȞFD�?�ϘK���b.��e�s��(�}=���V�,br�^/��.�U& \W�e��"v�G=��+��|���h�.�0������o�
1
+ lj ۢϷ�8H�g_��|~d��^�F�� jN�ձ>��
2
+ �9��,$h�am_���S>� �1ik+�7��.�0/к��YQ�Ċ>bc�y�2�xpz.��D��Ǎ�g-��0n*�B8�=]Ww�e���� U�f��2�l�i�I9�v�P��R�ꂠO�b*��
data/lib/rexle.rb CHANGED
@@ -12,6 +12,7 @@ include REXML
12
12
 
13
13
  # modifications:
14
14
 
15
+ # 30-Nov-2014: feature: XPath now supports parent (..) traversal e.g. b/../b2
15
16
  # 21-Nov-2014: feature: Added at_css() to select a single element
16
17
  # 27-Oct-2014: bug fix: Now Checks for an array instead of a string when
17
18
  # outputting xml attribute values to get
@@ -541,26 +542,34 @@ class Rexle
541
542
  else
542
543
  ename = element_name
543
544
  end
544
-
545
- return_elements = @child_lookup.map.with_index.select do |x|
546
-
547
- (x[0][0] == ename || ename == '.') or \
548
- (ename == '*' && x[0].is_a?(Array))
549
- end
550
-
551
- if selector then
552
- ne = return_elements.inject([]) do |r,x|
553
- i = x.last + selector
554
- if i >= 0 then
555
- r << i
556
- else
557
- r
558
- end
545
+
546
+ if ename != '..' then
547
+
548
+ return_elements = @child_lookup.map.with_index.select do |x|
549
+
550
+ (x[0][0] == ename || ename == '.') or \
551
+ (ename == '*' && x[0].is_a?(Array))
559
552
  end
553
+
554
+ if selector then
555
+ ne = return_elements.inject([]) do |r,x|
556
+ i = x.last + selector
557
+ if i >= 0 then
558
+ r << i
559
+ else
560
+ r
561
+ end
562
+ end
560
563
 
561
- return_elements = ne.map {|x| [@child_lookup[x], x] if x}
564
+ return_elements = ne.map {|x| [@child_lookup[x], x] if x}
565
+ end
566
+ else
567
+
568
+ remaining_xpath = raw_path[/\.\.\/(.*)/,1]
569
+ # select the parent element
570
+ return self.parent.xpath(remaining_xpath)
571
+
562
572
  end
563
-
564
573
  end
565
574
 
566
575
 
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.34
4
+ version: 1.0.35
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-11-21 00:00:00.000000000 Z
34
+ date: 2014-11-30 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rexleparser
metadata.gz.sig CHANGED
Binary file