1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/rexml/xpath.rb (REXML::XPath.first): apply documentation

patch from Ken Bloom in [ruby-core:20213].

* lib/rexml/xpath.rb (REXML::XPath.each): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2008-12-03 00:31:58 +00:00
parent 7fd3ac4895
commit 684f94c0ed
2 changed files with 18 additions and 0 deletions

View file

@ -1,3 +1,10 @@
Wed Dec 3 09:26:29 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* lib/rexml/xpath.rb (REXML::XPath.first): apply documentation
patch from Ken Bloom in [ruby-core:20213].
* lib/rexml/xpath.rb (REXML::XPath.each): ditto.
Wed Dec 3 02:56:34 2008 Yusuke Endoh <mame@tsg.ne.jp>
* test/ruby/test_rational.rb: add a test.

View file

@ -15,10 +15,15 @@ module REXML
# node matching '*'.
# namespaces::
# If supplied, a Hash which defines a namespace mapping.
# variables::
# If supplied, a Hash which maps $variables in the query
# to values. This can be used to avoid XPath injection attacks
# or to automatically handle escaping string values.
#
# XPath.first( node )
# XPath.first( doc, "//b"} )
# XPath.first( node, "a/x:b", { "x"=>"http://doofus" } )
# XPath.first( node, '/book/publisher/text()=$publisher', {}, {"publisher"=>"O'Reilly"})
def XPath::first element, path=nil, namespaces=nil, variables={}
raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.nil? or namespaces.kind_of?(Hash)
raise "The variables argument, if supplied, must be a hash object." unless variables.kind_of?(Hash)
@ -38,10 +43,16 @@ module REXML
# The xpath to search for. If not supplied or nil, defaults to '*'
# namespaces::
# If supplied, a Hash which defines a namespace mapping
# variables::
# If supplied, a Hash which maps $variables in the query
# to values. This can be used to avoid XPath injection attacks
# or to automatically handle escaping string values.
#
# XPath.each( node ) { |el| ... }
# XPath.each( node, '/*[@attr='v']' ) { |el| ... }
# XPath.each( node, 'ancestor::x' ) { |el| ... }
# XPath.each( node, '/book/publisher/text()=$publisher', {}, {"publisher"=>"O'Reilly"}) \
# {|el| ... }
def XPath::each element, path=nil, namespaces=nil, variables={}, &block
raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.nil? or namespaces.kind_of?(Hash)
raise "The variables argument, if supplied, must be a hash object." unless variables.kind_of?(Hash)