Module: DBI::Utils::XMLFormatter
- Defined in:
- lib/dbi/utils/xmlformatter.rb
Overview
Formats results in XML.
Class Method Summary collapse
- 
  
    
      .extended_row(dbrow, rowtag = "row", cols_in_row_tag = [], cols_as_tag = nil, add_row_tag_attrs = {}, output = STDOUT)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    good lord, what a mess. 
- 
  
    
      .row(dbrow, rowtag = "row", output = STDOUT)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Generate XML for a row. 
- 
  
    
      .table(rows, roottag = "rows", rowtag = "row", output = STDOUT)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    generate a full XML representation of the table. 
Class Method Details
.extended_row(dbrow, rowtag = "row", cols_in_row_tag = [], cols_as_tag = nil, add_row_tag_attrs = {}, output = STDOUT) ⇒ Object
good lord, what a mess.
nil in cols_as_tag, means “all columns expect those listed in cols_in_row_tag” add_row_tag_attrs are additional attributes which are inserted into the row-tag
| 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # File 'lib/dbi/utils/xmlformatter.rb', line 24 def self.extended_row(dbrow, rowtag="row", cols_in_row_tag=[], cols_as_tag=nil, add_row_tag_attrs={}, output=STDOUT) if cols_as_tag.nil? cols_as_tag = dbrow.column_names - cols_in_row_tag end output << "<#{rowtag}" add_row_tag_attrs.each do |key, val| # TODO: use textconv ? " substitution? output << %{ #{key}="#{textconv(val)}"} end cols_in_row_tag.each do |key| # TODO: use textconv ? " substitution? output << %{ #{key}="#{dbrow[key]}"} end output << ">\n" cols_as_tag.each do |key| output << " <#{key}>" + textconv(dbrow[key]) + "</#{key}>\n" end output << "</#{rowtag}>\n" end | 
.row(dbrow, rowtag = "row", output = STDOUT) ⇒ Object
Generate XML for a row. The column names will surround the the values as tags.
- 
dbrow: the array of the result row.
- 
rowtag: the name of the tag that encapsulates a row.
- 
output: Object that responds to ‘<<`.
| 11 12 13 14 15 16 17 18 | # File 'lib/dbi/utils/xmlformatter.rb', line 11 def self.row(dbrow, rowtag="row", output=STDOUT) #XMLFormatter.extended_row(dbrow, "row", [], output << "<#{rowtag}>\n" dbrow.each_with_name do |val, name| output << " <#{name}>" + textconv(val) + "</#{name}>\n" end output << "</#{rowtag}>\n" end | 
.table(rows, roottag = "rows", rowtag = "row", output = STDOUT) ⇒ Object
generate a full XML representation of the table.
Arguments and output are similar to #row, with the exception of roottag, which is a container for the individual row tags.
| 51 52 53 54 55 56 57 58 | # File 'lib/dbi/utils/xmlformatter.rb', line 51 def self.table(rows, roottag = "rows", rowtag = "row", output=STDOUT) output << '<?xml version="1.0" encoding="UTF-8" ?>' output << "\n<#{roottag}>\n" rows.each do |row| row(row, rowtag, output) end output << "</#{roottag}>\n" end |