Module: BrZipCode

Defined in:
lib/br_zip_code.rb,
lib/br_zip_code/engine.rb,
lib/br_zip_code/version.rb,
app/controllers/br_zip_code/zip_code_controller.rb,
app/controllers/br_zip_code/application_controller.rb

Defined Under Namespace

Classes: ApplicationController, Engine, ZipCodeAttempt, ZipCodeController

Constant Summary collapse

VERSION =
"0.2.3"

Class Method Summary collapse

Class Method Details

.formatted(zip_code) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/br_zip_code.rb', line 16

def self.formatted zip_code
  zip = zip_code.scan(/[0-9]/).join
  unless zip.to_s.match(/^\d{8}$/)
    nil
  else
    zip.insert(2, '.').insert(6, '-')
  end
end

.get_address(zip_code) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/br_zip_code.rb', line 25

def self.get_address zip_code
  zip = self.strip(zip_code)

  attempt = ZipCodeAttempt.new

  unless zip.nil?
    begin
      attempt.zip_code_attempt_1 zip
    rescue Exception => e
      begin
        attempt.zip_code_attempt_2 zip
      rescue Exception => e
        begin
          attempt.zip_code_attempt_3 zip
        rescue Exception => e
          { error: "CEP não encontrado" }
        end
      end
    end
  else
    { error: "CEP inválido" }
  end

end

.strip(zip_code) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/br_zip_code.rb', line 6

def self.strip zip_code
  zip = zip_code.sub(/\./, '').sub(/\-/, '')
  # if zip.scan(/[0-9]/).length != 8 or zip.length != 8
  unless zip.to_s.match(/^\d{8}$/)
    nil
  else
    zip
  end
end