Sha256: 1ea1893194b84dcfc905ca59adc9fa637fe54ba73dc3fcd351f7b6ef8f88ccd9

Contents?: true

Size: 659 Bytes

Versions: 1

Compression:

Stored size: 659 Bytes

Contents

module Correios
  module CEP
    class AddressFinder
      def get(zipcode)
        validate(zipcode)
        response = web_service.request(zipcode)
        parser.address(response)
      end

      def self.get(zipcode)
        self.new.get(zipcode)
      end

      private

      def web_service
        @web_service ||= Correios::CEP::WebService.new
      end

      def parser
        @parser ||= Correios::CEP::Parser.new
      end

      private

      def validate(zipcode)
        if zipcode.to_s.strip.empty? || !zipcode.to_s.match(/\A\d{5}-?\d{3}\z/)
          raise ArgumentError.new("invalid cep format")
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
correios-cep-0.5.0 lib/correios/cep/address_finder.rb