# frozen_string_literal: true # rubocop:disable Style/AsciiComments module Emoji module Validator # Validates all string and text attributes # of an ActiveRecord::Base class # Include it in your model to automatically apply the validation # # class Person < ActiveRecord::Base # include Emoji::Validator::NoEmojiAnywhereValidator # end # # person = Person.new(first_name: "😃", last_name: "😃") # person.valid? #false # person.errors.count #2 # module NoEmojiAnywhereValidator def self.included(base) base.class_eval do columns_hash.each do |k, v| next unless %i[string text].include?(v.type) validates k, no_emoji: true end end end end end end # rubocop:enable Style/AsciiComments