rexle 1.3.11 → 1.3.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/rexle.rb +14 -110
  4. data.tar.gz.sig +0 -0
  5. metadata +2 -2
  6. metadata.gz.sig +2 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d7d980bf644a58db05857db033db5e88ec71f6b2
4
- data.tar.gz: de73c19a02ee7037c7ed4bb50a4fd4387ea6fa4f
3
+ metadata.gz: eaa592529a22ca868034bf22230fa75104957f20
4
+ data.tar.gz: 4ba3ca79125eccedb15da3412c83be0e2e33c0a2
5
5
  SHA512:
6
- metadata.gz: dec1b143e0de15b1dc3b2279180346a8f6caa07df8d388001d4f20efb011b2f045fa3421a51171128af997076ba52ecec4651a69e9fddf60cb11438186c74457
7
- data.tar.gz: b922750f927f1e2da6181b0e0c558659a6d7ea69c6d08f9035c18cd9f1c475a52ff81565324ca9f865a897bb3e72088e11fa1d11a114e4581273703dda7da08c
6
+ metadata.gz: b63eaf4b94472ad4dbe94902a7487fe5b459a92cd8018226533d742c5dae1f9539854b2eab8673236f3699fc111937f2535d319a4ff0ade93ae67fc39f47fb50
7
+ data.tar.gz: 955037cf173c6da4d96a0716d44ac7f9146d45c10411c323f9427f8f4e043327d6327a3783f840781a238804df6b0f48022baf813caf5535986c61c5b3ef07f7
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/rexle.rb CHANGED
@@ -12,6 +12,8 @@ require 'backtrack-xpath'
12
12
 
13
13
  # modifications:
14
14
 
15
+ # 12-Mar-2016: A predicate can now handle position() with the
16
+ # equality operator e.g. b[position() = 2]
15
17
  # 09-Mar-2016: bug fix: '.' now returns the current element
16
18
  # 02-Mar-2016: improvement: When handling the HTML element iframe, it
17
19
  # is no longer printed as a self-closing tag
@@ -56,111 +58,7 @@ require 'backtrack-xpath'
56
58
  # Now stores any comment elements as well as printing them.
57
59
  # 07-Feb-2015: Implemented XPath function last() e.g.
58
60
  # doc.root.xpath('records/item[last()]')
59
- # 05-Feb=2015: bug fix:
60
- # Rexle::Element#texts now transforms all items to a String
61
- # 04-Feb-2015: An xpath containing text() now calls texts() to
62
- # return all strings within that element
63
- # 03-Feb-2015: feature: Rexle::Element#text now includes the unescape method
64
- # 30-Jan-2015: Rexle::Element#texts now returns the values of
65
- # CData elements as well as strings
66
- # 29-Jan-2015: Removed code references to REXML, as it was no longer needed.
67
- # feature: Implemented Rexle::Element#cdatas. A CData element is
68
- # now created from the parsing stage.
69
- # 26-Jan-2015: bug fix: An element containing a nil value is now treated as an
70
- # empty string when quering with an XPath
71
- # 25-Dec-2014: bug fix: script tag is now formatted with expected attributes
72
- # 21-Dec-2014: HTML related: A script tag will no longer be a self-closing tag.
73
- # 20-Dec-2014: bug fix: Fixes an uncommon XPath selection.
74
- # see http://www.jamesrobertson.eu/bugtracker/2014/dec/18/xpath-returns-an-empty-list.html
75
- # 07-Dec-2014: feature: The Rexle::Element#Css() parameter can now contain
76
- # multiple css paths within the string e.g. '.abc, div'
77
- # 30-Nov-2014: feature: XPath now supports parent (..) traversal e.g. b/../b2
78
- # 21-Nov-2014: feature: Added at_css() to select a single element
79
- # 27-Oct-2014: bug fix: Now Checks for an array instead of a string when
80
- # outputting xml attribute values to get
81
- # around nil values
82
- # 26-Oct-2014: bug fix: XML output containing a class attribute,
83
- # now appears as a string. Empty nodes are
84
- # now displayed as self-closing tags.
85
- # An XPath containing a @class attribute is now
86
- # first validated against the element attribute existence
87
- # Rexle::Element#attribute now checks the attributes type
88
- # 21-Oct-2014: partial feature: An Xpath containing //preceding-sibling and
89
- # //following-sibling now works
90
- # 19-Oct-2014: feature: An XPath containing the attribute @class is
91
- # now treated as a type of CSS selector storage area
92
- # feature: Implemented Rexle::Element#previous_element and
93
- # Rexle::Element#next_element
94
-
95
- # 13-Oct-2014: feature: Implemented Rexle#clone
96
- # 12-Oct-2014: feature: Implemented CSS style element selection
97
- # 27-Sep-2014: bug fix: ELement values are now explicitly transformed to string
98
- # 16-Sep-2014: Feature: Impelemented Rexle::Element#each_recursive
99
- # 07-Aug-2014: feature: Rexle::CData can now be used to create CDATA
100
- # 12-Jul-2014: XPath with a single element condition now works e.g. b[c]
101
- # 07-Jun-2014: bug fix: An XPath nested within an XPath (using a selector)
102
- # should now wok properly e.g. record/abc[item/xyz="red"]
103
- # 04-Jun-2014: bug fix: If XPath contains /text(), only valid
104
- # text elements are returned
105
- # 03-Jun-2014: bug fix: Text elements are now nil by default
106
- # 01-Jun-2014: bug fix: XPath elements separated by a pipe '|' are now
107
- # stripped of white space
108
- # 20-May-2014: feature: XPath Descendants after the element (or without
109
- # the element) are now supported
110
- # 02-Apr-2014: bug fix: Rexle::Element#each now returns the children,
111
- # including the 1st text element
112
- # 24-Mar-2014: minor bug fix: A blank line is no longer inserted at the
113
- # top of the XML document
114
- # 14-Mar-2014: bug fix: An XML processing instruction will now only be
115
- # display if declaration = true
116
- # 12-Mar-2014: bug fix: Duplicate processing instruction bug fixed
117
- # 17-Jan-2014: bug fix: Rexle::Element to_a now returns all child elements
118
- # 31-Dec-2013: feature: now supports processing instructions
119
- # 18-Dec-2013: feature fix: the result of text() is no longer unescaped
120
- # 13-Dec-2013: bug fix: elements with dashes can now be queried
121
- # 14-Nov-2013: feature: Implemented method content() to output XML as
122
- # unescaped plain text
123
- # 08-Nov-2013: An element will now only be deleted if it has a parent
124
- # 05-Nov-2013: If a node is added to the document which already exists in the
125
- # node, it will be moved accordingly.
126
- # 05-Nov02013: XPath bug fix: recursive selector with conditional parent now
127
- # returns the correct child e.g. //b[2]/c
128
- # 10-Oct-2013: bug fix: child elements which have the same name as their parent
129
- # are now select correctly through XPath
130
- # 22-sep-2013: feature: remove() is now an alias of delete()
131
- # 30-jul-2013: feature: Rexle::Element#xml now accepts an xpath
132
- # 25-jun-2013: bug fix: doc.root.delete(xpath) fixed
133
- # 10-Nov-2012: Elements can now be added starting from an empty document
134
- # 06-Nov-2012: additional xpath predicate now implemented e.g.
135
- # fun/. > 200 => [false, false, true, true]
136
- # 21-Oct-2012: xpath predicate now implemented e.g. fun/@id='4' => true
137
- # 20-Oct-2012: feature: added Rexle::Element#texts which is the equivalent
138
- # of REXML::Element#texts
139
- # feature: Rexle::Element#add_text is now the equivalent of
140
- # REXML::Element#add_text
141
- # 10-Sep-2012: bug fix: Removed code from method pretty_print in order to
142
- # get the XML displayed properly
143
- # 23-Aug-2012: feature: implemented xpath function contains()
144
- # 17-Aug-2012: bug fix: pretty print now ignores text containing empty space
145
- # 16-Aug-2012: the current element's text (if its not empty) is now returned
146
- # from its children method
147
- # 15-Aug-2012: feature: xpath containing child:: now supported
148
- # 13-Aug-2012: bug fix: xpath can now handle the name() function
149
- # 11-Aug-2012: bug fix: separated the max() method from 1 line into 3
150
- # and that fixed it
151
- # 08-Aug-2012: feature: added Element#insert_before and Element#insert_after
152
- # 19-Jul-2012: Changed children to elements where appropriate
153
- # 15-Jul-2012: bug fix: self.root.value is no longer appended
154
- # to the body if there are no child elements
155
- # 19-Jun-2012: a bug fix for .//*[@class]
156
- # 17-Jun-2012: a couple of new xpath things are supported '.' and '|'
157
- # 15-Apr-2012: bug fix: New element names are typecast as string
158
- # 16-Mar-2012: bug fix: Element names which contain a colon can now be selected
159
- # in the xpath.
160
- # 22-Feb-2012: bug resolution: Deactivated the PolyrexParser; using RexleParser instead
161
- # 14-Jan-2012: Implemented Rexle::Elements#each
162
- # 21-Dec-2011: Bug fix: xpath modified to allow querying from the actual
163
- # root rather than the 1st child element from the root
61
+
164
62
 
165
63
 
166
64
 
@@ -1093,7 +991,7 @@ class Rexle
1093
991
  if raw_items[0][/^\d+$/] then
1094
992
  return raw_items[0].to_i
1095
993
  elsif raw_items[0] == 'position()' then
1096
- rrr = "i %s %s" % [raw_items[1].gsub('&lt;','<').gsub('&gt;','>'), raw_items[-1]]
994
+ rrr = "i %s %s" % [raw_items[1].gsub('&lt;','<').gsub('&gt;','>').gsub('=','=='), raw_items[-1]]
1097
995
  return rrr
1098
996
  elsif raw_items[0][/^contains\(/]
1099
997
  return raw_items[0]
@@ -1136,7 +1034,7 @@ class Rexle
1136
1034
 
1137
1035
  if x.length >= 3 then
1138
1036
 
1139
- x[1] = '==' if x[1] == '='
1037
+ #jr110316 x[1] = '==' if x[1] == '='
1140
1038
  if x[0] != '.' then
1141
1039
  if x[0][/\//] then
1142
1040
 
@@ -1223,10 +1121,14 @@ class Rexle
1223
1121
 
1224
1122
  def attribute_search(attr_search, e, h, i=nil, &blk)
1225
1123
 
1226
- if attr_search.is_a? Fixnum then
1124
+ r = if attr_search.is_a? Fixnum then
1227
1125
  block_given? ? blk.call(e) : e if i == attr_search
1228
- elsif attr_search[/i\s[<>\=]\s\d+/] and eval(attr_search) then
1229
- block_given? ? blk.call(e) : e
1126
+ elsif attr_search[/i\s(?:<|>|==)\s\d+/] then
1127
+
1128
+ if eval(attr_search) then
1129
+ block_given? ? blk.call(e) : e
1130
+ end
1131
+
1230
1132
  elsif h and !h.empty? and attr_search[/^h\[/] and eval(attr_search) then
1231
1133
  block_given? ? blk.call(e) : e
1232
1134
  elsif attr_search[/^\(name ==/] and e.child_elements.select {|x|
@@ -1253,6 +1155,8 @@ class Rexle
1253
1155
  elsif e.element attr_search then
1254
1156
  block_given? ? blk.call(e) : e
1255
1157
  end
1158
+
1159
+ r
1256
1160
  end
1257
1161
 
1258
1162
  def recursive_scan(nodes, &blk)
data.tar.gz.sig CHANGED
Binary file
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.3.11
4
+ version: 1.3.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  Tkua07gB3/nVO3aPg7C3vEbDZCxT3WAMli2uZisYT6ozmdAlDsixLjipgFN4If3z
32
32
  Ej0QR3kvGcAvFQ==
33
33
  -----END CERTIFICATE-----
34
- date: 2016-03-09 00:00:00.000000000 Z
34
+ date: 2016-03-12 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rexleparser
metadata.gz.sig CHANGED
@@ -1,4 +1,2 @@
1
- B�{\�L#���J��,3{Yˋ9�QG����.��x�M��H�� Yg��zD�vؓ�������ḓ��\E?���\�߂���A��%qPZ��6i8kMQ�킾.����G��?�A�{�Jr�W�ߨ����e"�7�][h(N�������X4�!D�'Gh�
2
- ��!��:;㡲D���E(
3
- J|Z;�#z���ʍi�y�!�9C*i�� H�Z"��Nj���-8�'Q� �d�E
4
- �����
1
+ �+��cֹTP���ryQ�~�]�N����מ�aJD �9�A0�� � �aa�*�s�˦�|��5b����O��c(3?��M�����׭��x��<P{��0��G����-��ބ�.C���翢ɖ��O��C:�(��%MNl�!!#�?���Vg��̃�<��ff
2
+ �p&�Ɋ��*sHM<�e�G d0�M��`l�B]¾�?�ΘY�c��GQ=���6i���T���N �0¢��