Read/Unread status management module for ActiveRecord
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
spec
.gitignore
Gemfile
Gemfile.lock
MIT-LICENSE
README.md
Rakefile
shiroyagi.gemspec

README.md

Shiroyagi

Shiroyagi is a thin Rails plugin which manages Read/Unread status of a Model.

Usage

Add a column name read_at to your model. This column is used by status management.

bin/rails g migration AddColumnToYourModels read_at:datetime

Include the Shiroyagi::ActsAsShiroyagi module in your class.

class Message < ApplicationRecord
  include Shiroyagi::ActsAsShiroyagi
end

That's it! Then you can use the following methods.

# Class methods

Message.reads
=> [#<Message id: 1, read_at: Tue, 28 Nov 2017 07:59:47 UTC +00:00>]

Message.unreads
=> [#<Message id: 2, read_at: nil>]

Message.reads_count
=> 1

Message.unreads_count
=> 1

Message.mark_all_as_read
=> [#<Message id: 2, read_at: Tue, 28 Nov 2017 08:04:44 UTC +00:00>]

Message.mark_all_as_unread
=> [#<Message id: 1, read_at: nil>,
#<Message id: 2, read_at: nil>]


# Instance methods

message.mark_as_read
=> true
message
=> #<Message id: 1, read_at: Tue, 28 Nov 2017 08:10:20 UTC +00:00>
message.read?
=> true
message.unread?
=> false

message.mark_as_unread
=> true
message
=> #<Message id: 1, read_at: nil>
message.read?
=> false
message.unread?
=> true

Installation

Add this line to your application's Gemfile:

gem 'shiroyagi'

And then execute:

$ bundle

Or install it yourself as:

$ gem install shiroyagi

Contributing

Contribution directions go here.

License

The gem is available as open source under the terms of the MIT License.