rexle 0.5.12 → 0.5.13

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 (2) hide show
  1. data/lib/rexle.rb +21 -12
  2. metadata +1 -1
data/lib/rexle.rb CHANGED
@@ -76,15 +76,18 @@ class Rexle
76
76
  end
77
77
 
78
78
  elmnt_path = s[/^([\w\*]+\[[^\]]+\])|[\/]+{,2}[^\/]+/]
79
- element_part, condition = elmnt_path.match(/(^@?[^\[]+)(\[[^\]]+\])?/).captures
80
79
 
81
- unless element_part[/^@/] then
82
- element_name = element_part
83
- else
84
- condition = element_part
85
- element_name = nil
80
+ element_part, condition = elmnt_path.match(/(^@?[^\[]+)?(\[[^\]]+\])?/).captures
81
+
82
+ if element_part then
83
+ unless element_part[/^@/] then
84
+ element_name = element_part
85
+ else
86
+ condition = element_part
87
+ element_name = nil
88
+ end
86
89
  end
87
-
90
+
88
91
  attr_search = format_attributes(condition) if condition
89
92
 
90
93
  if xpath_value[0,2] == '//'
@@ -166,6 +169,8 @@ class Rexle
166
169
  s.empty? ? @value : self.xpath(s).first.value
167
170
  end
168
171
 
172
+ alias text= value=
173
+
169
174
  private
170
175
 
171
176
  def scan_print(nodes)
@@ -226,6 +231,7 @@ class Rexle
226
231
  end
227
232
 
228
233
  def scan_match(nodes, element, attr_search, condition, rlist)
234
+
229
235
  nodes.children.each.with_index do |x, i|
230
236
 
231
237
  h = x.attributes
@@ -240,10 +246,13 @@ class Rexle
240
246
  end
241
247
  else
242
248
 
243
- attribute = condition[/@(.*)/,1]
244
-
245
- if h.has_key? attribute then
246
- rlist << h[attribute]
249
+ if condition[/^@/] then
250
+ attribute = condition[/@(.*)/,1]
251
+ if h.has_key? attribute then
252
+ rlist << h[attribute]
253
+ end
254
+ else
255
+ rlist << x if h and eval(attr_search)
247
256
  end
248
257
  end
249
258
 
@@ -362,4 +371,4 @@ class Rexle
362
371
  [node.name, node.text.to_s, attributes, *children]
363
372
  end
364
373
 
365
- end
374
+ 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: 0.5.12
4
+ version: 0.5.13
5
5
  platform: ruby
6
6
  authors: []
7
7