lib/cieloz/requisicao_transacao/dados_portador.rb in cieloz-0.0.8 vs lib/cieloz/requisicao_transacao/dados_portador.rb in cieloz-0.0.9
- old
+ new
@@ -8,22 +8,24 @@
include Cieloz::Helpers
attr_accessor :numero, :nome_portador, :validade
attr_reader :indicador, :codigo_seguranca
- validates :nome_portador, length: { in: 0..50 }
+ validates :nome_portador, length: { maximum: 50 }
- validates :numero, :validade, :indicador, presence: true
+ set_callback :validate, :before do |portador|
+ [:numero, :validade, :codigo_seguranca].each {|attr|
+ val = portador.send attr
+ portador.instance_variable_set "@#{attr}", val.to_s
+ }
+ portador.numero.gsub! ' ', ''
+ end
- validates :numero, length: { is: 16 }
- validates :numero, numericality: { only_integer: true }
+ validates :numero, format: { with: /^\d{16}$/ }
+ validates :validade, format: { with: /^2\d{3}(0[1-9]|1[012])$/ }
+ validates :codigo_seguranca, format: { with: /^(\d{3}|\d{4})$/ }
- validates :validade, length: { is: 6 }
- validates :validade, format: { with: /2\d{3}(0[1-9]|1[012])/ }
- validates :validade, numericality: { only_integer: true }
-
- validates :codigo_seguranca, length: { in: 3..4 }
- validates :codigo_seguranca, numericality: { only_integer: true }
+ validates :indicador, presence: true
def initialize attrs={}
super
indicador_nao_informado! if codigo_seguranca.blank?
end