module ActAsCnpjCpf::CnpjCpfActiveRecord::ClassMethods
Public Instance Methods
add_composed_class(name, klass)
click to toggle source
Adiciona reader e writer api.rubyonrails.org/classes/ActiveRecord/Aggregations/ClassMethods.html
# File lib/act_as_cnpj_cpf/cnpj_cpf_active_record.rb, line 21 def add_composed_class(name, klass) options = {class_name: klass, mapping: [name.to_s, 'numero'], allow_nil: true} cons = Proc.new { |numero| klass.constantize.new(numero) } composed_of name, options.merge({constructor: cons, converter: cons}) end
create_validation(field, options)
click to toggle source
cria validacao para o model
# File lib/act_as_cnpj_cpf/cnpj_cpf_active_record.rb, line 28 def create_validation(field, options) <<-CODE validate :#{field}_vazio?, :#{field}_valido? def #{field}_vazio? self.errors.add('#{field}', :blank) if #{field}.nil? && !#{field}_permite_invalido? end def #{field}_valido? unless #{field}.nil? self.errors.add('#{field}', :invalid) unless #{field}.valido? || #{field}_permite_invalido? end end def #{field}_permite_invalido? #{options[:permite_invalido] || false} end private :#{field}_permite_invalido? CODE end
init(field, options, klass)
click to toggle source
# File lib/act_as_cnpj_cpf/cnpj_cpf_active_record.rb, line 14 def init(field, options, klass) add_composed_class(field, klass) module_eval(create_validation(field.to_s, options)) end