74 lines
1.7 KiB
Markdown
74 lines
1.7 KiB
Markdown
# TheModerator
|
|
|
|
[![Build Status](https://travis-ci.org/gdott9/the_moderator.svg?branch=master)](https://travis-ci.org/gdott9/the_moderator)
|
|
|
|
Moderate fields before their insertion in the database by serializing and saving them into a separate 'moderations' table.
|
|
|
|
## Installation
|
|
|
|
Add this line to your application's Gemfile:
|
|
|
|
gem 'the_moderator'
|
|
|
|
And then execute:
|
|
|
|
$ bundle
|
|
|
|
Or install it yourself as:
|
|
|
|
$ gem install the_moderator
|
|
|
|
Then use the generator for the migration and the basic `Moderation` model:
|
|
|
|
$ rails generate the_moderator:install
|
|
|
|
## Usage
|
|
|
|
To use `TheModerator`, you need to include `TheModerator::Model` in the models you want to moderate.
|
|
|
|
```ruby
|
|
class Article
|
|
include TheModerator::Model
|
|
end
|
|
```
|
|
|
|
The `Moderation` model added by the genenrator is used to access the moderations.
|
|
|
|
### Moderate attributes
|
|
|
|
This gem adds 3 methods to your models.
|
|
|
|
- `moderate`
|
|
- `moderated?`
|
|
- `moderated_fields_for(assoc)`
|
|
|
|
### Manage moderations
|
|
|
|
To list pending moderations, you can use the `Moderation` model
|
|
|
|
```ruby
|
|
Moderation.all
|
|
```
|
|
|
|
You can access the moderations for a specific object with
|
|
|
|
```ruby
|
|
post = Post.last
|
|
post.moderations
|
|
```
|
|
|
|
A `Moderation` instance has 4 methods:
|
|
- `moderation.data` returns a hash of the moderated attributes
|
|
- `moderation.data_display` returns a user-friendly hash to display the moderated attributes
|
|
- `moderation.preview`
|
|
- `moderation.accept` modifies the moderated object with the specified attributes and saves it
|
|
- `moderation.discard` destroys the moderation
|
|
|
|
## Contributing
|
|
|
|
1. Fork it
|
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
4. Push to the branch (`git push origin my-new-feature`)
|
|
5. Create new Pull Request
|