unread 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 302efc346d484f76d5346d27288d5e095062df99
4
- data.tar.gz: 81d1a2fa58f5b4a6a7a78c3bede1d812033a1882
3
+ metadata.gz: 48716668ad0d7a2e9cd493656fb8c10f71903ff9
4
+ data.tar.gz: 2fcd8322339fa2e05381e1dc90889f0460a4c094
5
5
  SHA512:
6
- metadata.gz: 7d79c07ac3de9d382349db73507e078156ed7731664cef4d0475b46a147299ab10037b12d874bbccb98b177d379eecc628c9cd4691c23f41bf9a91adff382db9
7
- data.tar.gz: 5f4863448e71c179e30f61751d7849fee31d7bd6c1419db43c3f57d0d410683dbe9d7d8b069e902f54f4a1c3535c2040526254ecdcad23d3e6f5082ba742a832
6
+ metadata.gz: 4c5bb97e17fc71c5516b8099be065c4c68bdc578aa2286e95a2ff10627d43771f395b7f96e65be1e7c3f1d94db1d25e81942ff3de4ed9d43e54a517703427a4d
7
+ data.tar.gz: 73c4a144f14a95b4aa043b3ce3fda6704d8de7016e2a77127e5f07148ed8df76309898a6054e39aa69cb37d26d0fda06a5f0ded3478ff229e447a4ae802235ac
@@ -5,36 +5,40 @@ module Unread
5
5
 
6
6
  module Base
7
7
  def acts_as_reader
8
- unless ReadMark.reflections.include?(:reader)
8
+ ReadMark.reader_classes ||= []
9
+
10
+ unless ReadMark.reader_classes.include?(self)
9
11
  ReadMark.belongs_to :reader, :polymorphic => true, inverse_of: :read_marks
10
- end
11
12
 
12
- has_many :read_marks, :dependent => :delete_all, as: :reader, :inverse_of => :reader
13
+ has_many :read_marks, :dependent => :delete_all, as: :reader, :inverse_of => :reader
13
14
 
14
- after_create :setup_new_reader
15
+ after_create :setup_new_reader
15
16
 
16
- ReadMark.reader_classes ||= []
17
- ReadMark.reader_classes << self
17
+ ReadMark.reader_classes << self
18
18
 
19
- include Reader::InstanceMethods
20
- extend Reader::ClassMethods
21
- extend Reader::Scopes
19
+ include Reader::InstanceMethods
20
+ extend Reader::ClassMethods
21
+ extend Reader::Scopes
22
+ end
22
23
  end
23
24
 
24
25
  def acts_as_readable(options={})
25
- class_attribute :readable_options
26
+ ReadMark.readable_classes ||= []
26
27
 
27
- options.reverse_merge!(:on => :updated_at)
28
- self.readable_options = options
28
+ unless ReadMark.readable_classes.include?(self)
29
+ class_attribute :readable_options
29
30
 
30
- has_many :read_marks, :as => :readable, :dependent => :delete_all, inverse_of: :readable
31
+ options.reverse_merge!(:on => :updated_at)
32
+ self.readable_options = options
31
33
 
32
- ReadMark.readable_classes ||= []
33
- ReadMark.readable_classes << self unless ReadMark.readable_classes.include?(self)
34
+ has_many :read_marks, :as => :readable, :dependent => :delete_all, inverse_of: :readable
34
35
 
35
- include Readable::InstanceMethods
36
- extend Readable::ClassMethods
37
- extend Readable::Scopes
36
+ ReadMark.readable_classes << self
37
+
38
+ include Readable::InstanceMethods
39
+ extend Readable::ClassMethods
40
+ extend Readable::Scopes
41
+ end
38
42
  end
39
43
 
40
44
  def using_postgresql?
@@ -1,3 +1,3 @@
1
1
  module Unread
2
- VERSION = '0.8.2'
2
+ VERSION = '0.8.3'
3
3
  end
@@ -27,6 +27,14 @@ describe Unread::Base do
27
27
  rm2 = @reader.read_mark_global(Email)
28
28
  }.to perform_queries(1)
29
29
  end
30
+
31
+ it "should be idempotent" do
32
+ expect {
33
+ Reader.acts_as_reader
34
+ Reader.acts_as_reader
35
+ Reader.acts_as_reader
36
+ }.to_not change { ReadMark.reader_classes }
37
+ end
30
38
  end
31
39
 
32
40
  describe :acts_as_readable do
@@ -41,5 +49,13 @@ describe Unread::Base do
41
49
  it "should use default options" do
42
50
  expect(Email.readable_options).to eq({ :on => :updated_at })
43
51
  end
52
+
53
+ it "should be idempotent" do
54
+ expect {
55
+ Document.acts_as_readable
56
+ Document.acts_as_readable
57
+ Document.acts_as_readable
58
+ }.to_not change { ReadMark.readable_classes }
59
+ end
44
60
  end
45
61
  end
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'mysql2'
29
29
  s.add_development_dependency 'pg'
30
30
  s.add_development_dependency 'rspec'
31
- s.add_development_dependency 'simplecov', '~> 0.11.0'
31
+ s.add_development_dependency 'simplecov', RUBY_VERSION < '2' ? '~> 0.11.2' : '>= 0.11.2'
32
32
  s.add_development_dependency 'coveralls'
33
33
  s.add_development_dependency 'appraisal'
34
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unread
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Georg Ledermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-22 00:00:00.000000000 Z
11
+ date: 2016-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -112,16 +112,16 @@ dependencies:
112
112
  name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 0.11.0
117
+ version: 0.11.2
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 0.11.0
124
+ version: 0.11.2
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: coveralls
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -227,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
227
  version: '0'
228
228
  requirements: []
229
229
  rubyforge_project: unread
230
- rubygems_version: 2.6.6
230
+ rubygems_version: 2.6.8
231
231
  signing_key:
232
232
  specification_version: 4
233
233
  summary: Manages read/unread status of ActiveRecord objects