25 lines
		
	
	
		
			489 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			489 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| class RSS::Element
 | |
|   def self.with(*, &block)
 | |
|     new(*).tap(&block).to_element
 | |
|   end
 | |
| 
 | |
|   def create_element(name, content = nil)
 | |
|     Ox::Element.new(name).tap do |element|
 | |
|       yield element if block_given?
 | |
|       element << content if content.present?
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def append_element(name, content = nil)
 | |
|     @root << create_element(name, content).tap do |element|
 | |
|       yield element if block_given?
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def to_element
 | |
|     @root
 | |
|   end
 | |
| end
 |