lib/valvat/active_model.rb in valvat-0.0.3 vs lib/valvat/active_model.rb in valvat-0.1.0
- old
+ new
@@ -1,7 +1,31 @@
-class ValvatValidator < ::ActiveModel::EachValidator
- def validate_each(record, attribute, value)
- unless Valvat::Syntax.validate(value)
- record.errors.add(attribute, options[:message])
+require 'active_model'
+require 'valvat/syntax'
+require 'valvat/lookup'
+
+module ActiveModel
+ module Validations
+ class ValvatValidator < ::ActiveModel::EachValidator
+
+ def validate_each(record, attribute, value)
+ is_valid = Valvat::Syntax.validate(value)
+
+ if is_valid && options[:lookup]
+ is_valid = Valvat::Lookup.validate(value)
+ is_valid.nil? && is_valid = (options[:lookup] != :fail_if_down)
+ end
+
+ unless is_valid
+ record.errors.add(attribute, :invalid_vat,
+ :message => options[:message],
+ :country_adjective => I18n.t(
+ :"valvat.country_adjectives.#{(Valvat::Utils.split(value)[0] || "eu").downcase}",
+ :default => [:"valvat.country_adjectives.eu", "european"]
+ )
+ )
+ end
+ end
end
end
-end
+end
+
+I18n.load_path << File.dirname(__FILE__) + '/../locale/en.yml'
\ No newline at end of file