mongoid_rateable 0.3.3 → 0.4.1

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.
@@ -0,0 +1,129 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (4.2.11.1)
5
+ activesupport (= 4.2.11.1)
6
+ builder (~> 3.1)
7
+ activesupport (4.2.11.1)
8
+ i18n (~> 0.7)
9
+ minitest (~> 5.1)
10
+ thread_safe (~> 0.3, >= 0.3.4)
11
+ tzinfo (~> 1.1)
12
+ addressable (2.7.0)
13
+ public_suffix (>= 2.0.2, < 5.0)
14
+ appraisal (2.2.0)
15
+ bundler
16
+ rake
17
+ thor (>= 0.14.0)
18
+ bson (4.7.0)
19
+ builder (3.2.4)
20
+ concurrent-ruby (1.1.5)
21
+ coveralls (0.7.2)
22
+ multi_json (~> 1.3)
23
+ rest-client (= 1.6.7)
24
+ simplecov (>= 0.7)
25
+ term-ansicolor (= 1.2.2)
26
+ thor (= 0.18.1)
27
+ database_cleaner (1.7.0)
28
+ descendants_tracker (0.0.4)
29
+ thread_safe (~> 0.3, >= 0.3.1)
30
+ diff-lcs (1.3)
31
+ docile (1.3.2)
32
+ faraday (0.9.2)
33
+ multipart-post (>= 1.2, < 3)
34
+ git (1.5.0)
35
+ github_api (0.11.3)
36
+ addressable (~> 2.3)
37
+ descendants_tracker (~> 0.0.1)
38
+ faraday (~> 0.8, < 0.10)
39
+ hashie (>= 1.2)
40
+ multi_json (>= 1.7.5, < 2.0)
41
+ nokogiri (~> 1.6.0)
42
+ oauth2
43
+ hashie (4.0.0)
44
+ highline (2.0.3)
45
+ i18n (0.9.5)
46
+ concurrent-ruby (~> 1.0)
47
+ jeweler (2.1.2)
48
+ builder
49
+ bundler (>= 1.0)
50
+ git (>= 1.2.5)
51
+ github_api (~> 0.11.0)
52
+ highline (>= 1.6.15)
53
+ nokogiri (>= 1.5.10)
54
+ rake
55
+ rdoc
56
+ semver
57
+ json (2.3.0)
58
+ jwt (2.2.1)
59
+ mime-types (3.3)
60
+ mime-types-data (~> 3.2015)
61
+ mime-types-data (3.2019.1009)
62
+ mini_portile2 (2.1.0)
63
+ minitest (5.13.0)
64
+ mongo (2.11.2)
65
+ bson (>= 4.6.0, < 5.0.0)
66
+ mongoid (5.2.0)
67
+ activemodel (~> 4.0)
68
+ mongo (>= 2.4.1, < 3.0.0)
69
+ origin (~> 2.3)
70
+ tzinfo (>= 0.3.37)
71
+ multi_json (1.14.1)
72
+ multi_xml (0.6.0)
73
+ multipart-post (2.1.1)
74
+ nokogiri (1.6.8.1)
75
+ mini_portile2 (~> 2.1.0)
76
+ oauth2 (1.4.2)
77
+ faraday (>= 0.8, < 2.0)
78
+ jwt (>= 1.0, < 3.0)
79
+ multi_json (~> 1.3)
80
+ multi_xml (~> 0.5)
81
+ rack (>= 1.2, < 3)
82
+ origin (2.3.1)
83
+ public_suffix (4.0.1)
84
+ rack (2.0.8)
85
+ rake (13.0.1)
86
+ rdoc (6.2.0)
87
+ rest-client (1.6.7)
88
+ mime-types (>= 1.16)
89
+ rspec (3.9.0)
90
+ rspec-core (~> 3.9.0)
91
+ rspec-expectations (~> 3.9.0)
92
+ rspec-mocks (~> 3.9.0)
93
+ rspec-core (3.9.0)
94
+ rspec-support (~> 3.9.0)
95
+ rspec-expectations (3.9.0)
96
+ diff-lcs (>= 1.2.0, < 2.0)
97
+ rspec-support (~> 3.9.0)
98
+ rspec-mocks (3.9.0)
99
+ diff-lcs (>= 1.2.0, < 2.0)
100
+ rspec-support (~> 3.9.0)
101
+ rspec-support (3.9.0)
102
+ semver (1.0.1)
103
+ simplecov (0.17.1)
104
+ docile (~> 1.1)
105
+ json (>= 1.8, < 3)
106
+ simplecov-html (~> 0.10.0)
107
+ simplecov-html (0.10.2)
108
+ term-ansicolor (1.2.2)
109
+ tins (~> 0.8)
110
+ thor (0.18.1)
111
+ thread_safe (0.3.6)
112
+ tins (0.13.2)
113
+ tzinfo (1.2.5)
114
+ thread_safe (~> 0.1)
115
+ yard (0.9.20)
116
+
117
+ PLATFORMS
118
+ ruby
119
+
120
+ DEPENDENCIES
121
+ appraisal
122
+ bundler
123
+ coveralls
124
+ database_cleaner (>= 0.8.0)
125
+ jeweler (~> 2.1.1)
126
+ mongoid (= 5.2.0)
127
+ rspec (>= 3.0.0)
128
+ simplecov (~> 0.7)
129
+ yard
@@ -0,0 +1,16 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "mongoid", "6.1.0"
6
+
7
+ group :development do
8
+ gem "bundler"
9
+ gem "jeweler", "~> 2.1.1"
10
+ gem "simplecov", "~> 0.7", require: false
11
+ gem "yard"
12
+ gem "rspec", ">= 3.0.0"
13
+ gem "appraisal"
14
+ gem "coveralls", require: false
15
+ gem "database_cleaner-mongoid", "~> 2.0", ">= 2.0.1"
16
+ end
@@ -0,0 +1,125 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (5.2.4.1)
5
+ activesupport (= 5.2.4.1)
6
+ activesupport (5.2.4.1)
7
+ concurrent-ruby (~> 1.0, >= 1.0.2)
8
+ i18n (>= 0.7, < 2)
9
+ minitest (~> 5.1)
10
+ tzinfo (~> 1.1)
11
+ addressable (2.7.0)
12
+ public_suffix (>= 2.0.2, < 5.0)
13
+ appraisal (2.2.0)
14
+ bundler
15
+ rake
16
+ thor (>= 0.14.0)
17
+ bson (4.7.0)
18
+ builder (3.2.4)
19
+ concurrent-ruby (1.1.5)
20
+ coveralls (0.7.2)
21
+ multi_json (~> 1.3)
22
+ rest-client (= 1.6.7)
23
+ simplecov (>= 0.7)
24
+ term-ansicolor (= 1.2.2)
25
+ thor (= 0.18.1)
26
+ database_cleaner (1.7.0)
27
+ descendants_tracker (0.0.4)
28
+ thread_safe (~> 0.3, >= 0.3.1)
29
+ diff-lcs (1.3)
30
+ docile (1.3.2)
31
+ faraday (0.9.2)
32
+ multipart-post (>= 1.2, < 3)
33
+ git (1.5.0)
34
+ github_api (0.11.3)
35
+ addressable (~> 2.3)
36
+ descendants_tracker (~> 0.0.1)
37
+ faraday (~> 0.8, < 0.10)
38
+ hashie (>= 1.2)
39
+ multi_json (>= 1.7.5, < 2.0)
40
+ nokogiri (~> 1.6.0)
41
+ oauth2
42
+ hashie (4.0.0)
43
+ highline (2.0.3)
44
+ i18n (1.7.0)
45
+ concurrent-ruby (~> 1.0)
46
+ jeweler (2.1.2)
47
+ builder
48
+ bundler (>= 1.0)
49
+ git (>= 1.2.5)
50
+ github_api (~> 0.11.0)
51
+ highline (>= 1.6.15)
52
+ nokogiri (>= 1.5.10)
53
+ rake
54
+ rdoc
55
+ semver
56
+ json (2.3.0)
57
+ jwt (2.2.1)
58
+ mime-types (3.3)
59
+ mime-types-data (~> 3.2015)
60
+ mime-types-data (3.2019.1009)
61
+ mini_portile2 (2.1.0)
62
+ minitest (5.13.0)
63
+ mongo (2.11.2)
64
+ bson (>= 4.6.0, < 5.0.0)
65
+ mongoid (6.1.0)
66
+ activemodel (~> 5.0)
67
+ mongo (>= 2.4.1, < 3.0.0)
68
+ multi_json (1.14.1)
69
+ multi_xml (0.6.0)
70
+ multipart-post (2.1.1)
71
+ nokogiri (1.6.8.1)
72
+ mini_portile2 (~> 2.1.0)
73
+ oauth2 (1.4.2)
74
+ faraday (>= 0.8, < 2.0)
75
+ jwt (>= 1.0, < 3.0)
76
+ multi_json (~> 1.3)
77
+ multi_xml (~> 0.5)
78
+ rack (>= 1.2, < 3)
79
+ public_suffix (4.0.1)
80
+ rack (2.0.8)
81
+ rake (13.0.1)
82
+ rdoc (6.2.0)
83
+ rest-client (1.6.7)
84
+ mime-types (>= 1.16)
85
+ rspec (3.9.0)
86
+ rspec-core (~> 3.9.0)
87
+ rspec-expectations (~> 3.9.0)
88
+ rspec-mocks (~> 3.9.0)
89
+ rspec-core (3.9.0)
90
+ rspec-support (~> 3.9.0)
91
+ rspec-expectations (3.9.0)
92
+ diff-lcs (>= 1.2.0, < 2.0)
93
+ rspec-support (~> 3.9.0)
94
+ rspec-mocks (3.9.0)
95
+ diff-lcs (>= 1.2.0, < 2.0)
96
+ rspec-support (~> 3.9.0)
97
+ rspec-support (3.9.0)
98
+ semver (1.0.1)
99
+ simplecov (0.17.1)
100
+ docile (~> 1.1)
101
+ json (>= 1.8, < 3)
102
+ simplecov-html (~> 0.10.0)
103
+ simplecov-html (0.10.2)
104
+ term-ansicolor (1.2.2)
105
+ tins (~> 0.8)
106
+ thor (0.18.1)
107
+ thread_safe (0.3.6)
108
+ tins (0.13.2)
109
+ tzinfo (1.2.5)
110
+ thread_safe (~> 0.1)
111
+ yard (0.9.20)
112
+
113
+ PLATFORMS
114
+ ruby
115
+
116
+ DEPENDENCIES
117
+ appraisal
118
+ bundler
119
+ coveralls
120
+ database_cleaner (>= 0.8.0)
121
+ jeweler (~> 2.1.1)
122
+ mongoid (= 6.1.0)
123
+ rspec (>= 3.0.0)
124
+ simplecov (~> 0.7)
125
+ yard
@@ -0,0 +1,16 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "mongoid", "7.5.2"
6
+
7
+ group :development do
8
+ gem "bundler"
9
+ gem "jeweler", "~> 2.1.1"
10
+ gem "simplecov", "~> 0.7", require: false
11
+ gem "yard"
12
+ gem "rspec", ">= 3.0.0"
13
+ gem "appraisal"
14
+ gem "coveralls", require: false
15
+ gem "database_cleaner-mongoid", "~> 2.0", ">= 2.0.1"
16
+ end
@@ -0,0 +1,125 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (5.2.4.1)
5
+ activesupport (= 5.2.4.1)
6
+ activesupport (5.2.4.1)
7
+ concurrent-ruby (~> 1.0, >= 1.0.2)
8
+ i18n (>= 0.7, < 2)
9
+ minitest (~> 5.1)
10
+ tzinfo (~> 1.1)
11
+ addressable (2.7.0)
12
+ public_suffix (>= 2.0.2, < 5.0)
13
+ appraisal (2.2.0)
14
+ bundler
15
+ rake
16
+ thor (>= 0.14.0)
17
+ bson (4.7.0)
18
+ builder (3.2.4)
19
+ concurrent-ruby (1.1.5)
20
+ coveralls (0.7.2)
21
+ multi_json (~> 1.3)
22
+ rest-client (= 1.6.7)
23
+ simplecov (>= 0.7)
24
+ term-ansicolor (= 1.2.2)
25
+ thor (= 0.18.1)
26
+ database_cleaner (1.7.0)
27
+ descendants_tracker (0.0.4)
28
+ thread_safe (~> 0.3, >= 0.3.1)
29
+ diff-lcs (1.3)
30
+ docile (1.3.2)
31
+ faraday (0.9.2)
32
+ multipart-post (>= 1.2, < 3)
33
+ git (1.5.0)
34
+ github_api (0.11.3)
35
+ addressable (~> 2.3)
36
+ descendants_tracker (~> 0.0.1)
37
+ faraday (~> 0.8, < 0.10)
38
+ hashie (>= 1.2)
39
+ multi_json (>= 1.7.5, < 2.0)
40
+ nokogiri (~> 1.6.0)
41
+ oauth2
42
+ hashie (4.0.0)
43
+ highline (2.0.3)
44
+ i18n (1.7.0)
45
+ concurrent-ruby (~> 1.0)
46
+ jeweler (2.1.2)
47
+ builder
48
+ bundler (>= 1.0)
49
+ git (>= 1.2.5)
50
+ github_api (~> 0.11.0)
51
+ highline (>= 1.6.15)
52
+ nokogiri (>= 1.5.10)
53
+ rake
54
+ rdoc
55
+ semver
56
+ json (2.3.0)
57
+ jwt (2.2.1)
58
+ mime-types (3.3)
59
+ mime-types-data (~> 3.2015)
60
+ mime-types-data (3.2019.1009)
61
+ mini_portile2 (2.1.0)
62
+ minitest (5.13.0)
63
+ mongo (2.11.2)
64
+ bson (>= 4.6.0, < 5.0.0)
65
+ mongoid (7.0.0)
66
+ activemodel (>= 5.1, < 6.0.0)
67
+ mongo (>= 2.5.1, < 3.0.0)
68
+ multi_json (1.14.1)
69
+ multi_xml (0.6.0)
70
+ multipart-post (2.1.1)
71
+ nokogiri (1.6.8.1)
72
+ mini_portile2 (~> 2.1.0)
73
+ oauth2 (1.4.2)
74
+ faraday (>= 0.8, < 2.0)
75
+ jwt (>= 1.0, < 3.0)
76
+ multi_json (~> 1.3)
77
+ multi_xml (~> 0.5)
78
+ rack (>= 1.2, < 3)
79
+ public_suffix (4.0.1)
80
+ rack (2.0.8)
81
+ rake (13.0.1)
82
+ rdoc (6.2.0)
83
+ rest-client (1.6.7)
84
+ mime-types (>= 1.16)
85
+ rspec (3.9.0)
86
+ rspec-core (~> 3.9.0)
87
+ rspec-expectations (~> 3.9.0)
88
+ rspec-mocks (~> 3.9.0)
89
+ rspec-core (3.9.0)
90
+ rspec-support (~> 3.9.0)
91
+ rspec-expectations (3.9.0)
92
+ diff-lcs (>= 1.2.0, < 2.0)
93
+ rspec-support (~> 3.9.0)
94
+ rspec-mocks (3.9.0)
95
+ diff-lcs (>= 1.2.0, < 2.0)
96
+ rspec-support (~> 3.9.0)
97
+ rspec-support (3.9.0)
98
+ semver (1.0.1)
99
+ simplecov (0.17.1)
100
+ docile (~> 1.1)
101
+ json (>= 1.8, < 3)
102
+ simplecov-html (~> 0.10.0)
103
+ simplecov-html (0.10.2)
104
+ term-ansicolor (1.2.2)
105
+ tins (~> 0.8)
106
+ thor (0.18.1)
107
+ thread_safe (0.3.6)
108
+ tins (0.13.2)
109
+ tzinfo (1.2.5)
110
+ thread_safe (~> 0.1)
111
+ yard (0.9.20)
112
+
113
+ PLATFORMS
114
+ ruby
115
+
116
+ DEPENDENCIES
117
+ appraisal
118
+ bundler
119
+ coveralls
120
+ database_cleaner (>= 0.8.0)
121
+ jeweler (~> 2.1.1)
122
+ mongoid (= 7.0.0)
123
+ rspec (>= 3.0.0)
124
+ simplecov (~> 0.7)
125
+ yard
@@ -0,0 +1,16 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "mongoid", "8.0.3"
6
+
7
+ group :development do
8
+ gem "bundler"
9
+ gem "jeweler", "~> 2.1.1"
10
+ gem "simplecov", "~> 0.7", require: false
11
+ gem "yard"
12
+ gem "rspec", ">= 3.0.0"
13
+ gem "appraisal"
14
+ gem "coveralls", require: false
15
+ gem "database_cleaner-mongoid", "~> 2.0", ">= 2.0.1"
16
+ end
@@ -0,0 +1,139 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (7.0.4.2)
5
+ activesupport (= 7.0.4.2)
6
+ activesupport (7.0.4.2)
7
+ concurrent-ruby (~> 1.0, >= 1.0.2)
8
+ i18n (>= 1.6, < 2)
9
+ minitest (>= 5.1)
10
+ tzinfo (~> 2.0)
11
+ addressable (2.8.1)
12
+ public_suffix (>= 2.0.2, < 6.0)
13
+ appraisal (2.4.1)
14
+ bundler
15
+ rake
16
+ thor (>= 0.14.0)
17
+ bson (4.15.0)
18
+ builder (3.2.4)
19
+ concurrent-ruby (1.2.2)
20
+ coveralls (0.8.23)
21
+ json (>= 1.8, < 3)
22
+ simplecov (~> 0.16.1)
23
+ term-ansicolor (~> 1.3)
24
+ thor (>= 0.19.4, < 2.0)
25
+ tins (~> 1.6)
26
+ database_cleaner-core (2.0.1)
27
+ database_cleaner-mongoid (2.0.1)
28
+ database_cleaner-core (~> 2.0.0)
29
+ mongoid
30
+ descendants_tracker (0.0.4)
31
+ thread_safe (~> 0.3, >= 0.3.1)
32
+ diff-lcs (1.5.0)
33
+ docile (1.4.0)
34
+ faraday (0.9.2)
35
+ multipart-post (>= 1.2, < 3)
36
+ git (1.17.1)
37
+ addressable (~> 2.8)
38
+ rchardet (~> 1.8)
39
+ github_api (0.11.3)
40
+ addressable (~> 2.3)
41
+ descendants_tracker (~> 0.0.1)
42
+ faraday (~> 0.8, < 0.10)
43
+ hashie (>= 1.2)
44
+ multi_json (>= 1.7.5, < 2.0)
45
+ nokogiri (~> 1.6.0)
46
+ oauth2
47
+ hashie (5.0.0)
48
+ highline (2.1.0)
49
+ i18n (1.12.0)
50
+ concurrent-ruby (~> 1.0)
51
+ jeweler (2.1.2)
52
+ builder
53
+ bundler (>= 1.0)
54
+ git (>= 1.2.5)
55
+ github_api (~> 0.11.0)
56
+ highline (>= 1.6.15)
57
+ nokogiri (>= 1.5.10)
58
+ rake
59
+ rdoc
60
+ semver
61
+ json (2.6.3)
62
+ jwt (2.7.0)
63
+ mini_portile2 (2.1.0)
64
+ minitest (5.18.0)
65
+ mongo (2.18.2)
66
+ bson (>= 4.14.1, < 5.0.0)
67
+ mongoid (8.0.3)
68
+ activemodel (>= 5.1, < 7.1, != 7.0.0)
69
+ mongo (>= 2.18.0, < 3.0.0)
70
+ ruby2_keywords (~> 0.0.5)
71
+ multi_json (1.15.0)
72
+ multi_xml (0.6.0)
73
+ multipart-post (2.3.0)
74
+ nokogiri (1.6.8.1)
75
+ mini_portile2 (~> 2.1.0)
76
+ oauth2 (1.4.8)
77
+ faraday (>= 0.8, < 3.0)
78
+ jwt (>= 1.0, < 3.0)
79
+ multi_json (~> 1.3)
80
+ multi_xml (~> 0.5)
81
+ rack (>= 1.2, < 3)
82
+ psych (5.1.0)
83
+ stringio
84
+ public_suffix (5.0.1)
85
+ rack (2.2.6.3)
86
+ rake (13.0.6)
87
+ rchardet (1.8.0)
88
+ rdoc (6.5.0)
89
+ psych (>= 4.0.0)
90
+ rspec (3.12.0)
91
+ rspec-core (~> 3.12.0)
92
+ rspec-expectations (~> 3.12.0)
93
+ rspec-mocks (~> 3.12.0)
94
+ rspec-core (3.12.1)
95
+ rspec-support (~> 3.12.0)
96
+ rspec-expectations (3.12.2)
97
+ diff-lcs (>= 1.2.0, < 2.0)
98
+ rspec-support (~> 3.12.0)
99
+ rspec-mocks (3.12.3)
100
+ diff-lcs (>= 1.2.0, < 2.0)
101
+ rspec-support (~> 3.12.0)
102
+ rspec-support (3.12.0)
103
+ ruby2_keywords (0.0.5)
104
+ semver (1.0.1)
105
+ simplecov (0.16.1)
106
+ docile (~> 1.1)
107
+ json (>= 1.8, < 3)
108
+ simplecov-html (~> 0.10.0)
109
+ simplecov-html (0.10.2)
110
+ stringio (3.0.5)
111
+ sync (0.5.0)
112
+ term-ansicolor (1.7.1)
113
+ tins (~> 1.0)
114
+ thor (1.2.1)
115
+ thread_safe (0.3.6)
116
+ tins (1.32.1)
117
+ sync
118
+ tzinfo (2.0.6)
119
+ concurrent-ruby (~> 1.0)
120
+ webrick (1.7.0)
121
+ yard (0.9.28)
122
+ webrick (~> 1.7.0)
123
+
124
+ PLATFORMS
125
+ x86_64-darwin-21
126
+
127
+ DEPENDENCIES
128
+ appraisal
129
+ bundler
130
+ coveralls
131
+ database_cleaner-mongoid (~> 2.0, >= 2.0.1)
132
+ jeweler (~> 2.1.1)
133
+ mongoid (= 8.0.3)
134
+ rspec (>= 3.0.0)
135
+ simplecov (~> 0.7)
136
+ yard
137
+
138
+ BUNDLED WITH
139
+ 2.4.6
@@ -7,7 +7,7 @@ module Mongoid
7
7
 
8
8
  module ClassMethods
9
9
  def rateable options = {}
10
- class_eval do
10
+ class_eval do
11
11
  self.send :include, Mongoid::Rateable
12
12
  self.rate_config options
13
13
  end
@@ -26,8 +26,8 @@ module Mongoid
26
26
 
27
27
  index({"rating_marks.rater_id" => 1, "rating_marks.rater_class" => 1})
28
28
 
29
- scope :unrated, where(:rating.exists => false)
30
- scope :rated, where(:rating.exists => true)
29
+ scope :unrated, -> { where(:rating.exists => false) }
30
+ scope :rated, -> { where(:rating.exists => true) }
31
31
  scope :rated_by, ->(rater) { where("rating_marks.rater_id" => rater.id, "rating_marks.rater_class" => rater.class.to_s) }
32
32
  scope :with_rating, ->(range) { where(:rating.gte => range.begin, :rating.lte => range.end) }
33
33
  scope :highest_rated, ->(limit=10) { order_by([:rating, :desc]).limit(limit) }
@@ -46,7 +46,7 @@ module Mongoid
46
46
  def in_rating_range?(value)
47
47
  range = rating_range if respond_to?(:rating_range)
48
48
  range ? range.include?(value.to_i) : true
49
- end
49
+ end
50
50
 
51
51
  # macro to create dynamic :rating_range class method!
52
52
  # can now even take an Array and find the range of values!
@@ -95,7 +95,7 @@ module Mongoid
95
95
  self.instance_eval(&block)
96
96
  end
97
97
  else
98
- raise ArgumentError, "Must take symbol or block argument"
98
+ raise ArgumentError, "Must take symbol or block argument"
99
99
  end
100
100
  end
101
101
  end # class methods
@@ -104,12 +104,12 @@ module Mongoid
104
104
  case rater
105
105
  when Array
106
106
  rater.each{|rater| rate(mark, rater, weight)}
107
- else
107
+ else
108
108
  if !rater
109
109
  unless respond_to?(:default_rater)
110
110
  raise ArgumentError, "No rater argument and no default_rater specified"
111
111
  end
112
- rater = default_rater
112
+ rater = default_rater
113
113
  end
114
114
  validate_rater!(rater)
115
115
  validate_rating!(mark)
@@ -126,7 +126,7 @@ module Mongoid
126
126
  case rater
127
127
  when Array
128
128
  rater.each{|rater| unrate(mark, rater, weight)}
129
- else
129
+ else
130
130
  unrate_without_rating_update(rater)
131
131
  update_rating
132
132
  end
@@ -136,7 +136,7 @@ module Mongoid
136
136
  case rater
137
137
  when Array
138
138
  rater.each{|rater| rate_and_save(mark, rater, weight)}
139
- else
139
+ else
140
140
  rate(mark, rater, weight)
141
141
  save
142
142
  end
@@ -146,7 +146,7 @@ module Mongoid
146
146
  case rater
147
147
  when Array
148
148
  rater.each{|rater| unrate_and_save(mark, rater, weight)}
149
- else
149
+ else
150
150
  unrate(rater)
151
151
  save
152
152
  end
@@ -160,7 +160,7 @@ module Mongoid
160
160
  case rater
161
161
  when Array
162
162
  rater.each{|rater| rated_by(mark, rater, weight)}
163
- else
163
+ else
164
164
  self.rating_marks.where(:rater_id => rater.id, :rater_class => rater.class.to_s).count == 1
165
165
  end
166
166
  end
@@ -197,6 +197,15 @@ module Mongoid
197
197
  r ? r.mark : nil
198
198
  end
199
199
 
200
+ def user_marks(raters)
201
+ if raters.map{|x| x.class}.uniq.count > 1
202
+ raise ArgumentError, "Raters all must be of same class."
203
+ return
204
+ end
205
+ r = self.rating_marks.in(:rater_id => raters.map(&:id), :rater_class => raters.first.class.to_s)
206
+ r ? r.inject(Hash.new(0)) { |h, e| h[e.rater_id] = e.mark ; h } : nil
207
+ end
208
+
200
209
  protected
201
210
 
202
211
  def validate_rater!(rater)
@@ -228,7 +237,7 @@ module Mongoid
228
237
  rt = (self.rates.to_f / self.weighted_rate_count.to_f) unless self.rating_marks.blank?
229
238
  write_attribute(:rating, rt)
230
239
  delta = (self.rating && self.previous_rating) ? rating-previous_rating : 0.0
231
- write_attribute(:rating_delta, delta)
240
+ write_attribute(:rating_delta, delta)
232
241
  end
233
242
 
234
243
  def check_weighted_rate_count
@@ -5,6 +5,6 @@ class RatingMark
5
5
  embedded_in :rateable, :polymorphic => true
6
6
  field :mark, :type => Integer
7
7
  field :rater_class, :type => String
8
- field :rater_id, :type => Moped::BSON::ObjectId
8
+ field :rater_id, :type => Mongoid::VERSION.start_with?('3') ? Moped::BSON::ObjectId : BSON::ObjectId
9
9
  field :weight, :type => Integer, :default => 1
10
10
  end
@@ -1,4 +1,3 @@
1
- require 'mongoid_rateable/version'
2
1
  require 'mongoid_rateable/rateable'
3
2
  require 'mongoid_rateable/rating'
4
3