cep_brasil 0.1.0 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d53021361fb68730a701385ff2abe081177446dfed920d1a2f1cb487ecef69ce
4
- data.tar.gz: c7bdb7c8edec93a21d3f464b2b20a1cc415bdb61934a6623b29c9bc2e27f08b4
3
+ metadata.gz: f36c71e09a1e2c3b0fc52c7641a6c30a4bbd888963eab081752deac89b40fdc4
4
+ data.tar.gz: 77f748f877b35b73bc378cfc648676323b42799c867b43c5b6b421d6a10c2981
5
5
  SHA512:
6
- metadata.gz: cb3c3d40bc9eadb66bcacfa4e081f888d16b8d5ee27cea456a8a656315805fb0b5cf4de78cf350eb9251566ba1a29c33dca0da37a66a5e3de42f532706b44662
7
- data.tar.gz: 864af5814cec3565681207b0b8c818f368acc36d411b2459a63a70271684de14a49613c9e0d7bf824b3185474dbcc68e52b013c718715a97b2955a3b252173af
6
+ metadata.gz: ecc614e93e40eab14aabad9817b7fa6d0e47d01be6313b9dce79a5a3f55da48471f3096cb872b70fa2652f25021bf5f7732d802a61c76590c9e640f11fa28a36
7
+ data.tar.gz: 7d7dce675606583a230100b4292abd7b0b4fce9d1aa42edbeadbfb654c7edf33ca8505c73cbac31ee4f130b8f458ce3685b43bc986e1ca3dd9b542d42e9ea0e0
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in cep_brasil.gemspec
4
- gemspec
4
+ gemspec
@@ -1,41 +1,43 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cep_brasil (0.1.0)
4
+ cep_brasil (0.1.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- diff-lcs (1.3)
9
+ diff-lcs (1.4.4)
10
10
  domain_name (0.5.20190701)
11
11
  unf (>= 0.0.5, < 1.0.0)
12
+ http-accept (1.7.0)
12
13
  http-cookie (1.0.3)
13
14
  domain_name (~> 0.5)
14
- mime-types (3.2.2)
15
+ mime-types (3.3.1)
15
16
  mime-types-data (~> 3.2015)
16
- mime-types-data (3.2019.0331)
17
+ mime-types-data (3.2020.0512)
17
18
  netrc (0.11.0)
18
- rake (10.5.0)
19
- rest-client (2.0.2)
19
+ rake (13.0.1)
20
+ rest-client (2.1.0)
21
+ http-accept (>= 1.7.0, < 2.0)
20
22
  http-cookie (>= 1.0.2, < 2.0)
21
23
  mime-types (>= 1.16, < 4.0)
22
24
  netrc (~> 0.8)
23
- rspec (3.8.0)
24
- rspec-core (~> 3.8.0)
25
- rspec-expectations (~> 3.8.0)
26
- rspec-mocks (~> 3.8.0)
27
- rspec-core (3.8.2)
28
- rspec-support (~> 3.8.0)
29
- rspec-expectations (3.8.4)
25
+ rspec (3.9.0)
26
+ rspec-core (~> 3.9.0)
27
+ rspec-expectations (~> 3.9.0)
28
+ rspec-mocks (~> 3.9.0)
29
+ rspec-core (3.9.2)
30
+ rspec-support (~> 3.9.3)
31
+ rspec-expectations (3.9.2)
30
32
  diff-lcs (>= 1.2.0, < 2.0)
31
- rspec-support (~> 3.8.0)
32
- rspec-mocks (3.8.1)
33
+ rspec-support (~> 3.9.0)
34
+ rspec-mocks (3.9.1)
33
35
  diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.8.0)
35
- rspec-support (3.8.2)
36
+ rspec-support (~> 3.9.0)
37
+ rspec-support (3.9.3)
36
38
  unf (0.1.4)
37
39
  unf_ext
38
- unf_ext (0.0.7.6)
40
+ unf_ext (0.0.7.7)
39
41
 
40
42
  PLATFORMS
41
43
  ruby
@@ -43,9 +45,9 @@ PLATFORMS
43
45
  DEPENDENCIES
44
46
  bundler (~> 2.0)
45
47
  cep_brasil!
46
- rake (~> 10.0)
48
+ rake (~> 13.0)
47
49
  rest-client
48
50
  rspec (~> 3.0)
49
51
 
50
52
  BUNDLED WITH
51
- 2.0.2
53
+ 2.1.4
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CepBrasil
2
2
 
3
- This gem was created to make my applications tests more easy. I will do it some updates and I'll be happy if you want to help me
3
+ This gem was created to make my applications tests more easy. I will update soon and I'll be happy if you want to help me
4
4
 
5
5
 
6
6
  ## Installation
@@ -31,14 +31,20 @@ require 'cep_brasil'
31
31
 
32
32
  #Generates a Random CEP
33
33
 
34
- CepBrasil::Random.generate_formated #=> "010050-101"
34
+ CepBrasil::Random.generate_formatted #=> "010050-101"
35
+
36
+ or
37
+
38
+ CepBrasil::Random.generate_formatted('12345678') #=> "12345-678"
35
39
 
36
40
  #Create a address object by pass a CEP and content type, ex: json, xml
37
41
 
38
- endereco = CepBrasil::Address::Generate.new('01001001', 'json') #=> "Object"
42
+ endereco = CepBrasil::Address::Generate.new('01001001', 'json') #=> "<Address Object>"
39
43
  endereco.cep #=> "010050-101"
40
44
  endereco.logradouro #=> "Praça da Sé"
41
45
 
46
+ ## The random generates not necessarily generates a valid cep, it´s recomend to using in tests
47
+ ## The Address object with valid cep build a valid address
42
48
 
43
49
  ```
44
50
 
@@ -53,7 +59,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
53
59
  ## License
54
60
 
55
61
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
56
-
57
- ## Code of Conduct
58
-
59
- Everyone interacting in the CepBrasil project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/cep_brasil/blob/master/CODE_OF_CONDUCT.md).
@@ -1,27 +1,4 @@
1
1
  require "cep_brasil/version"
2
+ require 'cep_brasil/request/request'
2
3
  require 'cep_brasil/random/random'
3
- require 'cep_brasil/api/json'
4
- require 'cep_brasil/address/gerar_endereco'
5
-
6
- module CepBrasil
7
- class RandomCep
8
-
9
- def initialize(cep=nil)
10
- @cep = cep
11
- end
12
-
13
- def parse_cep
14
- unless @cep.nil?
15
- if @cep.size == 8
16
- cep = @cep.to_s
17
- valid = @cep =~ /[^0-9]/
18
- return valid_cep = @cep[0..4] + '-' + @cep[5..7] if valid.nil?
19
- return 'Caracteres inválido, favor utilizar so numeros'
20
- else
21
- return 'Necessário informar 8 numeros'
22
- end
23
- end
24
- end
25
-
26
- end
27
- end
4
+ require 'cep_brasil/address/gerar_endereco'
@@ -1,17 +1,18 @@
1
+ require 'json'
1
2
 
2
- require 'rest-client'
3
3
  module CepBrasil
4
4
  module Address
5
5
 
6
- BASE_URL = "viacep.com.br/ws"
6
+ BASE_URL = "https://viacep.com.br/ws"
7
+
7
8
 
8
9
  class Generate
10
+ include Request
9
11
  attr_reader :cep, :logradouro, :complemento, :bairro
10
12
  attr_reader :localidade, :uf, :unidade, :ibge, :gia, :endereco
11
13
 
12
14
  def initialize(cep_entry, response_type)
13
- @response_type = response_type
14
- @cep_entry = cep_entry
15
+ cep_entry = normalize cep_entry
15
16
  params = connect cep_entry, response_type
16
17
  @cep = params['cep']
17
18
  @logradouro ||= params['logradouro']
@@ -26,7 +27,7 @@ module CepBrasil
26
27
  end
27
28
 
28
29
  def full_address
29
- @endereco = {
30
+ endereco = {
30
31
  cep: @cep,
31
32
  logradouro: @logradouro,
32
33
  complemento: @complemento,
@@ -39,13 +40,17 @@ module CepBrasil
39
40
  }
40
41
  end
41
42
 
42
- private
43
43
 
44
+ private
45
+
44
46
  def connect(cep_entry, response_type)
45
- @request = "#{BASE_URL}/#{cep_entry}/#{response_type}"
46
- params = JSON.parse RestClient.get(@request)
47
+ request = "#{BASE_URL}/#{cep_entry}/#{response_type}"
48
+ params = get(request)
47
49
  end
48
50
 
51
+ def normalize(cep)
52
+ normalcep = cep.gsub('-', '')
53
+ end
49
54
 
50
55
  end
51
56
  end
@@ -1,9 +1,28 @@
1
1
  module CepBrasil::Random
2
2
  class << self
3
+ attr_reader :cep
3
4
 
4
- def generate_formated
5
- @cep = rand(1111111..99999999).to_s
6
- valid_cep = @cep[0..4] + '-' + @cep[5..7]
5
+ def generate_formatted(cep=nil)
6
+ @cep = cep
7
+ parse_cep(@cep)
8
+ end
9
+
10
+ private
11
+
12
+ def parse_cep(cep=nil)
13
+ @cep ||= cep
14
+ return generate if @cep.nil?
15
+ @cep = @cep.to_s
16
+ raise 'Necessário informar 8 números!' if @cep.size != 8
17
+ valid = @cep =~ /[^0-9]/
18
+ raise 'Necessário informar sómente números' unless valid.nil?
19
+ @cep = "#{@cep[0..4]}-#{@cep[5..7]}" if valid.nil?
20
+ return @cep
21
+ end
22
+
23
+ def generate
24
+ @cep = "#{rand(10000000..19999100)}"
25
+ @cep = "#{@cep[0..4]}-#{@cep[5..7]}"
7
26
  end
8
27
 
9
28
  end
@@ -0,0 +1,19 @@
1
+
2
+ module CepBrasil
3
+ module Request
4
+
5
+ require 'json'
6
+ require 'net/http'
7
+ require 'uri'
8
+
9
+ def get(route)
10
+ request(route)
11
+ end
12
+
13
+ def request(url)
14
+ result = Net::HTTP.get(URI.parse(url))
15
+ JSON.parse(result)
16
+ end
17
+
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module CepBrasil
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.5"
3
3
  end
data/test.rb ADDED
@@ -0,0 +1 @@
1
+ require 'cep_brasil'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cep_brasil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - LucilioCampos
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-21 00:00:00.000000000 Z
11
+ date: 2020-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- - !ruby/object:Gem::Dependency
56
- name: rest-client
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  description: Generates a random CEP from brazilian´s zip code
70
56
  email:
71
57
  - lucilio_oliveira@hotmail.com
@@ -84,12 +70,12 @@ files:
84
70
  - Rakefile
85
71
  - bin/console
86
72
  - bin/setup
87
- - cep_brasil.gemspec
88
73
  - lib/cep_brasil.rb
89
74
  - lib/cep_brasil/address/gerar_endereco.rb
90
- - lib/cep_brasil/api/json.rb
91
75
  - lib/cep_brasil/random/random.rb
76
+ - lib/cep_brasil/request/request.rb
92
77
  - lib/cep_brasil/version.rb
78
+ - test.rb
93
79
  homepage: https://github.com/LucilioCampos/cep_brasil
94
80
  licenses:
95
81
  - MIT
@@ -113,7 +99,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
99
  - !ruby/object:Gem::Version
114
100
  version: '0'
115
101
  requirements: []
116
- rubygems_version: 3.0.4
102
+ rubyforge_project:
103
+ rubygems_version: 2.7.6
117
104
  signing_key:
118
105
  specification_version: 4
119
106
  summary: Random CEP generator
@@ -1,35 +0,0 @@
1
- lib = File.expand_path("lib", __dir__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "cep_brasil/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "cep_brasil"
7
- spec.version = CepBrasil::VERSION
8
- spec.authors = ["LucilioCampos"]
9
- spec.email = ["lucilio_oliveira@hotmail.com"]
10
-
11
- spec.summary = 'Random CEP generator'
12
- spec.description = 'Generates a random CEP from brazilian´s zip code'
13
- spec.homepage = "https://github.com/LucilioCampos/cep_brasil"
14
- spec.license = "MIT"
15
-
16
- spec.metadata["allowed_push_host"] = 'https://rubygems.org'
17
-
18
- spec.metadata["homepage_uri"] = spec.homepage
19
- spec.metadata["source_code_uri"] = "https://github.com/LucilioCampos/cep_brasil"
20
- spec.metadata["changelog_uri"] = "https://github.com/LucilioCampos/cep_brasil/edit/master/README.md"
21
-
22
- # Specify which files should be added to the gem when it is released.
23
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
25
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
- end
27
- spec.bindir = "exe"
28
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
- spec.require_paths = ["lib"]
30
-
31
- spec.add_development_dependency "bundler", "~> 2.0"
32
- spec.add_development_dependency "rake", "~> 10.0"
33
- spec.add_development_dependency "rspec", "~> 3.0"
34
- spec.add_development_dependency "rest-client"
35
- end
@@ -1,20 +0,0 @@
1
- require 'rest-client'
2
- require 'json'
3
-
4
- module CepBrasil::Api
5
- BASE_URL = "viacep.com.br/ws"
6
- class Json
7
- attr_reader :request, :response, :endereco
8
-
9
- def initialize(response_type, cep)
10
- @response_type = response_type
11
- @cep = cep
12
- @request = "#{BASE_URL}/#{cep}/#{response_type}"
13
- end
14
-
15
- def get_cep
16
- @response = RestClient.get(@request)
17
- end
18
-
19
- end
20
- end