viacep 2.0.2 → 2.0.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/CHANGELOG.md +30 -0
- data/LICENSE +21 -0
- data/README.md +20 -25
- data/_config.yml +1 -0
- data/lib/viacep.rb +1 -1
- data/lib/viacep/address.rb +21 -1
- data/lib/viacep/service.rb +19 -1
- data/spec/address_spec.rb +19 -13
- data/spec/mock/request_mocker.rb +28 -0
- data/spec/mock/viacep_invalid_format.txt +8 -0
- data/spec/mock/viacep_not_found.txt +17 -0
- data/spec/mock/viacep_success.txt +25 -0
- data/spec/service_spec.rb +10 -6
- data/spec/spec_helper.rb +9 -0
- data/viacep.gemspec +3 -2
- metadata +24 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d996e5aa0ad22ffabeddff59c6e01715e82506cb67ba9161c7b706c0bf3b1231
|
4
|
+
data.tar.gz: 511ab0884767f8c4534454ce935dde9d6da9a7e7571e72b8f72caa2c875a2bc3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8822385880160352463509f979354cd456dc72edc85f14906ab69d7d03a1a09c06c76b32d62f3daf9a449c7669a015304be9c0ecf680f1ce6f89996840a1cffb
|
7
|
+
data.tar.gz: 5debef0f5bd8b1babb8b268f82b62872a44d0ce59ce4f0e731e77209ebcb5a03b5e00300506abd448698fd080d12086d7186eee4b8a1633c5063adbd513aa3ef
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
5
|
+
|
6
|
+
## Unreleased
|
7
|
+
### Added
|
8
|
+
N/A
|
9
|
+
|
10
|
+
### Changed
|
11
|
+
N/A
|
12
|
+
|
13
|
+
### Deprecated
|
14
|
+
N/A
|
15
|
+
|
16
|
+
### Removed
|
17
|
+
N/A
|
18
|
+
|
19
|
+
### Fixed
|
20
|
+
N/A
|
21
|
+
|
22
|
+
### Security
|
23
|
+
N/A
|
24
|
+
|
25
|
+
## [2.0.3] - 2019-07-20
|
26
|
+
### Added
|
27
|
+
- Create CHANGELOG.md file to track changes.
|
28
|
+
|
29
|
+
### Fixed
|
30
|
+
- Improve public API documentation
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2019 Vinicius Brasil
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
CHANGED
@@ -1,55 +1,50 @@
|
|
1
1
|
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/BRA_orthographic.svg/270px-BRA_orthographic.svg.png" align="right" />
|
2
2
|
|
3
|
-
# viacep [](https://github.com/vnbrs/burocracia.cr/blob/master/LICENSE)
|
4
|
-
>
|
3
|
+
# viacep  [](https://github.com/vnbrs/burocracia.cr/blob/master/LICENSE)
|
4
|
+
> Dependency-less zipcode lookup gem for Brazilian addresses with an easy-to-use API and useful features such as timeout.
|
5
5
|
|
6
|
-
##
|
6
|
+
## Installing
|
7
7
|
|
8
|
-
|
8
|
+
You can easily install viacep through [RubyGems](https://rubygems.org/gems/viacep/):
|
9
9
|
|
10
10
|
```shell
|
11
11
|
gem install viacep
|
12
|
-
=>
|
12
|
+
=> Rock on! 🚀
|
13
13
|
```
|
14
14
|
|
15
|
-
|
15
|
+
or add the following to your Gemfile:
|
16
16
|
|
17
17
|
```shell
|
18
|
-
|
19
|
-
=> Gem instalada no Gemfile! 🤓
|
18
|
+
gem "viacep"
|
20
19
|
```
|
21
20
|
|
22
|
-
##
|
21
|
+
## Usage
|
23
22
|
|
24
23
|
```ruby
|
25
24
|
require 'viacep'
|
26
25
|
|
27
|
-
#
|
26
|
+
# with unformatted zipcodes... =)
|
28
27
|
ViaCep::Address.new('80210130')
|
29
28
|
=> #<ViaCep::Address:0x00007fe52a8a0568 @cep="80210-130", @address="Rua José Ananias Mauad", @neighborhood="Jardim Botânico", @city="Curitiba", @state="PR", @ibge="4106902", @gia="">
|
30
29
|
|
31
|
-
#
|
30
|
+
# with formatted zipcodes... =)
|
32
31
|
ViaCep::Address.new('13035-680')
|
33
32
|
=> #<ViaCep::Address:0x00007fe52a99e730 @cep="13035-680", @address="Avenida João Jorge", @neighborhood="Vila Industrial", @city="Campinas", @state="SP", @ibge="3509502", @gia="2446">
|
34
33
|
|
35
|
-
#
|
36
|
-
ViaCep::Address.new('
|
34
|
+
# or even an nonexistent zipcode... =(
|
35
|
+
ViaCep::Address.new('12345678')
|
37
36
|
=> exception thrown: ViaCep::ApiRequestError
|
38
37
|
|
39
|
-
#
|
38
|
+
# and specifying a timeout in seconds... =)
|
40
39
|
ViaCep::Address.new('80210130', timeout: 0.2)
|
41
40
|
=> exception thrown: Timeout::Error (execution expired)
|
42
41
|
```
|
43
42
|
|
44
|
-
##
|
43
|
+
## Contributing
|
45
44
|
|
46
|
-
1.
|
47
|
-
2.
|
48
|
-
3.
|
49
|
-
4.
|
50
|
-
5.
|
51
|
-
6.
|
52
|
-
|
53
|
-
## Contribuidores
|
54
|
-
|
55
|
-
- [vnbrs](https://github.com/vnbrs) Vinicius Brasil - creator, maintainer
|
45
|
+
1. Create a fork (https://github.com/vnbrs/viacep/fork)
|
46
|
+
2. Create a branch (git checkout -b my-new-feature)
|
47
|
+
3. Make a commit (git commit -am 'Add some feature')
|
48
|
+
4. Push your code (git push origin my-new-feature)
|
49
|
+
5. Create a Pull Request
|
50
|
+
6. Thanks! 🤙🏼
|
data/_config.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
theme: jekyll-theme-minimal
|
data/lib/viacep.rb
CHANGED
data/lib/viacep/address.rb
CHANGED
@@ -4,7 +4,27 @@ module ViaCep
|
|
4
4
|
class Address
|
5
5
|
attr_reader :cep, :address, :neighborhood, :city, :state, :ibge, :gia
|
6
6
|
|
7
|
-
#
|
7
|
+
#
|
8
|
+
# Initializes an instance of ViaCep::Address and fetches the CEP using the external API.
|
9
|
+
#
|
10
|
+
# @example Fetch a CEP
|
11
|
+
# ViaCep::Address.new('80210130')
|
12
|
+
# #=> #<ViaCep::Address:0x00007fe52a8a0568 @cep="80210-130", @address="Rua José Ananias Mauad", @neighborhood="Jardim Botânico", @city="Curitiba", @state="PR", @ibge="4106902", @gia="">
|
13
|
+
#
|
14
|
+
# @example Fetch a CEP with a formatted string
|
15
|
+
# ViaCep::Address.new('80210-130')
|
16
|
+
# #=> #<ViaCep::Address:0x00007fe52a8a0568 @cep="80210-130", @address="Rua José Ananias Mauad", @neighborhood="Jardim Botânico", @city="Curitiba", @state="PR", @ibge="4106902", @gia="">
|
17
|
+
#
|
18
|
+
# @param [String] cep The CEP to be fetched.
|
19
|
+
# @option options [Integer] :timeout The timeout in seconds to the request.
|
20
|
+
#
|
21
|
+
# @raise [ArgumentError] This is raised when CEP is nil.
|
22
|
+
# @raise [ArgumentError] This is raised when CEP format is invalid.
|
23
|
+
# @raise [ViaCep::ApiRequestError] This is raised when the external API is down or the CEP does not exist.
|
24
|
+
# @raise [Timeout::Error] This is raised when the timeout argument is specified and the request timed out.
|
25
|
+
#
|
26
|
+
# @return [ViaCep::Address]
|
27
|
+
#
|
8
28
|
def initialize(cep, options = {})
|
9
29
|
if cep.nil?
|
10
30
|
raise ArgumentError, 'CEP cannot be nil'
|
data/lib/viacep/service.rb
CHANGED
@@ -8,7 +8,25 @@ module ViaCep
|
|
8
8
|
class Service
|
9
9
|
BASE_URL = 'https://viacep.com.br/ws'.freeze
|
10
10
|
|
11
|
-
#
|
11
|
+
#
|
12
|
+
# Fetches the ViaCEP API to request a CEP.
|
13
|
+
#
|
14
|
+
# @example Fetch a CEP with no timeout.
|
15
|
+
# ViaCep::Service.fetch('80210130', nil)
|
16
|
+
# #=> {"cep"=>"80210-130", "logradouro"=>"Rua José Ananias Mauad", "complemento"=>"", "bairro"=>"Jardim Botânico", "localidade"=>"Curitiba", "uf"=>"PR", "unidade"=>"", "ibge"=>"4106902", "gia"=>""}
|
17
|
+
#
|
18
|
+
# @example Fetch a CEP with a timeout of 30 seconds.
|
19
|
+
# ViaCep::Service.fetch('80210130', 30)
|
20
|
+
# #=> {"cep"=>"80210-130", "logradouro"=>"Rua José Ananias Mauad", "complemento"=>"", "bairro"=>"Jardim Botânico", "localidade"=>"Curitiba", "uf"=>"PR", "unidade"=>"", "ibge"=>"4106902", "gia"=>""}
|
21
|
+
#
|
22
|
+
# @param [String] cep The CEP to be fetched.
|
23
|
+
# @param [Integer, nil] timeout The timeout in seconds for the request to be finished.
|
24
|
+
#
|
25
|
+
# @raise [ViaCep::ApiRequestError] This is raised when the external API is down or the CEP does not exist.
|
26
|
+
# @raise [Timeout::Error] This is raised when the timeout argument is specified and the request timed out.
|
27
|
+
#
|
28
|
+
# @return [Hash]
|
29
|
+
#
|
12
30
|
def self.fetch(cep, timeout)
|
13
31
|
Timeout.timeout(timeout) do
|
14
32
|
uri = URI("#{BASE_URL}/#{cep}/json")
|
data/spec/address_spec.rb
CHANGED
@@ -1,45 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
1
3
|
RSpec.describe ViaCep::Address do
|
2
4
|
describe '#initialize' do
|
3
5
|
context 'when a valid CEP is passed' do
|
4
|
-
subject(:address) { ViaCep::Address.new('80210130') }
|
5
|
-
|
6
6
|
it 'returns the Address' do
|
7
|
+
mock_viacep_success
|
8
|
+
|
9
|
+
address = ViaCep::Address.new('80210130')
|
7
10
|
expect(address.address).not_to be_empty
|
8
11
|
end
|
9
12
|
end
|
10
13
|
|
11
14
|
context 'when a invalid length CEP is passed' do
|
12
15
|
it 'raises ArgumentError' do
|
13
|
-
expect { ViaCep::Address.new('000000') }
|
14
|
-
to raise_error(ArgumentError)
|
16
|
+
expect { ViaCep::Address.new('000000') }
|
17
|
+
.to raise_error(ArgumentError)
|
15
18
|
end
|
16
19
|
end
|
17
20
|
|
18
21
|
context 'when a unexistent CEP is passed' do
|
19
22
|
it 'raises ViaCep::ApiRequestError' do
|
20
|
-
|
21
|
-
|
23
|
+
mock_viacep_not_found
|
24
|
+
expect { ViaCep::Address.new('00000000') }
|
25
|
+
.to raise_error(ViaCep::ApiRequestError)
|
22
26
|
end
|
23
27
|
end
|
24
|
-
|
28
|
+
|
25
29
|
context 'when a nil CEP is passed' do
|
26
30
|
it 'raises ArgumentError' do
|
27
|
-
expect { ViaCep::Address.new(nil) }
|
28
|
-
to raise_error(ArgumentError)
|
31
|
+
expect { ViaCep::Address.new(nil) }
|
32
|
+
.to raise_error(ArgumentError)
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
32
36
|
context 'when a low timeout is specified' do
|
33
37
|
it 'raises a Timeout::Error' do
|
34
|
-
|
35
|
-
|
38
|
+
mock_viacep_slow_success(delay_in_seconds: 0.01)
|
39
|
+
expect { ViaCep::Address.new('80210130', timeout: 0.001) }
|
40
|
+
.to raise_error(Timeout::Error)
|
36
41
|
end
|
37
42
|
end
|
38
43
|
|
39
44
|
context 'when a regular timeout is specified' do
|
40
|
-
subject(:address) { ViaCep::Address.new('80210130', timeout: 25) }
|
41
|
-
|
42
45
|
it 'returns the Address' do
|
46
|
+
mock_viacep_success
|
47
|
+
|
48
|
+
address = ViaCep::Address.new('80210130', timeout: 3.0)
|
43
49
|
expect(address.address).not_to be_empty
|
44
50
|
end
|
45
51
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'webmock/rspec'
|
2
|
+
|
3
|
+
module ViaCep
|
4
|
+
module Test
|
5
|
+
module RequestMocker
|
6
|
+
def mock_viacep_success
|
7
|
+
WebMock.stub_request(:get, /viacep/).to_return(File.new("#{__dir__}/viacep_success.txt"))
|
8
|
+
end
|
9
|
+
|
10
|
+
def mock_viacep_not_found
|
11
|
+
WebMock.stub_request(:get, /viacep/).to_return(File.new("#{__dir__}/viacep_not_found.txt"))
|
12
|
+
end
|
13
|
+
|
14
|
+
def mock_viacep_invalid_format
|
15
|
+
WebMock.stub_request(:get, /viacep/).to_return(File.new("#{__dir__}/viacep_invalid_format.txt"))
|
16
|
+
end
|
17
|
+
|
18
|
+
def mock_viacep_slow_success(delay_in_seconds:)
|
19
|
+
success = lambda do |request|
|
20
|
+
sleep delay_in_seconds
|
21
|
+
File.new("#{__dir__}/viacep_success.txt")
|
22
|
+
end
|
23
|
+
|
24
|
+
WebMock.stub_request(:get, /viacep/).to_return(success)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Server: nginx/1.14.0
|
3
|
+
Date: Thu, 14 Feb 2019 23:34:10 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Transfer-Encoding: chunked
|
6
|
+
Connection: keep-alive
|
7
|
+
Access-Control-Allow-Origin: *
|
8
|
+
Access-Control-Allow-Methods: GET, OPTIONS
|
9
|
+
Access-Control-Allow-Headers: Content-Type, X-Request-With, X-Requested-By
|
10
|
+
Access-Control-Allow-Credentials: true
|
11
|
+
Access-Control-Max-Age: 86400
|
12
|
+
Cache-Control: max-age=3600
|
13
|
+
Cache-Control: public
|
14
|
+
|
15
|
+
{
|
16
|
+
"erro": true
|
17
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Server: nginx/1.14.0
|
3
|
+
Date: Thu, 14 Feb 2019 23:32:54 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Transfer-Encoding: chunked
|
6
|
+
Connection: keep-alive
|
7
|
+
Access-Control-Allow-Origin: *
|
8
|
+
Access-Control-Allow-Methods: GET, OPTIONS
|
9
|
+
Access-Control-Allow-Headers: Content-Type, X-Request-With, X-Requested-By
|
10
|
+
Access-Control-Allow-Credentials: true
|
11
|
+
Access-Control-Max-Age: 86400
|
12
|
+
Cache-Control: max-age=3600
|
13
|
+
Cache-Control: public
|
14
|
+
|
15
|
+
{
|
16
|
+
"cep": "13035-680",
|
17
|
+
"logradouro": "Avenida João Jorge",
|
18
|
+
"complemento": "",
|
19
|
+
"bairro": "Vila Industrial",
|
20
|
+
"localidade": "Campinas",
|
21
|
+
"uf": "SP",
|
22
|
+
"unidade": "",
|
23
|
+
"ibge": "3509502",
|
24
|
+
"gia": "2446"
|
25
|
+
}
|
data/spec/service_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
1
3
|
RSpec.describe ViaCep::Service do
|
2
4
|
it 'should have a base URL' do
|
3
5
|
expect(ViaCep::Service::BASE_URL).not_to be_empty
|
@@ -6,23 +8,25 @@ RSpec.describe ViaCep::Service do
|
|
6
8
|
describe '.fetch' do
|
7
9
|
context 'when a small timeout is specified' do
|
8
10
|
it 'raises Timeout::Error' do
|
9
|
-
|
10
|
-
|
11
|
+
mock_viacep_slow_success(delay_in_seconds: 0.01)
|
12
|
+
expect { ViaCep::Service.fetch('80210130', 0.001) }
|
13
|
+
.to raise_error(Timeout::Error)
|
11
14
|
end
|
12
15
|
end
|
13
16
|
|
14
17
|
context 'when a suficient timeout is specified' do
|
15
|
-
subject(:response) { ViaCep::Service.fetch('80210130', 25) }
|
16
|
-
|
17
18
|
it 'returns the response' do
|
19
|
+
mock_viacep_success
|
20
|
+
response = ViaCep::Service.fetch('80210130', 5.0)
|
18
21
|
expect(response).not_to be_empty
|
19
22
|
end
|
20
23
|
end
|
21
24
|
|
22
25
|
context 'when a invalid CEP is passed' do
|
23
26
|
it 'raises ViaCep::ApiRequestError' do
|
24
|
-
|
25
|
-
|
27
|
+
mock_viacep_invalid_format
|
28
|
+
expect { ViaCep::Service.fetch('000000', nil) }
|
29
|
+
.to raise_error(ViaCep::ApiRequestError)
|
26
30
|
end
|
27
31
|
end
|
28
32
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require_relative '../lib/viacep'
|
2
|
+
require_relative './mock/request_mocker'
|
3
|
+
require 'webmock/rspec'
|
2
4
|
|
3
5
|
RSpec.configure do |config|
|
6
|
+
config.include ViaCep::Test::RequestMocker
|
7
|
+
|
4
8
|
config.expect_with :rspec do |expectations|
|
5
9
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
6
10
|
expectations.syntax = :expect
|
@@ -12,4 +16,9 @@ RSpec.configure do |config|
|
|
12
16
|
|
13
17
|
config.shared_context_metadata_behavior = :apply_to_host_groups
|
14
18
|
config.order = :random
|
19
|
+
|
20
|
+
config.before(:each) do
|
21
|
+
WebMock.reset!
|
22
|
+
WebMock.disable_net_connect!
|
23
|
+
end
|
15
24
|
end
|
data/viacep.gemspec
CHANGED
@@ -7,12 +7,13 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.summary = 'Gem sem dependências e fácil de usar para busca de endereços a partir do CEP utilizando o ViaCEP'
|
8
8
|
s.description = 'Gem sem dependências e fácil de usar para busca de endereços a partir do CEP utilizando o ViaCEP'
|
9
9
|
s.authors = ['Vinicius Brasil (@vnbrs)']
|
10
|
-
s.email = '
|
10
|
+
s.email = 'vini@hey.com'
|
11
11
|
s.license = 'MIT'
|
12
12
|
s.homepage = 'https://github.com/vnbrs/viacep'
|
13
13
|
|
14
14
|
s.require_paths = ['lib']
|
15
15
|
s.files = `git ls-files | grep -Ev '^(test|doc|examples|.yardoc|.github)'`.split("\n")
|
16
16
|
|
17
|
-
s.add_development_dependency 'rspec',
|
17
|
+
s.add_development_dependency 'rspec', '~> 3.7'
|
18
|
+
s.add_development_dependency 'webmock', '~> 3.8.3'
|
18
19
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: viacep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vinicius Brasil (@vnbrs)
|
@@ -24,22 +24,43 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: webmock
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.8.3
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.8.3
|
27
41
|
description: Gem sem dependências e fácil de usar para busca de endereços a partir
|
28
42
|
do CEP utilizando o ViaCEP
|
29
|
-
email:
|
43
|
+
email: vini@hey.com
|
30
44
|
executables: []
|
31
45
|
extensions: []
|
32
46
|
extra_rdoc_files: []
|
33
47
|
files:
|
34
48
|
- ".editorconfig"
|
35
49
|
- ".gitignore"
|
50
|
+
- CHANGELOG.md
|
36
51
|
- Gemfile
|
52
|
+
- LICENSE
|
37
53
|
- README.md
|
54
|
+
- _config.yml
|
38
55
|
- lib/viacep.rb
|
39
56
|
- lib/viacep/address.rb
|
40
57
|
- lib/viacep/exceptions.rb
|
41
58
|
- lib/viacep/service.rb
|
42
59
|
- spec/address_spec.rb
|
60
|
+
- spec/mock/request_mocker.rb
|
61
|
+
- spec/mock/viacep_invalid_format.txt
|
62
|
+
- spec/mock/viacep_not_found.txt
|
63
|
+
- spec/mock/viacep_success.txt
|
43
64
|
- spec/service_spec.rb
|
44
65
|
- spec/spec_helper.rb
|
45
66
|
- viacep.gemspec
|
@@ -62,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
83
|
- !ruby/object:Gem::Version
|
63
84
|
version: '0'
|
64
85
|
requirements: []
|
65
|
-
rubygems_version: 3.
|
86
|
+
rubygems_version: 3.1.2
|
66
87
|
signing_key:
|
67
88
|
specification_version: 4
|
68
89
|
summary: Gem sem dependências e fácil de usar para busca de endereços a partir do
|