Para compartir código en ruby existen algunos lineamientos que producen mejores resultados, esta plática habla del proceso de aprendizaje por el que pasé para crear librerías útiles para los usuarios de las mismas. Presentada en ChilangoRails.
Matesy GmbH - Own work. Licensed under CC BY-SA 3.0 http://commons.wikimedia.org/wiki/ File:Visualization_of_magnetic_information_on_a_Floppy_Disk_(CMOS-MagView).jpg
Comprobantes class Comprobante # Crear un comprobante nuevo def initialize (data={}, options={}) #hack porque dup se caga con instance variables opts = Marshal::load(Marshal.dump(@@options)) data = opts[:defaults].merge data @opciones = opts.merge options data.each do |k,v| method = "#{k}=" next if !self.respond_to? method self.send method, v end end end end
factura.emisor = { rfc: 'un RFC', nombre: 'una razón social o nombre', domicilioFiscal: CFDI::Domicilio.new expedidoEn: CFDI::Domicilio.new regimenFiscal: 'general' } # porque XML! ES LO DE HOY! BIENVENIDOS A 2001! puts factura.to_xml # O talvez evolucionamos a un formato de intercambio de datos menos castroso puts JSON.pretty_generate(factura.to_h)