ceplivre 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.2@ceplivre --create
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gemspec
4
- gem 'httparty'
4
+ gem 'httparty'
data/README.md CHANGED
@@ -1,15 +1,46 @@
1
- # ceplivre gem
1
+ # Cep Livre GEM
2
2
 
3
- ## Como configurar
3
+ Lib para facilitar a busca de CEP e Logradouro em qualquer aplicação Ruby e Rails que queira utilizar a API do serviço ceplivre.com.br
4
4
 
5
- Crie um arquivo de configuração na sua aplicação rails.
5
+ ## Compatibilidade
6
6
 
7
- /config/initializers/ceplivre.rb
7
+ * Testada com Ruby 1.9.2 e aplicações Rails 3.1
8
8
 
9
- CepLivre::Configuration.key = "Key recebida do cep livre"
9
+ ## Instalação
10
10
 
11
- ## Como utiliza
11
+ ### Como gem
12
12
 
13
- Basta chamar utilizar o seguinte comando:
13
+ Adicione ao arquivo Gemfile da sua aplicação:
14
+
15
+ gem "ceplivre"
16
+
17
+ e execute o comando:
14
18
 
15
- CepLivre::Cep.find("22030-030", :json)
19
+ bundle install
20
+
21
+ ### Crie um arquivo de configuração
22
+
23
+ Crie um arquivo de configuração na sua aplicação (config/initializers/ceplivre.rb) com sua chave da API:
24
+
25
+ CepLivre::Configuration.key = "Chave da API"
26
+
27
+ ## Como utilizar
28
+
29
+ Para pesquisar por CEP:
30
+
31
+ CepLivre::Cep.find("22030-030", :json)
32
+
33
+ Para pesquisar por Logradouro:
34
+
35
+ CepLivre::Logradouro.find("Nossa Senhora de Copacabana", :json)
36
+
37
+
38
+ ## Contribuição
39
+
40
+ Para contribuir, basta enviar um Pull Request com seus devidos testes.
41
+
42
+
43
+ ## Créditos
44
+
45
+ * Eduardo Fiorezi - [hooppe.com](http://hooppe.com)
46
+ * Felipe Bazzarella - [bazzarella.com](http://bazzarella.com)
@@ -5,11 +5,11 @@ require "ceplivre/version"
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "ceplivre"
7
7
  s.version = Ceplivre::VERSION
8
- s.authors = ["Eduardo Fiorezi"]
9
- s.email = ["eduardofiorezi@gmail.com"]
8
+ s.authors = ["Eduardo Fiorezi", "Felipe Bazzarella"]
9
+ s.email = ["eduardofiorezi@gmail.com", "fbazzarella@gmail.com"]
10
10
  s.homepage = "http://hooppe.com"
11
- s.summary = %q{Gem para utilizar a api ceplivre}
12
- s.description = %q{Utilize a API ceplivre na sua aplicação}
11
+ s.summary = %q{Gem para utilizar a API ceplivre}
12
+ s.description = %q{Utilize a API ceplivre na sua aplicação Ruby e Rails}
13
13
 
14
14
  s.rubyforge_project = "ceplivre"
15
15
 
@@ -21,4 +21,4 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency 'httparty', "0.8.1"
22
22
 
23
23
  s.add_development_dependency "rspec"
24
- end
24
+ end
@@ -2,6 +2,7 @@ require "ceplivre/version"
2
2
  require "ceplivre/configuration"
3
3
 
4
4
  require "httparty"
5
+ require "uri"
5
6
 
6
7
  module CepLivre
7
8
  class Cep
@@ -11,4 +12,13 @@ module CepLivre
11
12
  self.get("http://ceplivre.com.br/consultar/cep/#{CepLivre::Configuration.key}/#{cep}/#{format}")["cep"]
12
13
  end
13
14
  end
14
- end
15
+
16
+ class Logradouro
17
+ include HTTParty
18
+
19
+ def self.find(logradouro, format)
20
+ logradouro_escaped = URI.escape(logradouro, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
21
+ self.get("http://ceplivre.com.br/consultar/logradouro/#{CepLivre::Configuration.key}/#{logradouro_escaped}/#{format}")["cep"]
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module Ceplivre
2
- VERSION = "0.0.3"
3
- end
2
+ VERSION = "0.1.0"
3
+ end
@@ -2,7 +2,7 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe "CepLivre::Configuration" do
5
- before do
5
+ before :all do
6
6
  CepLivre::Configuration.key = nil
7
7
  end
8
8
 
@@ -13,7 +13,7 @@ describe "CepLivre::Configuration" do
13
13
  it "should set a key for ceplivre api" do
14
14
  key_to_test = "122345677009212"
15
15
 
16
- CepLivre::Configuration.key = key_to_test
17
- CepLivre::Configuration.key.should == key_to_test
16
+ CepLivre::Configuration.key = key_to_test
17
+ CepLivre::Configuration.key.should == key_to_test
18
18
  end
19
19
  end
@@ -2,8 +2,8 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe "CepLivre" do
5
- before do
6
- CepLivre::Configuration.key = "" #add a test key
5
+ before :all do
6
+ CepLivre::Configuration.key = "" # Add a test key
7
7
  end
8
8
 
9
9
  describe "find_cep" do
@@ -17,4 +17,16 @@ describe "CepLivre" do
17
17
  end
18
18
  end
19
19
  end
20
- end
20
+
21
+ describe "find_logradouro" do
22
+ context "json format" do
23
+ it "should get data from cep livre api" do
24
+ CepLivre::Logradouro.find("Nossa Senhora de Copacabana", :json).should == [{"tp_logradouro"=>"Rua", "tp_logradouro_id"=>"11", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Piedade", "cidade"=>"Jaboatão dos Guararapes", "uf_sigla"=>"PE", "ufnome"=>"Pernambuco", "id_estado_ibge"=>"26", "cep"=>"54410-250", "muncoddv"=>"2607901", "ddd"=>"81", "altitude"=>"76", "latitude"=>"-8.113", "longitude"=>"-35.015", "area"=>"256.073", "capital"=>"N"}, {"tp_logradouro"=>"Rua", "tp_logradouro_id"=>"11", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Leblon (Venda Nova)", "cidade"=>"Belo Horizonte", "uf_sigla"=>"MG", "ufnome"=>"Minas Gerais", "id_estado_ibge"=>"31", "cep"=>"31575-100", "muncoddv"=>"3106200", "ddd"=>"31", "altitude"=>"858", "latitude"=>"-19.817", "longitude"=>"-43.956", "area"=>"330.954", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Vila São João", "cidade"=>"Queimados", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"26379-010", "muncoddv"=>"3304144", "ddd"=>"21", "altitude"=>"30", "latitude"=>"-22.716", "longitude"=>"-43.555", "area"=>"76.921", "capital"=>"N"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Leme", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22010-121", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22020-001", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22020-002", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22070-012", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22060-002", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22050-002", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22050-001", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22031-000", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22060-001", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Leme", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22010-122", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Copacabana", "cidade"=>"Rio de Janeiro", "uf_sigla"=>"RJ", "ufnome"=>"Rio de Janeiro", "id_estado_ibge"=>"33", "cep"=>"22070-011", "muncoddv"=>"3304557", "ddd"=>"21", "altitude"=>"2", "latitude"=>"-22.903", "longitude"=>"-43.208", "area"=>"1182.296", "capital"=>"S"}, {"tp_logradouro"=>"Avenida", "tp_logradouro_id"=>"2", "logradouro"=>"Nossa Senhora de Copacabana", "bairro"=>"Jardim Guanabara", "cidade"=>"Cuiabá", "uf_sigla"=>"MT", "ufnome"=>"Mato Grosso", "id_estado_ibge"=>"51", "cep"=>"78010-645", "muncoddv"=>"5103403", "ddd"=>"65", "altitude"=>"176", "latitude"=>"-15.596", "longitude"=>"-56.097", "area"=>"3538.167", "capital"=>"S"}]
25
+ end
26
+
27
+ it "should return a empty array when not find a logradouro" do
28
+ CepLivre::Logradouro.find("Rua Que Não Existe", :json).should == []
29
+ end
30
+ end
31
+ end
32
+ end
metadata CHANGED
@@ -1,19 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ceplivre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Eduardo Fiorezi
9
+ - Felipe Bazzarella
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2012-01-09 00:00:00.000000000Z
13
+ date: 2012-02-07 00:00:00.000000000Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: httparty
16
- requirement: &70235357325820 !ruby/object:Gem::Requirement
17
+ requirement: &70165778538560 !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
20
  - - =
@@ -21,10 +22,10 @@ dependencies:
21
22
  version: 0.8.1
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: *70235357325820
25
+ version_requirements: *70165778538560
25
26
  - !ruby/object:Gem::Dependency
26
27
  name: rspec
27
- requirement: &70235357323480 !ruby/object:Gem::Requirement
28
+ requirement: &70165778538140 !ruby/object:Gem::Requirement
28
29
  none: false
29
30
  requirements:
30
31
  - - ! '>='
@@ -32,15 +33,18 @@ dependencies:
32
33
  version: '0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *70235357323480
36
- description: Utilize a API ceplivre na sua aplicação
36
+ version_requirements: *70165778538140
37
+ description: Utilize a API ceplivre na sua aplicação Ruby e Rails
37
38
  email:
38
39
  - eduardofiorezi@gmail.com
40
+ - fbazzarella@gmail.com
39
41
  executables: []
40
42
  extensions: []
41
43
  extra_rdoc_files: []
42
44
  files:
43
45
  - .gitignore
46
+ - .rspec
47
+ - .rvmrc
44
48
  - Gemfile
45
49
  - README.md
46
50
  - Rakefile
@@ -71,10 +75,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
75
  version: '0'
72
76
  requirements: []
73
77
  rubyforge_project: ceplivre
74
- rubygems_version: 1.8.10
78
+ rubygems_version: 1.8.15
75
79
  signing_key:
76
80
  specification_version: 3
77
- summary: Gem para utilizar a api ceplivre
81
+ summary: Gem para utilizar a API ceplivre
78
82
  test_files:
79
83
  - spec/ceplivre/configuration_spec.rb
80
84
  - spec/ceplivre_spec.rb