Sha256: 9810c9cebfd3a60dd39d67e8d1ca9cb05e0a1e159c3e937b14cd72ea383b6454
Contents?: true
Size: 737 Bytes
Versions: 1
Compression:
Stored size: 737 Bytes
Contents
require 'to_xml/version' class Object def self.xml_type name.gsub(/([a-z])([A-Z])/,'\1-\2').downcase end def xml_type self.class.xml_type end def to_xml( name = nil ) name ? %{<#{name} type="#{xml_type}">#{self.to_s}</#{name}>} : self.to_s end def to_xml!( *args ) %{<?xml version="1.0" encoding="UTF-8"?>\n} + to_xml( *args ) end end class Integer def self.xml_type "integer" end end class Array def to_xml( array_name = :array, item_name = :item ) %|<#{array_name} size="#{self.size}">|+map{|n|n.to_xml( :item )}.join+"</#{array_name}>" end end class Hash def to_xml( name = nil ) data = to_a.map{|k,v|v.to_xml(k)}.join name ? "<#{name}>#{data}</#{name}>" : data end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
to_xml-0.1.1 | lib/to_xml.rb |