-module ActiveRecord
- module Validations
- module ClassMethods
- # error message when invalid UTF-8 is detected
- @@invalid_utf8_message = " is invalid UTF-8"
-
- ##
- # validation method to be included like any other validations methods
- # in the models definitions. this one checks that the named attribute
- # is a valid UTF-8 format string.
- def validates_as_utf8(*attrs)
- validates_each(attrs) do |record, attr, value|
- record.errors.add(attr, @@invalid_utf8_message) unless UTF8.valid? value
- end
- end
- end
+##
+# validation method to be included like any other validations methods
+# in the models definitions. this one checks that the named attribute
+# is a valid UTF-8 format string.
+class Utf8Validator < ActiveModel::EachValidator
+ def validate_each(record, attribute, value)
+ record.errors.add(attribute, " is invalid UTF-8") unless UTF8.valid? value