class Correios
Constants
- NAO
- SIM
- VERSION
Public Class Methods
new(cep_origem, cep_destino)
click to toggle source
# File lib/correios.rb, line 85 def initialize(cep_origem, cep_destino) @cep_origem = cep_origem @cep_destino = cep_destino end
Public Instance Methods
calcular_frete(servicos, peso, comprimento, altura, largura, diametro = 0, mao_propria = NAO, valor_declarado = 0, aviso_recebimento = NAO)
click to toggle source
# File lib/correios.rb, line 90 def calcular_frete(servicos, peso, comprimento, altura, largura, diametro = 0, mao_propria = NAO, valor_declarado = 0, aviso_recebimento = NAO) host = 'http://ws.correios.com.br' path = '/calculador/CalcPrecoPrazo.aspx' identificadores = servicos identificadores = servicos.to_a.join(',') unless servicos.kind_of? Fixnum params = { :nCdEmpresa => '', :sDsSenha => '', :StrRetorno => "xml", :nCdServico => identificadores, :sCepOrigem => @cep_origem, :sCepDestino => @cep_destino, :nVlPeso => peso, :nCdFormato => 1, :nVlComprimento => comprimento, :nVlAltura => altura, :nVlLargura => largura, :nVlDiametro => diametro, :sCdMaoPropria => mao_propria, :nVlValorDeclarado => valor_declarado, :sCdAvisoRecebimento => aviso_recebimento } params = params.to_a.map {|item| item.to_a.join('=')} .join('&') xml_str = open("#{host}#{path}?#{params}").read xml = XmlSimple.xml_in(xml_str) setup_services xml, servicos end
get_xml(url)
click to toggle source
# File lib/correios.rb, line 123 def get_xml url XmlSimple.xml_in(open(url).read) end
setup_services(xml, servicos)
click to toggle source
# File lib/correios.rb, line 127 def setup_services xml, servicos if xml["cServico"].size > 1 servicos = {} xml["cServico"].each do |servico| servicos[Servico::SERVICOS[servico["Codigo"].first.to_i]] = Servico.new(servico) rescue nil end else servicos = Servico.new(xml["cServico"].first) end servicos end