mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rexml/quickpath.rb (REXML::QuickPath::predicate): fix regexp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
fed549a104
commit
66a425c65c
2 changed files with 9 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Wed Apr 7 11:49:34 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/rexml/quickpath.rb (REXML::QuickPath::predicate):
|
||||||
|
fix regexp.
|
||||||
|
|
||||||
Wed Apr 7 09:44:48 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Wed Apr 7 09:44:48 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* configure.in (Makefile): quote init-commands.
|
* configure.in (Makefile): quote init-commands.
|
||||||
|
|
|
@ -141,6 +141,7 @@ module REXML
|
||||||
return matches.uniq
|
return matches.uniq
|
||||||
end
|
end
|
||||||
|
|
||||||
|
OPERAND_ = '((?=(?:(?!and|or).)*[^\s<>=])[^\s<>=]+)'
|
||||||
# A predicate filters a node-set with respect to an axis to produce a
|
# A predicate filters a node-set with respect to an axis to produce a
|
||||||
# new node-set. For each node in the node-set to be filtered, the
|
# new node-set. For each node in the node-set to be filtered, the
|
||||||
# PredicateExpr is evaluated with that node as the context node, with
|
# PredicateExpr is evaluated with that node as the context node, with
|
||||||
|
@ -170,7 +171,9 @@ module REXML
|
||||||
rest = path[ind+1..-1]
|
rest = path[ind+1..-1]
|
||||||
|
|
||||||
# have to change 'a [=<>] b [=<>] c' into 'a [=<>] b and b [=<>] c'
|
# have to change 'a [=<>] b [=<>] c' into 'a [=<>] b and b [=<>] c'
|
||||||
predicate.gsub!( /([^\s(and)(or)<>=]+)\s*([<>=])\s*([^\s(and)(or)<>=]+)\s*([<>=])\s*([^\s(and)(or)<>=]+)/u,
|
#
|
||||||
|
predicate.gsub!(
|
||||||
|
/#{OPERAND_}\s*([<>=])\s*#{OPERAND_}\s*([<>=])\s*#{OPERAND_}/u,
|
||||||
'\1 \2 \3 and \3 \4 \5' )
|
'\1 \2 \3 and \3 \4 \5' )
|
||||||
# Let's do some Ruby trickery to avoid some work:
|
# Let's do some Ruby trickery to avoid some work:
|
||||||
predicate.gsub!( /&/u, "&&" )
|
predicate.gsub!( /&/u, "&&" )
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue