cep_brasil 0.1.0 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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