Case insensitive matching of nodes
This re-applies the patch added in #134 to the new XPath compiler. Fixes #135.
This commit is contained in:
parent
bb8b328f5e
commit
604d0d9337
|
@ -1398,9 +1398,12 @@ module Oga
|
||||||
ns, name = *ast
|
ns, name = *ast
|
||||||
|
|
||||||
condition = nil
|
condition = nil
|
||||||
|
name_str = string(name)
|
||||||
|
zero = literal(0)
|
||||||
|
|
||||||
if name != STAR
|
if name != STAR
|
||||||
condition = input.name.eq(string(name))
|
condition = input.name.eq(name_str)
|
||||||
|
.or(input.name.casecmp(name_str).eq(zero))
|
||||||
end
|
end
|
||||||
|
|
||||||
if ns and ns != STAR
|
if ns and ns != STAR
|
||||||
|
|
|
@ -16,6 +16,12 @@ describe Oga::XPath::Compiler do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '/A' do
|
||||||
|
it 'returns a NodeSet' do
|
||||||
|
evaluate_xpath(@document).should == node_set(@a1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '/' do
|
describe '/' do
|
||||||
it 'returns a NodeSet' do
|
it 'returns a NodeSet' do
|
||||||
evaluate_xpath(@document).should == node_set(@document)
|
evaluate_xpath(@document).should == node_set(@document)
|
||||||
|
|
Loading…
Reference in New Issue