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