Added XML::Element#get
This method can be used to directly retrieve an attribute value.
This commit is contained in:
		
							parent
							
								
									e2dab952d0
								
							
						
					
					
						commit
						6d19c9b311
					
				|  | @ -55,7 +55,8 @@ module Oga | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       ## |       ## | ||||||
|       # Returns the attribute of the given name. |       # Returns an attribute matching the given name (with or without the | ||||||
|  |       # namespace). | ||||||
|       # |       # | ||||||
|       # @example |       # @example | ||||||
|       #  # find an attribute that only has the name "foo" |       #  # find an attribute that only has the name "foo" | ||||||
|  | @ -64,8 +65,10 @@ module Oga | ||||||
|       #  # find an attribute with namespace "foo" and name bar" |       #  # find an attribute with namespace "foo" and name bar" | ||||||
|       #  attribute('foo:bar') |       #  attribute('foo:bar') | ||||||
|       # |       # | ||||||
|       # @param [String] name |       # @param [String|Symbol] name The name (with or without the namespace) | ||||||
|       # @return [String] |       #  of the attribute. | ||||||
|  |       # | ||||||
|  |       # @return [Oga::XML::Attribute] | ||||||
|       # |       # | ||||||
|       def attribute(name) |       def attribute(name) | ||||||
|         name, ns = split_name(name) |         name, ns = split_name(name) | ||||||
|  | @ -79,6 +82,20 @@ module Oga | ||||||
| 
 | 
 | ||||||
|       alias_method :attr, :attribute |       alias_method :attr, :attribute | ||||||
| 
 | 
 | ||||||
|  |       ## | ||||||
|  |       # Returns the value of the given attribute. | ||||||
|  |       # | ||||||
|  |       # @example | ||||||
|  |       #  element.get('class') # => "container" | ||||||
|  |       # | ||||||
|  |       # @see [#attribute] | ||||||
|  |       # | ||||||
|  |       def get(name) | ||||||
|  |         found = attribute(name) | ||||||
|  | 
 | ||||||
|  |         return found ? found.value : nil | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|       ## |       ## | ||||||
|       # Returns the namespace of the element. |       # Returns the namespace of the element. | ||||||
|       # |       # | ||||||
|  |  | ||||||
|  | @ -89,6 +89,18 @@ describe Oga::XML::Element do | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   context '#get' do | ||||||
|  |     before do | ||||||
|  |       attr = Oga::XML::Attribute.new(:name => 'foo', :value => 'bar') | ||||||
|  | 
 | ||||||
|  |       @element = described_class.new(:attributes => [attr]) | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     example 'return the value of an attribute' do | ||||||
|  |       @element.get('foo').should == 'bar' | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   context '#namespace' do |   context '#namespace' do | ||||||
|     before do |     before do | ||||||
|       @namespace = Oga::XML::Namespace.new(:name => 'x') |       @namespace = Oga::XML::Namespace.new(:name => 'x') | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue