Skip to content

Latest commit

 

History

History
98 lines (71 loc) · 1.76 KB

README.md

File metadata and controls

98 lines (71 loc) · 1.76 KB

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

If you want to use a different column, you can specify it with acts_as_shiroyagi

class Message < ApplicationRecord
  include Shiroyagi::ActsAsShiroyagi

  acts_as_shiroyagi column: 'user_read_at'
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

Fork this repository and throw your contributing pull requests to this repository.

License

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