via_cep 2.0.1 → 3.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/.rubocop.yml +11 -8
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +2 -2
- data/Gemfile +0 -7
- data/Gemfile.lock +63 -0
- data/Makefile +2 -0
- data/Rakefile +0 -1
- data/bin/console +0 -2
- data/bin/zipcode +2 -4
- data/lib/via_cep.rb +20 -13
- data/lib/via_cep/address.rb +16 -16
- data/lib/via_cep/http.rb +17 -0
- data/lib/via_cep/instance.rb +16 -0
- data/lib/via_cep/methods.rb +9 -9
- data/lib/via_cep/search_by_address.rb +23 -15
- data/lib/via_cep/{validators/state.rb → validators.rb} +11 -6
- data/lib/via_cep/version.rb +1 -2
- data/via_cep.gemspec +18 -15
- metadata +57 -16
- data/lib/via_cep/errors/address_not_found.rb +0 -15
- data/lib/via_cep/errors/invalid_state_format.rb +0 -15
- data/lib/via_cep/errors/invalid_zipcode_format.rb +0 -15
- data/lib/via_cep/errors/zipcode_not_found.rb +0 -15
- data/lib/via_cep/utils/utils.rb +0 -24
- data/lib/via_cep/validators/zipcode.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6acf1f1df8168ec0213dba8cb0f8bc4a1604db9268b29fa30593a9d7323c1eb1
|
4
|
+
data.tar.gz: 9c16eaef9491ad33989a63c49d9c4faaac68b07e572b72a215c676474c96d633
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef87668c195c9c3f288909972af1964c037b77985d76d55d8d3b1f50191bf6cddd762401a66e73778f64d6bc9a1c68e699b330e56da0608b578aa13a5eaed524
|
7
|
+
data.tar.gz: 35ac112a7acc2337c70e5184b15f18961d9e03169aca0e54a4332a243e6f47a853277a16d48357b43f017d9aea8a2d07eab6dbf569329a2a33b3c17a2d9a2f28
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
AllCops:
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
Enabled:
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
SuggestExtensions: false
|
3
|
+
Exclude:
|
4
|
+
- 'spec/**/*.rb'
|
5
|
+
Style/Documentation:
|
6
|
+
Enabled: false
|
7
|
+
Style/HashEachMethods:
|
8
|
+
Enabled: false
|
9
|
+
Lint/MissingSuper:
|
10
|
+
Enabled: false
|
11
|
+
Lint/UriEscapeUnescap:
|
12
|
+
Enabled: false
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
via_cep
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.6.3
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,13 +1,6 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
source 'https://rubygems.org'
|
5
4
|
|
6
5
|
# Specify your gem's dependencies in via_cep.gemspec
|
7
6
|
gemspec
|
8
|
-
|
9
|
-
group :test do
|
10
|
-
gem 'codeclimate-test-reporter', '~> 0.6'
|
11
|
-
gem 'rubocop', '~> 0.49.0'
|
12
|
-
gem 'rspec', '~> 3.5'
|
13
|
-
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
via_cep (3.1.3)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
ast (2.4.2)
|
10
|
+
codeclimate-test-reporter (0.6.0)
|
11
|
+
simplecov (>= 0.7.1, < 1.0.0)
|
12
|
+
diff-lcs (1.4.4)
|
13
|
+
docile (1.3.2)
|
14
|
+
parallel (1.20.1)
|
15
|
+
parser (3.0.0.0)
|
16
|
+
ast (~> 2.4.1)
|
17
|
+
rainbow (3.0.0)
|
18
|
+
rake (13.0.3)
|
19
|
+
regexp_parser (2.1.1)
|
20
|
+
rexml (3.2.4)
|
21
|
+
rspec (3.9.0)
|
22
|
+
rspec-core (~> 3.9.0)
|
23
|
+
rspec-expectations (~> 3.9.0)
|
24
|
+
rspec-mocks (~> 3.9.0)
|
25
|
+
rspec-core (3.9.3)
|
26
|
+
rspec-support (~> 3.9.3)
|
27
|
+
rspec-expectations (3.9.2)
|
28
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
29
|
+
rspec-support (~> 3.9.0)
|
30
|
+
rspec-mocks (3.9.1)
|
31
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
+
rspec-support (~> 3.9.0)
|
33
|
+
rspec-support (3.9.3)
|
34
|
+
rubocop (1.12.0)
|
35
|
+
parallel (~> 1.10)
|
36
|
+
parser (>= 3.0.0.0)
|
37
|
+
rainbow (>= 2.2.2, < 4.0)
|
38
|
+
regexp_parser (>= 1.8, < 3.0)
|
39
|
+
rexml
|
40
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
41
|
+
ruby-progressbar (~> 1.7)
|
42
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
43
|
+
rubocop-ast (1.4.1)
|
44
|
+
parser (>= 2.7.1.5)
|
45
|
+
ruby-progressbar (1.11.0)
|
46
|
+
simplecov (0.19.0)
|
47
|
+
docile (~> 1.1)
|
48
|
+
simplecov-html (~> 0.11)
|
49
|
+
simplecov-html (0.12.3)
|
50
|
+
unicode-display_width (2.0.0)
|
51
|
+
|
52
|
+
PLATFORMS
|
53
|
+
ruby
|
54
|
+
|
55
|
+
DEPENDENCIES
|
56
|
+
codeclimate-test-reporter (~> 0.6)
|
57
|
+
rake (~> 13.0.3)
|
58
|
+
rspec (~> 3.5)
|
59
|
+
rubocop (~> 1.12.0)
|
60
|
+
via_cep!
|
61
|
+
|
62
|
+
BUNDLED WITH
|
63
|
+
2.1.4
|
data/Makefile
ADDED
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/bin/zipcode
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
2
|
# frozen_string_literal: true
|
4
|
-
# encoding: utf-8
|
5
3
|
|
6
|
-
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)
|
4
|
+
$LOAD_PATH.unshift(File.expand_path("#{File.dirname(__FILE__)}/../lib"))
|
7
5
|
require 'via_cep'
|
8
6
|
|
9
|
-
if ARGV.count
|
7
|
+
if ARGV.count.positive?
|
10
8
|
ARGV.each do |zipcode|
|
11
9
|
address = ViaCep::Address.new(zipcode)
|
12
10
|
puts "#{zipcode}:"
|
data/lib/via_cep.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
require 'via_cep/version'
|
@@ -6,22 +5,30 @@ require 'net/http'
|
|
6
5
|
require 'uri'
|
7
6
|
require 'json'
|
8
7
|
|
8
|
+
# Validators
|
9
|
+
require 'via_cep/validators'
|
10
|
+
|
11
|
+
# HTTP
|
12
|
+
require 'via_cep/http'
|
13
|
+
|
9
14
|
# Core
|
10
|
-
require 'via_cep/address'
|
11
15
|
require 'via_cep/methods'
|
16
|
+
require 'via_cep/instance'
|
17
|
+
require 'via_cep/address'
|
12
18
|
require 'via_cep/search_by_address'
|
13
19
|
|
14
|
-
|
15
|
-
|
16
|
-
|
20
|
+
module ViaCep
|
21
|
+
BASE_URL = 'https://viacep.com.br'
|
22
|
+
|
23
|
+
module Errors
|
24
|
+
class ZipcodeNotFound < StandardError; end
|
25
|
+
|
26
|
+
class InvalidZipcodeFormat < StandardError; end
|
17
27
|
|
18
|
-
|
19
|
-
require 'via_cep/errors/invalid_zipcode_format'
|
20
|
-
require 'via_cep/errors/invalid_state_format'
|
21
|
-
require 'via_cep/errors/zipcode_not_found'
|
22
|
-
require 'via_cep/errors/address_not_found'
|
28
|
+
class InvalidStateFormat < StandardError; end
|
23
29
|
|
24
|
-
|
25
|
-
require 'via_cep/utils/utils'
|
30
|
+
class InvalidAddressFormat < StandardError; end
|
26
31
|
|
27
|
-
|
32
|
+
class AddressNotFound < StandardError; end
|
33
|
+
end
|
34
|
+
end
|
data/lib/via_cep/address.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
|
-
require_relative 'methods'
|
5
|
-
|
6
3
|
module ViaCep
|
7
4
|
# Address class
|
8
|
-
class Address
|
5
|
+
class Address < Instance
|
6
|
+
attr_reader :zipcode
|
7
|
+
|
9
8
|
def initialize(zipcode)
|
10
|
-
|
11
|
-
|
9
|
+
@zipcode = zipcode
|
10
|
+
valid?
|
11
|
+
call_service
|
12
|
+
rescue JSON::ParserError, Net::HTTPBadRequest
|
13
|
+
raise ViaCep::Errors::ZipcodeNotFound
|
14
|
+
end
|
12
15
|
|
13
|
-
|
14
|
-
Zipcode.valid?(zipcode)
|
16
|
+
private
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
+
def call_service
|
19
|
+
response = JSON.parse(ViaCep::HTTP.get(path: zipcode).body)
|
20
|
+
raise ViaCep::Errors::ZipcodeNotFound if response['erro']
|
18
21
|
|
19
|
-
|
20
|
-
end
|
22
|
+
define_attributes(response)
|
21
23
|
end
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
-
@response[response_method_name]
|
26
|
-
end
|
25
|
+
def valid?
|
26
|
+
raise ViaCep::Errors::InvalidZipcodeFormat unless ViaCep::Validators::Zipcode.valid?(zipcode)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
data/lib/via_cep/http.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ViaCep
|
4
|
+
module HTTP
|
5
|
+
def self.get(path:, query: {})
|
6
|
+
uri = URI(BASE_URL)
|
7
|
+
uri.path = "/ws/#{URI.encode(path)}/json"
|
8
|
+
uri.query = URI.encode_www_form(query)
|
9
|
+
|
10
|
+
Net::HTTP.get_response(uri)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.was_successful?(request)
|
14
|
+
request.code.eql?('200')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ViaCep
|
4
|
+
class Instance
|
5
|
+
def define_attributes(response)
|
6
|
+
ViaCep::METHODS.each do |method_name, response_key|
|
7
|
+
value = response[response_key.to_s]
|
8
|
+
|
9
|
+
instance_variable_set("@#{method_name}", value)
|
10
|
+
self.class.define_method(method_name) do
|
11
|
+
instance_variable_get("@#{method_name}")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/via_cep/methods.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
module ViaCep
|
5
4
|
# Translate methods allows us to use metaprogramming.
|
6
5
|
METHODS = {
|
7
|
-
zipcode:
|
8
|
-
street:
|
9
|
-
complement:
|
10
|
-
neighborhood:
|
11
|
-
city:
|
12
|
-
state:
|
13
|
-
ibge:
|
14
|
-
gia:
|
6
|
+
zipcode: :cep,
|
7
|
+
street: :logradouro,
|
8
|
+
complement: :complemento,
|
9
|
+
neighborhood: :bairro,
|
10
|
+
city: :localidade,
|
11
|
+
state: :uf,
|
12
|
+
ibge: :ibge,
|
13
|
+
gia: :gia,
|
14
|
+
error: :erro
|
15
15
|
}.freeze
|
16
16
|
end
|
@@ -1,28 +1,36 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
|
-
require_relative 'methods'
|
5
|
-
|
6
3
|
module ViaCep
|
7
4
|
# Search an address
|
8
|
-
class SearchByAddress
|
5
|
+
class SearchByAddress < Instance
|
6
|
+
attr_reader :state, :city, :street
|
7
|
+
|
9
8
|
def initialize(state:, city:, street:)
|
10
|
-
|
11
|
-
|
9
|
+
@state = state
|
10
|
+
@city = city
|
11
|
+
@street = street
|
12
12
|
|
13
|
-
|
13
|
+
valid?
|
14
|
+
call_service
|
15
|
+
rescue JSON::ParserError, Net::HTTPBadRequest
|
16
|
+
raise ViaCep::Errors::AddressNotFound
|
17
|
+
end
|
14
18
|
|
15
|
-
|
16
|
-
request = Net::HTTP.get_response(uri)
|
19
|
+
private
|
17
20
|
|
18
|
-
|
19
|
-
raise ViaCep::Errors::
|
21
|
+
def valid?
|
22
|
+
raise ViaCep::Errors::InvalidStateFormat unless ViaCep::Validators::State.valid?(state)
|
23
|
+
raise ViaCep::Errors::InvalidAddressFormat unless city || state
|
20
24
|
end
|
21
25
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
+
def call_service
|
27
|
+
request = HTTP.get(path: "#{state}/#{city}/#{street}")
|
28
|
+
raise ViaCep::Errors::AddressNotFound unless HTTP.was_successful?(request)
|
29
|
+
|
30
|
+
response = JSON.parse(request.body)
|
31
|
+
raise ViaCep::Errors::AddressNotFound if response.length.eql?(0)
|
32
|
+
|
33
|
+
define_attributes(response[0])
|
26
34
|
end
|
27
35
|
end
|
28
36
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
module ViaCep
|
@@ -7,15 +6,21 @@ module ViaCep
|
|
7
6
|
module State
|
8
7
|
class << self
|
9
8
|
def valid?(state)
|
10
|
-
states.include?(state.to_s)
|
11
|
-
end
|
12
|
-
|
13
|
-
def states
|
14
9
|
%w[
|
15
10
|
AC AL AP AM BA CE DF ES GO
|
16
11
|
MA MT MS MG PR PB PA PE PI
|
17
12
|
RJ RN RS RO RR SC SE SP TO
|
18
|
-
]
|
13
|
+
].include?(state.to_s)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# Zipcode validator
|
19
|
+
module Zipcode
|
20
|
+
class << self
|
21
|
+
def valid?(zipcode)
|
22
|
+
zipcode = zipcode.to_s
|
23
|
+
!!zipcode.match(/^[0-9]{5}(-)[0-9]{3}$/) || !!zipcode.match(/^[0-9]{8}$/)
|
19
24
|
end
|
20
25
|
end
|
21
26
|
end
|
data/lib/via_cep/version.rb
CHANGED
data/via_cep.gemspec
CHANGED
@@ -1,26 +1,29 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
|
-
lib = File.expand_path('
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
5
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
5
|
require 'via_cep/version'
|
7
6
|
|
8
|
-
Gem::Specification.new do |
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = 'via_cep'
|
9
|
+
spec.version = ViaCep::VERSION
|
10
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.6')
|
11
|
+
spec.authors = ['Marcelo Barreto (@marcelobarreto)']
|
12
|
+
spec.email = ['marcelobarretojunior@gmail.com']
|
13
|
+
spec.summary = 'Brazillian zip-code information'
|
14
|
+
spec.homepage = 'http://www.github.com/marcelobarreto/via_cep'
|
15
|
+
spec.license = 'MIT'
|
16
16
|
|
17
|
-
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
18
|
f.match(%r{^(test|spec|features)/})
|
19
19
|
end
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
spec.bindir = 'bin'
|
22
|
+
spec.executables = ['zipcode']
|
23
|
+
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
|
25
|
+
spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.6'
|
26
|
+
spec.add_development_dependency 'rake', '~> 13.0.3'
|
27
|
+
spec.add_development_dependency 'rspec', '~> 3.5'
|
28
|
+
spec.add_development_dependency 'rubocop', '~> 1.12.0'
|
26
29
|
end
|
metadata
CHANGED
@@ -1,29 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: via_cep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcelo Barreto (@marcelobarreto)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: codeclimate-test-reporter
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
type: :
|
19
|
+
version: '0.6'
|
20
|
+
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0.6'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 13.0.3
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 13.0.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.5'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.12.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.12.0
|
27
69
|
description:
|
28
70
|
email:
|
29
71
|
- marcelobarretojunior@gmail.com
|
@@ -36,10 +78,14 @@ files:
|
|
36
78
|
- ".gitignore"
|
37
79
|
- ".rspec"
|
38
80
|
- ".rubocop.yml"
|
81
|
+
- ".ruby-gemset"
|
82
|
+
- ".ruby-version"
|
39
83
|
- ".travis.yml"
|
40
84
|
- CODE_OF_CONDUCT.md
|
41
85
|
- Gemfile
|
86
|
+
- Gemfile.lock
|
42
87
|
- LICENSE.txt
|
88
|
+
- Makefile
|
43
89
|
- README.md
|
44
90
|
- Rakefile
|
45
91
|
- bin/console
|
@@ -47,15 +93,11 @@ files:
|
|
47
93
|
- bin/zipcode
|
48
94
|
- lib/via_cep.rb
|
49
95
|
- lib/via_cep/address.rb
|
50
|
-
- lib/via_cep/
|
51
|
-
- lib/via_cep/
|
52
|
-
- lib/via_cep/errors/invalid_zipcode_format.rb
|
53
|
-
- lib/via_cep/errors/zipcode_not_found.rb
|
96
|
+
- lib/via_cep/http.rb
|
97
|
+
- lib/via_cep/instance.rb
|
54
98
|
- lib/via_cep/methods.rb
|
55
99
|
- lib/via_cep/search_by_address.rb
|
56
|
-
- lib/via_cep/
|
57
|
-
- lib/via_cep/validators/state.rb
|
58
|
-
- lib/via_cep/validators/zipcode.rb
|
100
|
+
- lib/via_cep/validators.rb
|
59
101
|
- lib/via_cep/version.rb
|
60
102
|
- via_cep.gemspec
|
61
103
|
homepage: http://www.github.com/marcelobarreto/via_cep
|
@@ -70,15 +112,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
70
112
|
requirements:
|
71
113
|
- - ">="
|
72
114
|
- !ruby/object:Gem::Version
|
73
|
-
version: '
|
115
|
+
version: '2.6'
|
74
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
117
|
requirements:
|
76
118
|
- - ">="
|
77
119
|
- !ruby/object:Gem::Version
|
78
120
|
version: '0'
|
79
121
|
requirements: []
|
80
|
-
|
81
|
-
rubygems_version: 2.7.9
|
122
|
+
rubygems_version: 3.0.9
|
82
123
|
signing_key:
|
83
124
|
specification_version: 4
|
84
125
|
summary: Brazillian zip-code information
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module ViaCep
|
5
|
-
module Errors
|
6
|
-
# This class is responsible to show an error
|
7
|
-
class AddressNotFound < ArgumentError
|
8
|
-
attr_reader :message
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
@message = 'Not found anything for that address'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module ViaCep
|
5
|
-
module Errors
|
6
|
-
# This class is responsible to show an error
|
7
|
-
class InvalidStateFormat < ArgumentError
|
8
|
-
attr_reader :message
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
@message = 'State has an invalid format'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module ViaCep
|
5
|
-
module Errors
|
6
|
-
# This class is responsible to show an error
|
7
|
-
class InvalidZipcodeFormat < ArgumentError
|
8
|
-
attr_reader :message
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
@message = 'Zipcode has an invalid format'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module ViaCep
|
5
|
-
module Errors
|
6
|
-
# This class is responsible to show an error
|
7
|
-
class ZipcodeNotFound < StandardError
|
8
|
-
attr_reader :message
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
@message = 'Not found anything for that zipcode'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/via_cep/utils/utils.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require 'active_support/all'
|
5
|
-
|
6
|
-
module ViaCep
|
7
|
-
# Utils module
|
8
|
-
class Utils
|
9
|
-
class << self
|
10
|
-
def handle_whitespaces(string)
|
11
|
-
string.split(' ').join('%20')
|
12
|
-
end
|
13
|
-
|
14
|
-
def handle_accents(string)
|
15
|
-
ActiveSupport::Inflector.transliterate(string)
|
16
|
-
end
|
17
|
-
|
18
|
-
def parameterize(string)
|
19
|
-
string = handle_accents(string)
|
20
|
-
handle_whitespaces(string)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module ViaCep
|
5
|
-
module Validators
|
6
|
-
# Zipcode validator
|
7
|
-
module Zipcode
|
8
|
-
class << self
|
9
|
-
def valid?(zipcode)
|
10
|
-
zipcode = zipcode.to_s
|
11
|
-
|
12
|
-
return true if match_regex?(zipcode)
|
13
|
-
end
|
14
|
-
|
15
|
-
def match_regex?(zipcode)
|
16
|
-
zipcode = zipcode.to_s
|
17
|
-
zipcode.match(/^[0-9]{5}(-)[0-9]{3}$/) || zipcode.match(/^[0-9]{8}$/)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|