MongoMapper::Plugins::Sanitize
Tiny plugin for MongoMapper to sanitize strings before validation.
Requires
-
MongoMapper
-
Sanitize
Usage
Either load it into all models, or individual models:
# add to all models
MongoMapper::Document.append_inclusions(MongoMapper::Plugins::Sanitize)
# add to a specific model
plugin MongoMapper::Plugins::Sanitize
Once it’s loaded into a model, configure with ‘sanitize’
sanitize :list, :of, :keys
This will use the default Sanitize config, if you want to override then set the :config option:
# Use the built-in Sanitize::Config::RESTRICTED configuration
sanitize :title, :config => Sanitize::Config::RESTRICTED
# Use a custom configuration
sanitize :description, :config => {:elements => ['a', 'span']}
The original text is stored as original_#key, for example:
class Item
key :description, String
sanitize :description
end
item = Item.create(:description => "some <b>text</b>")
item.description => "some text"
item.original_description => "some <b>text</b>"
IMPORTANT - calling sanitize sets up original_#key as a copy of the existing key if it exists If the key doesn’t yet exist, it will assume it’s a String field, so if you use something different then make sure to define it first.
You can disable this behaviour by setting :keep_original to false
sanitize :description, :keep_original => false
See the Sanitize Docs (github.com/rgrove/sanitize) for more details on the different configuration options.
Note on Patches/Pull Requests
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself in another branch so I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Install
$ gem install mm-sanitize
Copyright
See LICENSE for details.