lib/cieloz/requisicao_transacao/dados_avs.rb
class Cieloz::RequisicaoTransacao
class DadosAvs
CONFERE = 'C'
NAO_CONFERE = 'N'
INDISPONIVEL = 'I'
TEMPORARIAMENTE_INDISPONIVEL = 'T'
NAO_SUPORTADO = 'X'
include Cieloz::Helpers
attr_accessor :cep, :endereco, :complemento, :numero, :bairro
validates :cep, presence: true, format: { with: /\A(\d{5}-\d{3})\z/ }
def self.map(source, opts={})
cep, endereco, complemento, numero, bairro = attrs_from source, opts,
:cep, :endereco, :complemento, :numero, :bairro
new source: source, opts: opts,
cep: cep, endereco: endereco, complemento: complemento, numero: numero, bairro: bairro
end
def attributes
{
endereco: @endereco,
complemento: @complemento,
numero: @numero,
bairro: @bairro,
cep: @cep
}
end
def build_xml builder
builder.tag! 'avs' do
builder.cdata! attr_to_xml
end
end
private
def attr_to_xml
x = Builder::XmlMarkup.new
@xml = x.tag! 'dados-avs' do
attributes.each do |attr, value|
next if value.nil?
x.tag! dasherize_attr(attr), value
end
end
end
end
end