]> git.openstreetmap.org Git - rails.git/blobdiff - app/validators/whitespace_validator.rb
Merge leading and trailing whitespace validators
[rails.git] / app / validators / whitespace_validator.rb
diff --git a/app/validators/whitespace_validator.rb b/app/validators/whitespace_validator.rb
new file mode 100644 (file)
index 0000000..d177df9
--- /dev/null
@@ -0,0 +1,11 @@
+class WhitespaceValidator < ActiveModel::EachValidator
+  def validate_each(record, attribute, value)
+    unless options.fetch(:leading, true)
+      record.errors[attribute] << (options[:message] || I18n.t("validations.leading_whitespace")) if value =~ /\A\s/
+    end
+
+    unless options.fetch(:trailing, true)
+      record.errors[attribute] << (options[:message] || I18n.t("validations.trailing_whitespace")) if value =~ /\s\z/
+    end
+  end
+end