correios-frete 0.2.1 → 0.3.0
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.
- data/CHANGELOG.rdoc +17 -0
- data/Gemfile +6 -3
- data/README.rdoc +29 -21
- data/Rakefile +1 -0
- data/correios-frete.gemspec +6 -5
- data/lib/correios/frete.rb +7 -0
- data/lib/correios/frete/parser.rb +0 -7
- data/lib/correios/frete/version.rb +2 -2
- data/spec/correios/frete_spec.rb +28 -0
- metadata +7 -6
data/CHANGELOG.rdoc
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
== Versão 0.3.0
|
2
|
+
- Novo: Métodos diretos para cálculo de um serviço de frete por vez. Exemplo: Correios::Frete#calcular_sedex.
|
3
|
+
== Versão 0.2.1
|
4
|
+
- Melhoria: Alias Correios::Frete::Servico#sucesso? para Correios::Frete::Servico#success?
|
5
|
+
- Melhoria: Alias Correios::Frete::Servico#erro? para Correios::Frete::Servico#error?
|
6
|
+
- Atualizado: Documentação
|
7
|
+
|
8
|
+
== Versão 0.2.0
|
9
|
+
- Novo: Suporte para cálculo de e-SEDEX
|
10
|
+
- Melhoria: Alias Correios::Frete#calculate para Correios::Frete#calcular
|
11
|
+
- Melhoria: Atributo "nome" em Correios::Frete::Servico
|
12
|
+
- Correção: {Issue #2: undefined method `key' for #<Hash:0xb5e8eea4>}[https://github.com/prodis/correios-frete/issues/2]
|
13
|
+
|
14
|
+
== Versão 0.1.0
|
15
|
+
- Cálculo de frete para os serviços PAC, SEDEX, SEDEX 10 e SEDEX Hoje
|
16
|
+
- Cálculo de um serviço de frete por vez
|
17
|
+
- Cálculo de vários serviços de frete ao mesmo tempo
|
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -24,9 +24,20 @@ Serviços de frete suportados são PAC, SEDEX, SEDEX 10, SEDEX Hoje e e-SEDEX (n
|
|
24
24
|
:largura => 15,
|
25
25
|
:altura => 2
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
Cálculo de vários serviços ao mesmo tempo:
|
28
|
+
|
29
|
+
servicos = frete.calcular :sedex, :pac
|
30
|
+
|
31
|
+
servicos[:sedex].nome # => "SEDEX"
|
32
|
+
servicos[:sedex].valor # => 26.2
|
33
|
+
servicos[:sedex].prazo_entrega # => 1
|
34
|
+
|
35
|
+
servicos[:pac].nome # => "PAC"
|
36
|
+
servicos[:pac].valor # => 10.0
|
37
|
+
servicos[:pac].prazo_entrega # => 5
|
38
|
+
|
39
|
+
Cálculo de um serviço de frete passando o serviço para parâmetro:
|
40
|
+
|
30
41
|
servico = frete.calcular :sedex
|
31
42
|
service.nome # => "SEDEX"
|
32
43
|
servico.valor # => 26.2
|
@@ -37,30 +48,27 @@ Serviços de frete suportados são PAC, SEDEX, SEDEX 10, SEDEX Hoje e e-SEDEX (n
|
|
37
48
|
servico.valor # => 10.0
|
38
49
|
servico.prazo_entrega # => 5
|
39
50
|
|
40
|
-
|
41
|
-
# Cálculo de vários serviços ao mesmo tempo
|
42
|
-
# ------------------------------------
|
43
|
-
servicos = frete.calcular :sedex, :pac
|
51
|
+
Cálculo de um serviço de frete chamando o método direto do serviço:
|
44
52
|
|
45
|
-
|
46
|
-
|
47
|
-
|
53
|
+
servico = frete.calcular_sedex
|
54
|
+
service.nome # => "SEDEX"
|
55
|
+
servico.valor # => 26.2
|
56
|
+
servico.prazo_entrega # => 1
|
48
57
|
|
49
|
-
|
50
|
-
|
51
|
-
|
58
|
+
servico = frete.calcular_pac
|
59
|
+
service.nome # => "PAC"
|
60
|
+
servico.valor # => 10.0
|
61
|
+
servico.prazo_entrega # => 5
|
52
62
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
servico = frete.calcular :sedex
|
63
|
+
Verificação de sucesso e erro:
|
64
|
+
|
65
|
+
servico = frete.calcular_sedex
|
57
66
|
servico.sucesso? # => true
|
58
67
|
servico.erro? # => false
|
59
68
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
servico = frete.calculate :sedex
|
69
|
+
Usando a interface pública em inglês:
|
70
|
+
|
71
|
+
servico = frete.calculate_sedex
|
64
72
|
servico.success? # => true
|
65
73
|
servico.error? # => false
|
66
74
|
|
data/Rakefile
CHANGED
data/correios-frete.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{correios-frete}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Prodis a.k.a. Fernando Hamasaki de Amorim"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-08-02}
|
13
13
|
s.description = %q{Cálculo de frete utilizando o Web Service dos Correios (http://www.correios.com.br/webservices). Serviços de frete suportados são PAC, SEDEX, SEDEX 10, SEDEX Hoje e e-SEDEX (necessário informar código de empresa e senha).}
|
14
14
|
s.email = %q{prodis@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.files = [
|
19
19
|
".document",
|
20
20
|
".rspec",
|
21
|
+
"CHANGELOG.rdoc",
|
21
22
|
"Gemfile",
|
22
23
|
"Gemfile.lock",
|
23
24
|
"README.rdoc",
|
@@ -47,9 +48,9 @@ Gem::Specification.new do |s|
|
|
47
48
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
48
49
|
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
49
50
|
s.add_runtime_dependency(%q<sax-machine>, [">= 0"])
|
50
|
-
s.
|
51
|
-
s.
|
52
|
-
s.
|
51
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
52
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
53
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
53
54
|
else
|
54
55
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
55
56
|
s.add_dependency(%q<sax-machine>, [">= 0"])
|
data/lib/correios/frete.rb
CHANGED
@@ -47,5 +47,12 @@ module Correios
|
|
47
47
|
end
|
48
48
|
|
49
49
|
alias calculate calcular
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def method_missing(method_name, *args)
|
54
|
+
return calcular($2.to_sym) if method_name.to_s =~ /^(calcular|calculate)_(.*)/ && Correios::Frete::Servico.code_from_type($2.to_sym)
|
55
|
+
super
|
56
|
+
end
|
50
57
|
end
|
51
58
|
end
|
data/spec/correios/frete_spec.rb
CHANGED
@@ -89,4 +89,32 @@ describe Correios::Frete do
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
end
|
92
|
+
|
93
|
+
["calcular", "calculate"].each do |method_name|
|
94
|
+
Correios::Frete::Servico::AVAILABLE_SERVICES.each do |key, service|
|
95
|
+
describe "##{method_name}_#{service[:type]}" do
|
96
|
+
before :each do
|
97
|
+
web_service = Correios::Frete::WebService.new
|
98
|
+
parser = Correios::Frete::Parser.new
|
99
|
+
@frete = Correios::Frete.new(:web_service => web_service, :parser => parser)
|
100
|
+
@servico = Correios::Frete::Servico.new
|
101
|
+
|
102
|
+
parser.stub(:servicos).and_return(service[:type] => @servico)
|
103
|
+
web_service.stub(:request).with(@frete, [service[:type]]).and_return("XML")
|
104
|
+
end
|
105
|
+
|
106
|
+
it "calculates #{service[:name]}" do
|
107
|
+
@frete.send("#{method_name}_#{service[:type]}").should == @servico
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe "##{method_name}_servico_que_nao_existe" do
|
113
|
+
before(:each) { @frete = Correios::Frete.new }
|
114
|
+
|
115
|
+
it "raises NoMethodError" do
|
116
|
+
expect { @frete.send("#{method_name}_servico_que_nao_existe") }.to raise_error(NoMethodError)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
92
120
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: correios-frete
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.3.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Prodis a.k.a. Fernando Hamasaki de Amorim
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-08-02 00:00:00 -03:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: "0"
|
46
|
-
type: :
|
46
|
+
type: :development
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
- - ~>
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: 1.0.0
|
57
|
-
type: :
|
57
|
+
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: *id004
|
60
60
|
- !ruby/object:Gem::Dependency
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: "0"
|
68
|
-
type: :
|
68
|
+
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: *id005
|
71
71
|
description: "C\xC3\xA1lculo de frete utilizando o Web Service dos Correios (http://www.correios.com.br/webservices). Servi\xC3\xA7os de frete suportados s\xC3\xA3o PAC, SEDEX, SEDEX 10, SEDEX Hoje e e-SEDEX (necess\xC3\xA1rio informar c\xC3\xB3digo de empresa e senha)."
|
@@ -79,6 +79,7 @@ extra_rdoc_files:
|
|
79
79
|
files:
|
80
80
|
- .document
|
81
81
|
- .rspec
|
82
|
+
- CHANGELOG.rdoc
|
82
83
|
- Gemfile
|
83
84
|
- Gemfile.lock
|
84
85
|
- README.rdoc
|
@@ -109,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
109
110
|
requirements:
|
110
111
|
- - ">="
|
111
112
|
- !ruby/object:Gem::Version
|
112
|
-
hash:
|
113
|
+
hash: -510697009
|
113
114
|
segments:
|
114
115
|
- 0
|
115
116
|
version: "0"
|