rexle 1.3.30 → 1.3.31
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 +3 -1
- data.tar.gz.sig +0 -0
- data/lib/rexle.rb +36 -7
- 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: c70918a9a9fcc6f391f61bcaf5487eb47279b742
|
|
4
|
+
data.tar.gz: 6a46404468b391f7cc53c666ffa903343b25bb4f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2c9b4b0764b8493b06b57448b5321c10fa7b586129f634ca26fb0387800eb23072ada5b103b3af9ae8024b758edcc23a6547810780197d986f93f3a384e5a9d2
|
|
7
|
+
data.tar.gz: 018db7a1dee71d94cb616d9650c46163140f82ff3d89720a19a35e9be2d55899ec6d84364911e545d8b36f105e9a3f485ede41e27cbc9b3140595b2a11cdacd9
|
checksums.yaml.gz.sig
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
"�`�~�%�a��^�����o��$ ~�Q6�I�[�Ue@�Y��(��@������*X%?fB����!�UY�����m��e`_��N�Z����{�zv-A� ����Y׆o�$y���mDO�Id��3H\�xG =Wt���
|
|
2
|
+
�� oSd�=g;������e�$�h?�e���[v�����q����W��䉑jd
|
|
3
|
+
W�@N�e]Q8�@�5s���u���I�W�}���E��N�-��18L
|
data.tar.gz.sig
CHANGED
|
Binary file
|
data/lib/rexle.rb
CHANGED
|
@@ -12,6 +12,9 @@ require 'backtrack-xpath'
|
|
|
12
12
|
|
|
13
13
|
# modifications:
|
|
14
14
|
|
|
15
|
+
# 06-May-2016: feature: Rexle::Element.text now returns a
|
|
16
|
+
# Rexle::Element::Value object which is a kind of
|
|
17
|
+
# String which be used for comparing numbers
|
|
15
18
|
# 25-Apr-2016: bug fix: Rexle::Element#to_a no longer returns a
|
|
16
19
|
# duplicate text value
|
|
17
20
|
# 24-Apr-2016: bug fix: The element text is now enclosed within quotes when
|
|
@@ -308,6 +311,21 @@ class Rexle
|
|
|
308
311
|
class Element
|
|
309
312
|
include XMLhelper
|
|
310
313
|
|
|
314
|
+
class Value < String
|
|
315
|
+
|
|
316
|
+
def initialize(value)
|
|
317
|
+
super(value)
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
def <(val2)
|
|
321
|
+
self.to_f < val2.to_f
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
def >(val2)
|
|
325
|
+
self.to_f > val2.to_f
|
|
326
|
+
end
|
|
327
|
+
end
|
|
328
|
+
|
|
311
329
|
attr_accessor :name, :value, :parent
|
|
312
330
|
attr_reader :child_elements, :doc_id, :instructions
|
|
313
331
|
|
|
@@ -401,7 +419,7 @@ class Rexle
|
|
|
401
419
|
|
|
402
420
|
alias next_sibling next_element
|
|
403
421
|
|
|
404
|
-
def
|
|
422
|
+
def not(bool)
|
|
405
423
|
|
|
406
424
|
r = self.xpath(bool).any?
|
|
407
425
|
|
|
@@ -443,6 +461,7 @@ class Rexle
|
|
|
443
461
|
|
|
444
462
|
# is it a function
|
|
445
463
|
fn_match = path.match(/^(\w+)\(["']?([^\)]*)["']?\)(?:\[(.*)\])?$/)
|
|
464
|
+
#fn_match = path.match(/^(\w+)\(/)
|
|
446
465
|
#@log.debug 'fn_match : ' + fn_match.inspect
|
|
447
466
|
end_fn_match = path.slice!(/\[\w+\(\)\]$/)
|
|
448
467
|
|
|
@@ -609,6 +628,7 @@ class Rexle
|
|
|
609
628
|
else
|
|
610
629
|
condition = element_part
|
|
611
630
|
attr_search = format_condition('[' + condition + ']')
|
|
631
|
+
|
|
612
632
|
#@log.debug 'attr_search : ' + attr_search.inspect
|
|
613
633
|
return [attribute_search(attr_search, \
|
|
614
634
|
self, self.attributes) != nil]
|
|
@@ -623,6 +643,7 @@ class Rexle
|
|
|
623
643
|
|
|
624
644
|
attr_search = format_condition(condition) if condition \
|
|
625
645
|
and condition.length > 0
|
|
646
|
+
|
|
626
647
|
#@log.debug 'attr_search2 : ' + attr_search.inspect
|
|
627
648
|
attr_search2 = xpath_value[/^\[(.*)\]$/,1]
|
|
628
649
|
|
|
@@ -672,11 +693,12 @@ class Rexle
|
|
|
672
693
|
elsif ename == '.'
|
|
673
694
|
|
|
674
695
|
remaining_xpath = raw_path[1..-1]
|
|
696
|
+
|
|
675
697
|
return remaining_xpath.empty? ? self : self.xpath(remaining_xpath)
|
|
676
698
|
elsif element_name.nil?
|
|
677
699
|
return eval attr_search
|
|
678
700
|
else
|
|
679
|
-
|
|
701
|
+
|
|
680
702
|
if raw_selector.nil? and ename != element_part then
|
|
681
703
|
|
|
682
704
|
right_cond = element_part[/#{ename}(.*)/,1]
|
|
@@ -806,7 +828,7 @@ class Rexle
|
|
|
806
828
|
def add_element(item)
|
|
807
829
|
|
|
808
830
|
if item.is_a? String then
|
|
809
|
-
@child_elements <<
|
|
831
|
+
@child_elements << Value.new(item)
|
|
810
832
|
|
|
811
833
|
elsif item.is_a? Rexle::CData then
|
|
812
834
|
@child_elements << item
|
|
@@ -954,6 +976,12 @@ class Rexle
|
|
|
954
976
|
def last(a) a.last end
|
|
955
977
|
def map(&blk) self.children.map(&blk) end
|
|
956
978
|
def root() self end
|
|
979
|
+
|
|
980
|
+
# Reserved for future use in Rexle 2.0
|
|
981
|
+
#
|
|
982
|
+
def select(name)
|
|
983
|
+
elements.select {|x| x.name == name}
|
|
984
|
+
end
|
|
957
985
|
|
|
958
986
|
def text(s='')
|
|
959
987
|
|
|
@@ -998,7 +1026,7 @@ class Rexle
|
|
|
998
1026
|
|
|
999
1027
|
def value=(raw_s)
|
|
1000
1028
|
|
|
1001
|
-
val =
|
|
1029
|
+
val = Value.new(raw_s.to_s.clone)
|
|
1002
1030
|
|
|
1003
1031
|
escape_chars = %w(& & < < > >).each_slice(2).to_a
|
|
1004
1032
|
escape_chars.each{|x| val.gsub!(*x)}
|
|
@@ -1065,7 +1093,7 @@ class Rexle
|
|
|
1065
1093
|
def format_condition(condition)
|
|
1066
1094
|
|
|
1067
1095
|
raw_items = condition.sub(/\[(.*)\]/,'\1').scan(/\'[^\']*\'|\"[^\"]*\"|\
|
|
1068
|
-
and|or|\d+|[!=<>%]+|position\(\)|contains\([^\)]+\)|
|
|
1096
|
+
and|or|\d+|[!=<>%]+|position\(\)|contains\([^\)]+\)|not\([^\)]+\)|[@\w\.\/&;]+/)
|
|
1069
1097
|
|
|
1070
1098
|
if raw_items[0][/^\d+$/] then
|
|
1071
1099
|
|
|
@@ -1082,7 +1110,8 @@ class Rexle
|
|
|
1082
1110
|
return rrr
|
|
1083
1111
|
elsif raw_items[0][/^contains\(/]
|
|
1084
1112
|
return raw_items[0]
|
|
1085
|
-
elsif raw_items[0][/^
|
|
1113
|
+
elsif raw_items[0][/^not\(/]
|
|
1114
|
+
|
|
1086
1115
|
return raw_items[0]
|
|
1087
1116
|
else
|
|
1088
1117
|
|
|
@@ -1143,7 +1172,7 @@ class Rexle
|
|
|
1143
1172
|
x
|
|
1144
1173
|
end
|
|
1145
1174
|
end
|
|
1146
|
-
|
|
1175
|
+
|
|
1147
1176
|
return items.join(' ')
|
|
1148
1177
|
end
|
|
1149
1178
|
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.3.
|
|
4
|
+
version: 1.3.31
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- James Robertson
|
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
|
31
31
|
pOw2Fx4uv9tO6wagRTcaHduxkh4jYfPDQI9mODFccHeY+wRLDGTENQwIILvMgEa7
|
|
32
32
|
50vRuyU+obGfjg==
|
|
33
33
|
-----END CERTIFICATE-----
|
|
34
|
-
date: 2016-
|
|
34
|
+
date: 2016-05-06 00:00:00.000000000 Z
|
|
35
35
|
dependencies:
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: rexleparser
|
metadata.gz.sig
CHANGED
|
Binary file
|