rexle 1.5.2 → 1.5.7

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.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/lib/rexle.rb +18 -8
  5. metadata +45 -45
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f239257d410072638cef76f46df1b34c82e48a3943a26d3986a860348ae68851
4
- data.tar.gz: f25ca91df0ff0d6834dad5f299aa28c3092304cfba4255c1d8843da5155c20ef
3
+ metadata.gz: f618c9f7362740fab8dd51fa97118b695effd37a7b1254992eb7bc45075256a9
4
+ data.tar.gz: 8fd18092107575476f66e8f46fc8251bd42a2bc9d0819867f2ba2ac4b292f47c
5
5
  SHA512:
6
- metadata.gz: 4e932b40fac8bea0781aa09100ca290b20e570d7555fde08c479501c83545bb60ca83aab475153c7699907f6c93eb732c159980e5140def6849ff4853b3ebac1
7
- data.tar.gz: e2d417076d437e471f8be50704767de864c0b4e7ebdb120551099aef9591d8b3c6a9a24513377055340e43647a7eea156db0b4493f8467b76b3e90ebbe29ab58
6
+ metadata.gz: b98a5b59400eb42f562725e87c982e086446fe5ed8fafa777ac68214e345350efe567bab0b0da3e3d43eed2283cf2f550cb59a8ed3f0b44ce5c62a5298193a78
7
+ data.tar.gz: d3ef38f3a5bb0cba758d98d5f7ef8618f93af4e40edea315a557c6133a7d3fdbb0420ea7441bdea06df8e787abf43314b3f1970ec05e1f2340a8676df734cc1a
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -13,6 +13,10 @@ require 'backtrack-xpath'
13
13
 
14
14
  # modifications:
15
15
 
16
+ # 11-May-2020: bug fix: Rexle#css now responds correctly to valid selectors
17
+ # 23-Apr-2020: feature: Added public method *plaintext*.
18
+ # 04-Feb-2020: minor bug fix: Element A is now defined as a non self-closing tag
19
+ # 18-Sep-2019: minor bug fix: &apos is now unescaped properly
16
20
  # 09-Jul-2019: minor improvement: A comment tag now has a
17
21
  # new line when pretty printed
18
22
  # 02-Feb-2019: feature: A comment tag can now have nested elements
@@ -99,7 +103,7 @@ module XMLhelper
99
103
 
100
104
  tag = x.name + (a.empty? ? '' : ' ' + a.join(' '))
101
105
 
102
- non_self_closing_tags = %w(script textarea iframe div object)
106
+ non_self_closing_tags = %w(script textarea iframe div object a)
103
107
 
104
108
  if (x.children and x.children.length > 0 \
105
109
  and not x.children.is_an_empty_string?) or \
@@ -205,6 +209,7 @@ class Rexle
205
209
  def initialize(x=nil, rexle: self, debug: false)
206
210
 
207
211
  @rexle, @debug = rexle, debug
212
+ $debug = @debug
208
213
 
209
214
  puts 'inside Rexle'.debug if debug
210
215
 
@@ -253,9 +258,7 @@ class Rexle
253
258
  a = selector.split(',').flat_map do |x|
254
259
  @doc.root.xpath RexleCSS.new(x).to_xpath
255
260
  end
256
-
257
- a.shift if self.kind_of? Rexle
258
-
261
+
259
262
  return a
260
263
  end
261
264
 
@@ -646,6 +649,7 @@ class Rexle
646
649
  attr_search = format_condition(condition) if condition \
647
650
  and condition.length > 0
648
651
 
652
+ puts ('1. attr_search: ' + attr_search.inspect).debug if $debug
649
653
  #@log.debug 'attr_search2 : ' + attr_search.inspect
650
654
  attr_search2 = xpath_value[/^\[(.*)\]$/,1]
651
655
 
@@ -710,6 +714,7 @@ class Rexle
710
714
  end
711
715
 
712
716
  elsif element_name.nil?
717
+ puts ('attr_search: ' + attr_search.inspect).debug if $debug
713
718
  return eval attr_search
714
719
  else
715
720
 
@@ -995,6 +1000,11 @@ class Rexle
995
1000
  def insert_before(node) insert(node) end
996
1001
  def last(a) a.last end
997
1002
  def map(&blk) self.children.map(&blk) end
1003
+
1004
+ def plaintext()
1005
+ xml().gsub(/<\/?[^>]+>/,'').gsub('&nbsp;',' ').gsub(/\n\s+/,' ')
1006
+ end
1007
+
998
1008
  def root() self end
999
1009
 
1000
1010
  def text(s='')
@@ -1016,7 +1026,7 @@ class Rexle
1016
1026
  r.map do |x|
1017
1027
  def x.unescape()
1018
1028
  s = self.to_s.clone
1019
- %w(&lt; < &gt; > &amp; & &pos; ').each_slice(2){|x| s.gsub!(*x)}
1029
+ %w(&lt; < &gt; > &amp; & &apos; ').each_slice(2){|x| s.gsub!(*x)}
1020
1030
  s
1021
1031
  end
1022
1032
  end
@@ -1031,7 +1041,7 @@ class Rexle
1031
1041
 
1032
1042
  def r.unescape()
1033
1043
  s = self.clone
1034
- %w(&lt; < &gt; > &amp; & &pos; ').each_slice(2){|x| s.gsub!(*x)}
1044
+ %w(&lt; < &gt; > &amp; & &apos; ').each_slice(2){|x| s.gsub!(*x)}
1035
1045
  s
1036
1046
  end
1037
1047
 
@@ -1042,7 +1052,7 @@ class Rexle
1042
1052
 
1043
1053
  val = Value.new(raw_s.to_s.clone)
1044
1054
 
1045
- escape_chars = %w(& &amp; < &lt; > &gt;).each_slice(2).to_a
1055
+ escape_chars = %w(& &amp; ' &apos; < &lt; > &gt;).each_slice(2).to_a
1046
1056
  escape_chars.each{|x| val.gsub!(*x)}
1047
1057
 
1048
1058
  t = val
@@ -1323,7 +1333,7 @@ class Rexle
1323
1333
 
1324
1334
  def unescape()
1325
1335
  s = @value.clone
1326
- %w(&lt; < &gt; > &amp; & &pos; ').each_slice(2){|x| s.gsub!(*x)}
1336
+ %w(&lt; < &gt; > &amp; & &apos; ').each_slice(2){|x| s.gsub!(*x)}
1327
1337
  s
1328
1338
  end
1329
1339
 
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.5.2
4
+ version: 1.5.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgxMDAyMjEwMjM4WhcN
15
- MTkxMDAyMjEwMjM4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC1X6zL
17
- G+ytuYkQsPOKreuUt/gsYlNSAw5D8VDCUdOScMLcytoL5Ssf3CBBr2LM1QJrkQ5M
18
- 2J4bF0uTDFmegNK44hIpPPYAYuMHL3IjSawvdyBHgl7GRqv84Y7ys7kD+X+TtxqK
19
- jP3icaTau5+DQMe3lIjqlS7KhI0GhUmjiGlL1X/WOaxf3gHTRWtiMktv3VElekAj
20
- cOL+hZtRICwLq6yrixODLIt9OyAZ8t+U3XpYZIHkMAswGGo05Pkf4FlDnIzm+VJ0
21
- J+dTw+FVx/kPL7y4FNTN8Akl45dAFADuHHNAuOKlCWT+CkKBdDhEWNJQC/cX8nxf
22
- XHwKna6YPnuAbt1IBwX/eZIDDrFrTApa6nQVWgyUWyt7z9ntslVCd1rW6K1siJ9F
23
- nrW/LPUUgVhTCMwFXYaPWoBaVbiZqGlVn2cFJF9MS9bB4pPbCSU9YVJ4qtYGAatD
24
- MBl0kiJdq8exmm0f9WqOvXmVWXWYlhMv5LfAH1ECbK4pIdh5DolK3NB/70sCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUYY6jhDbE
26
- YQSrL+8T3vNoEqjmOXowJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwMjA0MTMxMjIzWhcN
15
+ MjEwMjAzMTMxMjIzWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCyVLqC
17
+ gVJ+P/zFnjtoyxfgcrc5US5+G7mDdNq/Q2GDm2zIZjVAnUHLZCcKLBlwMY0Vusqq
18
+ sNzbiSHqVqaXtrFq2jivmbJsKUxJMTIuErXQnpfVsmapQsYJ7U8+byHgFRf8ysTc
19
+ Op90xKUkroJdO+Ls0SMcFXUGqybH5d4Dxhb+3f/rAThPC8V9EWRWF/SlosXvE/sw
20
+ VzsGkxLQug3xJkSvN2rQQZi4RgOP37jgeEToeLTIu43npNF6H9nSV/lxUriqPyva
21
+ OMQYIpK+1SS42J9rSD1/1q1FscsKT2koP9Uf4zHzIeuiQ4wmAMpqYS80eNzaeAEx
22
+ p3Z4HLBHseWKNWSDrgW0YvuYBAEMcq+XdBMT66n+xKL5GUlsXptrFQ4QP6oOxK4K
23
+ UZXN94qwi54m+EIexo5ADKtrwRuQl+X9pRpOmFNJAny8vWIz6U1SZs2nBysPLj2g
24
+ lnKLGetPlgBVoKAPZoFu//CYQKIO+erQoAGRoA05TGrBAq2cNkNFvQJ9XM0CAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUCCDebAbe
26
+ pZaniHSTxRjAZLUsoQswJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAjUIY0ulHDqBKjbrn3mxutbu0fzMLo0TBmpvvuG2S
29
- j4nitZZVmcjiEtJ9br8qjKg0Ycfkt2GTKjeJ7NwrwS0oBtOSsvrDFA+x/YoO5cuk
30
- RNhiEC9tk+IF/xN9N0+eyiRBfWFtZ8yHG1d5Ql0DirzspiYLX5sVQG/8hA3s9Jbn
31
- gO0fnWowD9LP+jbZr6yw/rnU1Mhb3UAI2W9LSXGslpxvtMS0yKsrHPR9/qQ3fIKH
32
- teZlGb8tw9RXEKExP6zSR+ZRXpnNyZQ7flRf4lusqUNvtkguF9dL8RNd8QMV2PJw
33
- IHeJbMdyTmYQb8XIAR5zXu0BHfqKRT1GLg94u03RBsBcno5YqNJ5OU42C+j8GEQt
34
- nFb3gCj4YFPzQa6OVdSIi/kKW2J8wFxUvI8muMt7lbTaxFJLyK9Qdt/oKxwxXM1t
35
- Zdf6ufm6l1fXtBUvl0XuKmNH8p6u/7SmI2oqJoV7Oiarx5i1LrpWL8Zc3q9MFaT4
36
- pzftGMNXyXUyb9mSx4krfsRT
28
+ BgkqhkiG9w0BAQsFAAOCAYEAEdNcc2nDj8v6FdY75tULXii+F0m1pnfxri+wtd/1
29
+ wnRqNqmaKQGwAUhx4qLhs8MbGU5H4xe18Hmf7n6P++HSCKaFDwE3mo38vwnPmPr8
30
+ J+4+CWaB+avp9/wztZS3oQ0k/w9bN4b1RUk18z4rpG9Y8KH3v7L+b4rAzzBhs60S
31
+ Q2+963e3C7PFkFODn1vfGMRmBK2nuekE6RdzzxzRuUBwKHMggxPsHRQzaz8cy4fB
32
+ UWC8eX0y59rd/gA0WunPXgpuV24SHBtIqTLk76Z1Oz3P27Hwx2JPhURtzc3bNfSg
33
+ gvwYrdF1dTOwourN6uqQLksl7AjcCVUV+6hyoa5Fo9HcfURnlPdjVFax/KIQj3lA
34
+ X0bOYG6opdA3I0zyDHGx+mC9QuhM6oKYq3fu7i8RsVsihVImOovRYVagGbULBLDZ
35
+ yK32Ci6By/qMCdJdE8pLLZhHuZGIkoYJK7EN7OKPznwuXRCOq7jb44HAIDi4RZST
36
+ J+lqIOqNxqRJkYpuYSZr+tyd
37
37
  -----END CERTIFICATE-----
38
- date: 2019-07-10 00:00:00.000000000 Z
38
+ date: 2020-06-22 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: c32
@@ -63,60 +63,60 @@ dependencies:
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '0.8'
66
+ version: '0.9'
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 0.8.1
69
+ version: 0.9.3
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0.8'
76
+ version: '0.9'
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 0.8.1
79
+ version: 0.9.3
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rexle-builder
82
82
  requirement: !ruby/object:Gem::Requirement
83
83
  requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: 0.4.0
87
84
  - - "~>"
88
85
  - !ruby/object:Gem::Version
89
- version: '0.4'
86
+ version: '1.0'
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.2
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 0.4.0
97
94
  - - "~>"
98
95
  - !ruby/object:Gem::Version
99
- version: '0.4'
96
+ version: '1.0'
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 1.0.2
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: rexle-css
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - "~>"
105
- - !ruby/object:Gem::Version
106
- version: '0.1'
107
104
  - - ">="
108
105
  - !ruby/object:Gem::Version
109
- version: 0.1.6
106
+ version: 0.2.0
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.2'
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '0.1'
117
114
  - - ">="
118
115
  - !ruby/object:Gem::Version
119
- version: 0.1.6
116
+ version: 0.2.0
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '0.2'
120
120
  - !ruby/object:Gem::Dependency
121
121
  name: backtrack-xpath
122
122
  requirement: !ruby/object:Gem::Requirement
@@ -163,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0'
165
165
  requirements: []
166
- rubygems_version: 3.0.1
166
+ rubygems_version: 3.0.3
167
167
  signing_key:
168
168
  specification_version: 4
169
169
  summary: Rexle is an XML parser written purely in Ruby
metadata.gz.sig CHANGED
Binary file