mongoid_rateable 0.3.3 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.github/FUNDING.yml +13 -0
- data/.ruby-version +1 -0
- data/.travis.yml +24 -1
- data/Appraisals +23 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +9 -8
- data/{README.rdoc → README.md} +49 -35
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/gemfiles/mongoid_3.gemfile +16 -0
- data/gemfiles/mongoid_3.gemfile.lock +116 -0
- data/gemfiles/mongoid_4.gemfile +16 -0
- data/gemfiles/mongoid_4.gemfile.lock +127 -0
- data/gemfiles/mongoid_5.gemfile +16 -0
- data/gemfiles/mongoid_5.gemfile.lock +129 -0
- data/gemfiles/mongoid_6.gemfile +16 -0
- data/gemfiles/mongoid_6.gemfile.lock +125 -0
- data/gemfiles/mongoid_7.gemfile +16 -0
- data/gemfiles/mongoid_7.gemfile.lock +125 -0
- data/gemfiles/mongoid_8.gemfile +16 -0
- data/gemfiles/mongoid_8.gemfile.lock +139 -0
- data/lib/mongoid_rateable/rateable.rb +21 -12
- data/lib/mongoid_rateable/rating.rb +1 -1
- data/lib/mongoid_rateable.rb +0 -1
- data/mongoid_rateable.gemspec +43 -47
- data/spec/models/post.rb +1 -0
- data/spec/models/user.rb +1 -0
- data/spec/rateable_spec.rb +40 -36
- data/spec/spec_helper.rb +21 -13
- data/spec/support/database_cleaner.rb +36 -0
- metadata +90 -43
- data/.rvmrc +0 -2
- data/Gemfile.lock +0 -85
- data/lib/mongoid_rateable/version.rb +0 -3
data/mongoid_rateable.gemspec
CHANGED
@@ -2,80 +2,76 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: mongoid_rateable 0.
|
5
|
+
# stub: mongoid_rateable 0.4.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
|
-
s.name = "mongoid_rateable"
|
9
|
-
s.version = "0.
|
8
|
+
s.name = "mongoid_rateable".freeze
|
9
|
+
s.version = "0.4.1"
|
10
10
|
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
-
s.require_paths = ["lib"]
|
13
|
-
s.authors = ["
|
14
|
-
s.date = "
|
15
|
-
s.description = "Provides fields and methods for the rating manipulation on Mongoid documents."
|
16
|
-
s.email = "psavichev@gmail.com"
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib".freeze]
|
13
|
+
s.authors = ["Petr Savichev (proton)".freeze]
|
14
|
+
s.date = "2023-03-07"
|
15
|
+
s.description = "Provides fields and methods for the rating manipulation on Mongoid documents.".freeze
|
16
|
+
s.email = "psavichev@gmail.com".freeze
|
17
17
|
s.extra_rdoc_files = [
|
18
|
+
"CHANGELOG.md",
|
18
19
|
"LICENSE.txt",
|
19
|
-
"README.
|
20
|
+
"README.md",
|
20
21
|
"TODO"
|
21
22
|
]
|
22
23
|
s.files = [
|
24
|
+
".github/FUNDING.yml",
|
23
25
|
".rspec",
|
24
|
-
".
|
26
|
+
".ruby-version",
|
25
27
|
".travis.yml",
|
28
|
+
"Appraisals",
|
26
29
|
"CHANGELOG.md",
|
27
30
|
"Gemfile",
|
28
|
-
"Gemfile.lock",
|
29
31
|
"LICENSE.txt",
|
30
|
-
"README.
|
32
|
+
"README.md",
|
31
33
|
"Rakefile",
|
32
34
|
"TODO",
|
33
35
|
"VERSION",
|
36
|
+
"gemfiles/mongoid_3.gemfile",
|
37
|
+
"gemfiles/mongoid_3.gemfile.lock",
|
38
|
+
"gemfiles/mongoid_4.gemfile",
|
39
|
+
"gemfiles/mongoid_4.gemfile.lock",
|
40
|
+
"gemfiles/mongoid_5.gemfile",
|
41
|
+
"gemfiles/mongoid_5.gemfile.lock",
|
42
|
+
"gemfiles/mongoid_6.gemfile",
|
43
|
+
"gemfiles/mongoid_6.gemfile.lock",
|
44
|
+
"gemfiles/mongoid_7.gemfile",
|
45
|
+
"gemfiles/mongoid_7.gemfile.lock",
|
46
|
+
"gemfiles/mongoid_8.gemfile",
|
47
|
+
"gemfiles/mongoid_8.gemfile.lock",
|
34
48
|
"lib/mongoid_rateable.rb",
|
35
49
|
"lib/mongoid_rateable/rateable.rb",
|
36
50
|
"lib/mongoid_rateable/rating.rb",
|
37
|
-
"lib/mongoid_rateable/version.rb",
|
38
51
|
"mongoid_rateable.gemspec",
|
39
52
|
"spec/models/article.rb",
|
40
53
|
"spec/models/comment.rb",
|
41
54
|
"spec/models/post.rb",
|
42
55
|
"spec/models/user.rb",
|
43
56
|
"spec/rateable_spec.rb",
|
44
|
-
"spec/spec_helper.rb"
|
57
|
+
"spec/spec_helper.rb",
|
58
|
+
"spec/support/database_cleaner.rb"
|
45
59
|
]
|
46
|
-
s.homepage = "http://github.com/proton/mongoid_rateable"
|
47
|
-
s.licenses = ["MIT"]
|
48
|
-
s.rubygems_version = "
|
49
|
-
s.summary = "Rating functionality for Mongoid documents"
|
60
|
+
s.homepage = "http://github.com/proton/mongoid_rateable".freeze
|
61
|
+
s.licenses = ["MIT".freeze]
|
62
|
+
s.rubygems_version = "3.4.6".freeze
|
63
|
+
s.summary = "Rating functionality for Mongoid documents".freeze
|
50
64
|
|
51
|
-
|
52
|
-
s.specification_version = 4
|
65
|
+
s.specification_version = 4
|
53
66
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
s.add_dependency(%q<mongoid>, ["~> 3.0"])
|
64
|
-
s.add_dependency(%q<bundler>, ["~> 1"])
|
65
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6"])
|
66
|
-
s.add_dependency(%q<simplecov>, ["~> 0.4"])
|
67
|
-
s.add_dependency(%q<rdoc>, ["~> 3"])
|
68
|
-
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
69
|
-
s.add_dependency(%q<database_cleaner>, ["~> 0"])
|
70
|
-
end
|
71
|
-
else
|
72
|
-
s.add_dependency(%q<mongoid>, ["~> 3.0"])
|
73
|
-
s.add_dependency(%q<bundler>, ["~> 1"])
|
74
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6"])
|
75
|
-
s.add_dependency(%q<simplecov>, ["~> 0.4"])
|
76
|
-
s.add_dependency(%q<rdoc>, ["~> 3"])
|
77
|
-
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
78
|
-
s.add_dependency(%q<database_cleaner>, ["~> 0"])
|
79
|
-
end
|
67
|
+
s.add_runtime_dependency(%q<mongoid>.freeze, [">= 3.0"])
|
68
|
+
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
|
69
|
+
s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.1.1"])
|
70
|
+
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.7"])
|
71
|
+
s.add_development_dependency(%q<yard>.freeze, [">= 0"])
|
72
|
+
s.add_development_dependency(%q<rspec>.freeze, [">= 3.0.0"])
|
73
|
+
s.add_development_dependency(%q<appraisal>.freeze, [">= 0"])
|
74
|
+
s.add_development_dependency(%q<coveralls>.freeze, [">= 0"])
|
75
|
+
s.add_development_dependency(%q<database_cleaner-mongoid>.freeze, ["~> 2.0", ">= 2.0.1"])
|
80
76
|
end
|
81
77
|
|
data/spec/models/post.rb
CHANGED
data/spec/models/user.rb
CHANGED
data/spec/rateable_spec.rb
CHANGED
@@ -12,7 +12,7 @@ describe Post do
|
|
12
12
|
|
13
13
|
it "should have Mongoid::Rateable module" do
|
14
14
|
#TODO: Refactor this
|
15
|
-
@post.class.const_get("Mongoid").const_get("Rateable").
|
15
|
+
@post.class.const_get("Mongoid").const_get("Rateable").should_not be nil
|
16
16
|
end
|
17
17
|
|
18
18
|
subject { @post }
|
@@ -29,6 +29,7 @@ describe Post do
|
|
29
29
|
it { should respond_to :unweighted_rating }
|
30
30
|
it { should respond_to :rating_marks }
|
31
31
|
it { should respond_to :user_mark }
|
32
|
+
it { should respond_to :user_marks }
|
32
33
|
|
33
34
|
describe "#rating_marks" do
|
34
35
|
it "should be proper Mongoid field" do
|
@@ -75,17 +76,17 @@ describe Post do
|
|
75
76
|
|
76
77
|
describe "#rated?" do
|
77
78
|
describe "for anyone" do
|
78
|
-
specify { @post.rated?().should
|
79
|
+
specify { @post.rated?().should be true }
|
79
80
|
end
|
80
81
|
describe "for anyone" do
|
81
|
-
specify { @article.rated?().should
|
82
|
+
specify { @article.rated?().should be false }
|
82
83
|
end
|
83
84
|
|
84
85
|
describe "for Bob" do
|
85
|
-
specify { @post.rated_by?(@bob).should
|
86
|
+
specify { @post.rated_by?(@bob).should be true }
|
86
87
|
end
|
87
88
|
describe "for Bob" do
|
88
|
-
specify { @article.rated_by?(@bob).should
|
89
|
+
specify { @article.rated_by?(@bob).should be false }
|
89
90
|
end
|
90
91
|
|
91
92
|
describe "when rated by someone else" do
|
@@ -94,13 +95,13 @@ describe Post do
|
|
94
95
|
end
|
95
96
|
|
96
97
|
describe "for Alice" do
|
97
|
-
specify { @post.rated_by?(@alice).should
|
98
|
+
specify { @post.rated_by?(@alice).should be true }
|
98
99
|
end
|
99
100
|
end
|
100
101
|
|
101
102
|
describe "when not rated by someone else" do
|
102
103
|
describe "for Sally" do
|
103
|
-
specify { @post.rated_by?(@sally).should
|
104
|
+
specify { @post.rated_by?(@sally).should be false }
|
104
105
|
end
|
105
106
|
end
|
106
107
|
end
|
@@ -117,7 +118,7 @@ describe Post do
|
|
117
118
|
end
|
118
119
|
|
119
120
|
it "should be unrated" do
|
120
|
-
@post.rated?.should
|
121
|
+
@post.rated?.should be false
|
121
122
|
end
|
122
123
|
end
|
123
124
|
|
@@ -184,6 +185,9 @@ describe Post do
|
|
184
185
|
describe "should give nil" do
|
185
186
|
specify { @post.user_mark(@alice).should be_nil}
|
186
187
|
end
|
188
|
+
describe "should give marks" do
|
189
|
+
specify { @post.user_marks([@bob, @alice]).should eq Hash[@bob.id,1] }
|
190
|
+
end
|
187
191
|
end
|
188
192
|
end
|
189
193
|
|
@@ -233,15 +237,15 @@ describe Post do
|
|
233
237
|
|
234
238
|
describe "#rated_by?" do
|
235
239
|
describe "for Bob" do
|
236
|
-
specify { @f_post.rated_by?(@bob).should
|
240
|
+
specify { @f_post.rated_by?(@bob).should be true }
|
237
241
|
end
|
238
242
|
|
239
243
|
describe "for Sally" do
|
240
|
-
specify { @f_post.rated_by?(@sally).should
|
244
|
+
specify { @f_post.rated_by?(@sally).should be true }
|
241
245
|
end
|
242
246
|
|
243
247
|
describe "for Alice" do
|
244
|
-
specify { @f_post.rated_by?(@alice).should
|
248
|
+
specify { @f_post.rated_by?(@alice).should be false}
|
245
249
|
end
|
246
250
|
end
|
247
251
|
|
@@ -283,15 +287,15 @@ describe Post do
|
|
283
287
|
|
284
288
|
describe "#rated?" do
|
285
289
|
it "should be #rated? by Bob" do
|
286
|
-
@f_post.rated_by?(@bob).should
|
290
|
+
@f_post.rated_by?(@bob).should be true
|
287
291
|
end
|
288
292
|
|
289
293
|
it "should be #rated? by Sally" do
|
290
|
-
@f_post.rated_by?(@sally).should
|
294
|
+
@f_post.rated_by?(@sally).should be true
|
291
295
|
end
|
292
296
|
|
293
297
|
it "should be not #rated? by Alice" do
|
294
|
-
@f_post.rated_by?(@alice).should
|
298
|
+
@f_post.rated_by?(@alice).should be false
|
295
299
|
end
|
296
300
|
end
|
297
301
|
|
@@ -331,15 +335,15 @@ describe Post do
|
|
331
335
|
|
332
336
|
describe "#rated?" do
|
333
337
|
it "should be #rated? by Sally" do
|
334
|
-
@f_post.rated_by?(@sally).should
|
338
|
+
@f_post.rated_by?(@sally).should be true
|
335
339
|
end
|
336
340
|
|
337
341
|
it "should be not #rated? by Bob" do
|
338
|
-
@f_post.rated_by?(@bob).should
|
342
|
+
@f_post.rated_by?(@bob).should be false
|
339
343
|
end
|
340
344
|
|
341
345
|
it "should be #rated?" do
|
342
|
-
@f_post.rated?.should
|
346
|
+
@f_post.rated?.should be true
|
343
347
|
end
|
344
348
|
end
|
345
349
|
|
@@ -464,7 +468,7 @@ describe Comment do
|
|
464
468
|
|
465
469
|
it "should have Mongoid::Rateable module" do
|
466
470
|
#TODO: Refactor this
|
467
|
-
@comment1.class.const_get("Mongoid").const_get("Rateable").
|
471
|
+
@comment1.class.const_get("Mongoid").const_get("Rateable").should_not be nil
|
468
472
|
end
|
469
473
|
|
470
474
|
subject { @comment1 }
|
@@ -512,7 +516,7 @@ describe Comment do
|
|
512
516
|
context "when rate_value in rating range" do
|
513
517
|
it { expect { @comment1.rate 1, @sally }.not_to raise_error }
|
514
518
|
end
|
515
|
-
|
519
|
+
|
516
520
|
context "when rate_value not in rating range" do
|
517
521
|
it { expect { @comment1.rate 9, @sally }.to raise_error(ArgumentError) }
|
518
522
|
end
|
@@ -527,17 +531,17 @@ describe Comment do
|
|
527
531
|
|
528
532
|
describe "#rated?" do
|
529
533
|
describe "for anyone" do
|
530
|
-
specify { @comment1.rated?().should
|
534
|
+
specify { @comment1.rated?().should be true }
|
531
535
|
end
|
532
536
|
describe "for anyone" do
|
533
|
-
specify { @comment2.rated?().should
|
537
|
+
specify { @comment2.rated?().should be false }
|
534
538
|
end
|
535
539
|
|
536
540
|
describe "for Bob" do
|
537
|
-
specify { @comment1.rated_by?(@bob).should
|
541
|
+
specify { @comment1.rated_by?(@bob).should be true }
|
538
542
|
end
|
539
543
|
describe "for Bob" do
|
540
|
-
specify { @comment2.rated_by?(@bob).should
|
544
|
+
specify { @comment2.rated_by?(@bob).should be false }
|
541
545
|
end
|
542
546
|
|
543
547
|
describe "when rated by someone else" do
|
@@ -546,13 +550,13 @@ describe Comment do
|
|
546
550
|
end
|
547
551
|
|
548
552
|
describe "for Alice" do
|
549
|
-
specify { @comment1.rated_by?(@alice).should
|
553
|
+
specify { @comment1.rated_by?(@alice).should be true }
|
550
554
|
end
|
551
555
|
end
|
552
556
|
|
553
557
|
describe "when not rated by someone else" do
|
554
558
|
describe "for Sally" do
|
555
|
-
specify { @comment1.rated_by?(@sally).should
|
559
|
+
specify { @comment1.rated_by?(@sally).should be false }
|
556
560
|
end
|
557
561
|
end
|
558
562
|
end
|
@@ -569,7 +573,7 @@ describe Comment do
|
|
569
573
|
end
|
570
574
|
|
571
575
|
it "should be unrated" do
|
572
|
-
@comment1.rated?.should
|
576
|
+
@comment1.rated?.should be false
|
573
577
|
end
|
574
578
|
end
|
575
579
|
|
@@ -686,15 +690,15 @@ describe Comment do
|
|
686
690
|
|
687
691
|
describe "#rated_by?" do
|
688
692
|
describe "for Bob" do
|
689
|
-
specify { @f_comment.rated_by?(@bob).should
|
693
|
+
specify { @f_comment.rated_by?(@bob).should be true }
|
690
694
|
end
|
691
695
|
|
692
696
|
describe "for Sally" do
|
693
|
-
specify { @f_comment.rated_by?(@sally).should
|
697
|
+
specify { @f_comment.rated_by?(@sally).should be true }
|
694
698
|
end
|
695
699
|
|
696
700
|
describe "for Alice" do
|
697
|
-
specify { @f_comment.rated_by?(@alice).should
|
701
|
+
specify { @f_comment.rated_by?(@alice).should be false}
|
698
702
|
end
|
699
703
|
end
|
700
704
|
|
@@ -733,15 +737,15 @@ describe Comment do
|
|
733
737
|
|
734
738
|
describe "#rated?" do
|
735
739
|
it "should be #rated? by Bob" do
|
736
|
-
@f_comment.rated_by?(@bob).should
|
740
|
+
@f_comment.rated_by?(@bob).should be true
|
737
741
|
end
|
738
742
|
|
739
743
|
it "should be #rated? by Sally" do
|
740
|
-
@f_comment.rated_by?(@sally).should
|
744
|
+
@f_comment.rated_by?(@sally).should be true
|
741
745
|
end
|
742
746
|
|
743
747
|
it "should be not #rated? by Alice" do
|
744
|
-
@f_comment.rated_by?(@alice).should
|
748
|
+
@f_comment.rated_by?(@alice).should be false
|
745
749
|
end
|
746
750
|
end
|
747
751
|
|
@@ -782,15 +786,15 @@ describe Comment do
|
|
782
786
|
|
783
787
|
describe "#rated?" do
|
784
788
|
it "should be #rated? by Sally" do
|
785
|
-
@f_comment.rated_by?(@sally).should
|
789
|
+
@f_comment.rated_by?(@sally).should be true
|
786
790
|
end
|
787
791
|
|
788
792
|
it "should be not #rated? by Bob" do
|
789
|
-
@f_comment.rated_by?(@bob).should
|
793
|
+
@f_comment.rated_by?(@bob).should be false
|
790
794
|
end
|
791
795
|
|
792
796
|
it "should be #rated?" do
|
793
|
-
@f_comment.rated?.should
|
797
|
+
@f_comment.rated?.should be true
|
794
798
|
end
|
795
799
|
end
|
796
800
|
|
@@ -901,4 +905,4 @@ describe Comment do
|
|
901
905
|
# end
|
902
906
|
end
|
903
907
|
end
|
904
|
-
end
|
908
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,35 +1,43 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__),
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
3
|
|
4
|
-
MODELS = File.join(File.dirname(__FILE__),
|
4
|
+
MODELS = File.join(File.dirname(__FILE__), 'models')
|
5
5
|
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
6
|
+
require 'rubygems'
|
7
|
+
require 'mongoid'
|
8
|
+
require 'mongoid_rateable'
|
9
|
+
require 'simplecov'
|
10
|
+
require 'database_cleaner/mongoid'
|
11
|
+
require 'coveralls'
|
11
12
|
|
13
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
|
14
|
+
SimpleCov::Formatter::HTMLFormatter,
|
15
|
+
Coveralls::SimpleCov::Formatter
|
16
|
+
])
|
12
17
|
SimpleCov.start
|
13
18
|
|
14
|
-
Dir["#{MODELS}/*.rb"].each { |f| require f }
|
15
|
-
|
16
19
|
Mongoid.configure do |config|
|
17
20
|
config.connect_to "mongoid_rateable_test"
|
18
21
|
end
|
22
|
+
|
19
23
|
Mongoid.logger = Logger.new($stdout)
|
20
24
|
|
21
|
-
|
25
|
+
if Mongoid::VERSION>'5'
|
26
|
+
Mongo::Logger.logger.level = ::Logger::FATAL
|
27
|
+
end
|
28
|
+
|
29
|
+
Dir["#{MODELS}/*.rb"].each { |f| require f }
|
22
30
|
|
23
31
|
RSpec.configure do |config|
|
24
32
|
config.before(:all) do
|
25
|
-
DatabaseCleaner.strategy = :
|
33
|
+
DatabaseCleaner[:mongoid].strategy = :deletion
|
26
34
|
end
|
27
35
|
|
28
36
|
config.before(:each) do
|
29
|
-
DatabaseCleaner.start
|
37
|
+
DatabaseCleaner[:mongoid].start
|
30
38
|
end
|
31
39
|
|
32
40
|
config.after(:each) do
|
33
|
-
DatabaseCleaner.clean
|
41
|
+
DatabaseCleaner[:mongoid].clean
|
34
42
|
end
|
35
43
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class DatabaseCleaner
|
2
|
+
class << self
|
3
|
+
def clean
|
4
|
+
new.clean
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def clean
|
9
|
+
if mongoid4?
|
10
|
+
collections.each { |c| database[c].find.remove_all }
|
11
|
+
else
|
12
|
+
collections.each { |c| database[c].find.delete_many }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def mongoid4?
|
19
|
+
Mongoid::VERSION.start_with? '4'
|
20
|
+
end
|
21
|
+
|
22
|
+
def database
|
23
|
+
if mongoid4?
|
24
|
+
Mongoid.default_session
|
25
|
+
else
|
26
|
+
Mongoid::Clients.default
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def collections
|
31
|
+
database['system.namespaces'].find(name: { '$not' => /\.system\.|\$/ }).to_a.map do |collection|
|
32
|
+
_, name = collection['name'].split('.', 2)
|
33
|
+
name
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|