cieloz 0.0.9 → 0.0.10
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/config/locales/en.yml
CHANGED
@@ -15,7 +15,8 @@ en:
|
|
15
15
|
numero:
|
16
16
|
invalid: should have 16 digits
|
17
17
|
validade:
|
18
|
-
|
18
|
+
invalid_year: invalid year
|
19
|
+
invalid_month: invalid month
|
19
20
|
codigo_seguranca:
|
20
21
|
invalid: should have 3 or 4 digits
|
21
22
|
cieloz/requisicao_transacao/dados_pedido:
|
data/config/locales/pt-BR.yml
CHANGED
@@ -15,7 +15,8 @@ pt-BR:
|
|
15
15
|
numero:
|
16
16
|
invalid: deve ter 16 dígitos
|
17
17
|
validade:
|
18
|
-
|
18
|
+
invalid_year: ano inválido
|
19
|
+
invalid_month: mês inválido
|
19
20
|
codigo_seguranca:
|
20
21
|
invalid: deve ter 3 ou 4 dígitos
|
21
22
|
cieloz/requisicao_transacao/dados_pedido:
|
@@ -21,9 +21,11 @@ class Cieloz::RequisicaoTransacao
|
|
21
21
|
end
|
22
22
|
|
23
23
|
validates :numero, format: { with: /^\d{16}$/ }
|
24
|
-
validates :validade, format: { with: /^2\d{3}(0[1-9]|1[012])$/ }
|
25
24
|
validates :codigo_seguranca, format: { with: /^(\d{3}|\d{4})$/ }
|
26
25
|
|
26
|
+
validate :valida_ano_validade, unless: ->{ validade.nil? }
|
27
|
+
validate :valida_mes_validade, unless: ->{ validade.nil? }
|
28
|
+
|
27
29
|
validates :indicador, presence: true
|
28
30
|
|
29
31
|
def initialize attrs={}
|
@@ -77,5 +79,18 @@ class Cieloz::RequisicaoTransacao
|
|
77
79
|
flag.codigo_seguranca = 123
|
78
80
|
}
|
79
81
|
end
|
82
|
+
|
83
|
+
private
|
84
|
+
def valida_mes_validade
|
85
|
+
if mes = validade[4..5]
|
86
|
+
errors.add :validade, :invalid_month unless mes.length == 2 and mes.to_i.between? 1, 12
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def valida_ano_validade
|
91
|
+
if ano = validade[0..3]
|
92
|
+
errors.add :validade, :invalid_year if ano.to_i < Date.today.year
|
93
|
+
end
|
94
|
+
end
|
80
95
|
end
|
81
96
|
end
|
data/lib/cieloz/version.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
describe Cieloz::Requisicao do
|
2
4
|
it { must validate_presence_of :dados_ec }
|
3
5
|
end
|
@@ -37,11 +39,44 @@ describe Cieloz::RequisicaoTransacao::DadosPortador do
|
|
37
39
|
range.map { |i| mm = '%02d' % (i % 100) ; "#{yyyy}#{mm}" }
|
38
40
|
end
|
39
41
|
|
40
|
-
it "validates validade
|
41
|
-
|
42
|
+
it "validates mês validade" do
|
43
|
+
year = Date.today.year
|
44
|
+
(1..12).each {|mes|
|
45
|
+
subject.validade = "#{year}#{"%02d" % mes}"
|
46
|
+
subject.valid?
|
47
|
+
assert_nil subject.errors.messages[:validade]
|
48
|
+
}
|
49
|
+
((0..9).to_a + (13..99).to_a).each {|mes|
|
50
|
+
subject.validade = "#{year}#{"%d" % mes}"
|
51
|
+
subject.valid?
|
52
|
+
assert_equal [
|
53
|
+
I18n.t(:invalid_month, scope:
|
54
|
+
[ :activemodel, :errors, :models,
|
55
|
+
"cieloz/requisicao_transacao/dados_portador",
|
56
|
+
:attributes, :validade]
|
57
|
+
)
|
58
|
+
], subject.errors[:validade]
|
59
|
+
}
|
60
|
+
end
|
42
61
|
|
43
|
-
|
44
|
-
|
62
|
+
it "validates ano validade" do
|
63
|
+
year = Date.today.year
|
64
|
+
(year..year+10).each {|ano|
|
65
|
+
subject.validade = "#{year}01"
|
66
|
+
subject.valid?
|
67
|
+
assert_nil subject.errors.messages[:validade]
|
68
|
+
}
|
69
|
+
(year-10..year-1).each {|ano|
|
70
|
+
subject.validade = "#{ano}01"
|
71
|
+
subject.valid?
|
72
|
+
assert_equal [
|
73
|
+
I18n.t(:invalid_year,
|
74
|
+
scope: [ :activemodel, :errors, :models,
|
75
|
+
"cieloz/requisicao_transacao/dados_portador",
|
76
|
+
:attributes, :validade]
|
77
|
+
)
|
78
|
+
], subject.errors[:validade]
|
79
|
+
}
|
45
80
|
end
|
46
81
|
|
47
82
|
describe "indicador and codigo_seguranca validation" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cieloz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -246,18 +246,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
246
246
|
- - ! '>='
|
247
247
|
- !ruby/object:Gem::Version
|
248
248
|
version: '0'
|
249
|
-
segments:
|
250
|
-
- 0
|
251
|
-
hash: 3193634196579590297
|
252
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
253
250
|
none: false
|
254
251
|
requirements:
|
255
252
|
- - ! '>='
|
256
253
|
- !ruby/object:Gem::Version
|
257
254
|
version: '0'
|
258
|
-
segments:
|
259
|
-
- 0
|
260
|
-
hash: 3193634196579590297
|
261
255
|
requirements: []
|
262
256
|
rubyforge_project:
|
263
257
|
rubygems_version: 1.8.23
|