acts_as_readable 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/acts_as_readable/acts_as_readable.rb +13 -0
- data/spec/acts_as_readable_spec.rb +8 -0
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ebb4f311aa3f11a92b82cc87aa496a4501202dc5e63a22f619bb1e01195c758
|
4
|
+
data.tar.gz: 21bd9b62364d989f6103c4b112d989d6234274c7f3a0faa05d2eaeac1a3a8de2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3190c64def5ec6c0ad43f22a2963a58132db21c7a4fb57302f18069e3f4d1a3757c581f1a6f256b882ab4e3a3e84c10f5dab1e492d93756342fbbadd8517ad63
|
7
|
+
data.tar.gz: 4c5ebf476c915aedf33852450ffc05d48ebb2a3d420f2bcdd0e41d487eeabf1feb784caaf2a6a37d4abc5a420f487508064da53574af2aea8da1f5c975baf015
|
@@ -79,6 +79,19 @@ module ActsAsReadable
|
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|
82
|
+
|
83
|
+
# Mark all records as unread by the user
|
84
|
+
# If a :cache option has been set in acts_as_readable, a timestamp will be cleared on the user as well as deleting all readings for that user with this class as the readable type
|
85
|
+
def unread_by!(user)
|
86
|
+
if user.has_attribute?(acts_as_readable_options[:cache])
|
87
|
+
Reading.where(:user_id => user.id, :readable_type => HelperMethods.readable_type(self)).delete_all
|
88
|
+
user.update_column(acts_as_readable_options[:cache], nil)
|
89
|
+
else
|
90
|
+
read_by(user).find_each do |record|
|
91
|
+
record.unread_by!(user)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
82
95
|
end
|
83
96
|
|
84
97
|
module InstanceMethods
|
@@ -9,6 +9,14 @@ describe 'acts_as_readable' do
|
|
9
9
|
@user = User.create
|
10
10
|
end
|
11
11
|
|
12
|
+
describe '::unread_by!' do
|
13
|
+
it "clears all readings with this readable class for the given user" do
|
14
|
+
readable_class.read_by! @user
|
15
|
+
expect { readable_class.unread_by! @user }
|
16
|
+
.to change { queryable_class.unread_by(@user) }.to include(@queryable)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
12
20
|
describe "the unread scope" do
|
13
21
|
it "should not return records explicitly marked as read" do
|
14
22
|
@readable.read_by! @user
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_readable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas Jakobsen
|
8
8
|
- Ryan Wallace
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-10-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '4'
|
62
|
-
description:
|
62
|
+
description:
|
63
63
|
email: contact@culturecode.ca
|
64
64
|
executables: []
|
65
65
|
extensions: []
|
@@ -76,7 +76,7 @@ files:
|
|
76
76
|
homepage: http://github.com/culturecode/acts_as_readable
|
77
77
|
licenses: []
|
78
78
|
metadata: {}
|
79
|
-
post_install_message:
|
79
|
+
post_install_message:
|
80
80
|
rdoc_options: []
|
81
81
|
require_paths:
|
82
82
|
- lib
|
@@ -91,8 +91,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
requirements: []
|
94
|
-
rubygems_version: 3.
|
95
|
-
signing_key:
|
94
|
+
rubygems_version: 3.5.13
|
95
|
+
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: Allows records to be marked as readable. Optimized for bulk, 'mark all as
|
98
98
|
read' operations
|