PoliteText is making your users' input polite π
π Replace the swear words or execute callbacks if the input is not polite based on a default swear words list or your own.
Add this line to your application's Gemfile:
gem 'polite_text'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install polite_text
PoliteText has a default list of forbidden words, this list includes the most common swear words used on the web. You can acces the list of swear words here.
str = "This gem is a fucking big shit but let's try it"
PoliteText.be_polite!(str)
=> "This gem is a *** big *** but let's try it"
str = "This gem is a fucking big shit but let's try it"
PoliteText.is_polite?(str)
=> false
# == Schema Information
#
# Table name: articles
#
# id :bigint not null, primary key
# text :string default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Article < ApplicationRecord
# Callbacks
before_save :make_text_polite
# Methods
def make_text_polite
PoliteText.be_polite!(text)
end
end
Create a custom list in a YAML file following this format :
# custom_swear_words.yml
swear_words:
- gem
- big
- but
Place it where you want in your app, we recommend here : ./lib/polite_text/my_custom_swear_words.yml
π Create an initializer named polite_text.rb
βοΈ Add the path to your custom swear words list like this :
# ./config/initializers/polite_text.rb
PoliteText.configure do |config|
config.custom_swear_words_path = "#{__dir__}/../../lib/polite_text/custom_swear_words.yml"
end
PoliteText is now configured with your custom list β¨π«
str = "This gem is a fucking big shit but let's try it"
PoliteText.be_polite!(str)
=> "This *** is a fucking *** shit *** let's try it"
PoliteText.is_polite?(str)
=> false
Bug reports and pull requests are welcome on GitHub at https://github.com/OpenGems/polite_text. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
- Manage locales with I18N for default swear words lists by country.
- Add default swear words lists from multiple languages.
- Improve the default swear words list and keeping it short.
The gem is available as open source under the terms of the MIT License.