rating 0.11.0 → 0.12.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/CHANGELOG.md +23 -9
- data/README.md +16 -5
- data/lib/rating/models/rating/extension.rb +1 -2
- data/lib/rating/models/rating/rate.rb +2 -2
- data/lib/rating/models/rating/rating.rb +2 -2
- data/lib/rating/version.rb +1 -1
- metadata +56 -130
- data/spec/config/rate_table_spec.rb +0 -17
- data/spec/config/rating_table_spec.rb +0 -17
- data/spec/config/validations_spec.rb +0 -33
- data/spec/factories/article.rb +0 -7
- data/spec/factories/author.rb +0 -7
- data/spec/factories/category.rb +0 -7
- data/spec/factories/comment.rb +0 -5
- data/spec/factories/global.rb +0 -6
- data/spec/factories/rating/rate.rb +0 -10
- data/spec/factories/rating/rating.rb +0 -12
- data/spec/factories/toy.rb +0 -6
- data/spec/models/extension/after_create_spec.rb +0 -47
- data/spec/models/extension/order_by_rating_spec.rb +0 -180
- data/spec/models/extension/rate_for_spec.rb +0 -41
- data/spec/models/extension/rate_spec.rb +0 -60
- data/spec/models/extension/rated_question_spec.rb +0 -48
- data/spec/models/extension/rated_records_spec.rb +0 -12
- data/spec/models/extension/rated_spec.rb +0 -50
- data/spec/models/extension/rates_records_spec.rb +0 -12
- data/spec/models/extension/rates_spec.rb +0 -50
- data/spec/models/extension/rating_records_spec.rb +0 -12
- data/spec/models/extension/rating_spec.rb +0 -40
- data/spec/models/extension/rating_warm_up_spec.rb +0 -115
- data/spec/models/extension/unscoped_rating_spec.rb +0 -99
- data/spec/models/extension/where_spec.rb +0 -33
- data/spec/models/rate/create_spec.rb +0 -422
- data/spec/models/rate/rate_for_spec.rb +0 -107
- data/spec/models/rate_spec.rb +0 -28
- data/spec/models/rating/averager_data_spec.rb +0 -32
- data/spec/models/rating/data_spec.rb +0 -48
- data/spec/models/rating/update_rating_spec.rb +0 -48
- data/spec/models/rating/values_data_spec.rb +0 -40
- data/spec/models/rating_spec.rb +0 -24
- data/spec/rails_helper.rb +0 -17
- data/spec/support/common.rb +0 -22
- data/spec/support/database_cleaner.rb +0 -19
- data/spec/support/db/migrate/add_comment_on_rating_rates_table.rb +0 -8
- data/spec/support/db/migrate/add_extra_fields_on_rating_rates_table.rb +0 -8
- data/spec/support/db/migrate/create_articles_table.rb +0 -9
- data/spec/support/db/migrate/create_authors_table.rb +0 -9
- data/spec/support/db/migrate/create_categories_table.rb +0 -12
- data/spec/support/db/migrate/create_comments_table.rb +0 -7
- data/spec/support/db/migrate/create_globals_table.rb +0 -8
- data/spec/support/db/migrate/create_rates_table.rb +0 -19
- data/spec/support/db/migrate/create_rating_table.rb +0 -20
- data/spec/support/db/migrate/create_review_ratings_table.rb +0 -17
- data/spec/support/db/migrate/create_reviews_table.rb +0 -15
- data/spec/support/db/migrate/create_toys_table.rb +0 -8
- data/spec/support/factory_bot.rb +0 -9
- data/spec/support/migrate.rb +0 -21
- data/spec/support/models/article.rb +0 -7
- data/spec/support/models/author.rb +0 -5
- data/spec/support/models/category.rb +0 -6
- data/spec/support/models/comment.rb +0 -5
- data/spec/support/models/global.rb +0 -7
- data/spec/support/models/review.rb +0 -5
- data/spec/support/models/review_rating.rb +0 -4
- data/spec/support/models/toy.rb +0 -5
- data/spec/support/shared_context/with_database_records.rb +0 -20
- data/spec/support/shoulda.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 107d28dc3f0be409a1684eebea163b6dcf6cc57d801f7dcd88bca4f0bcf4f662
|
4
|
+
data.tar.gz: af591a933ee3bf23720cd054c33968ec9fbba3f21cbd9d117dd1628f0b6cebb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c3dc424ab1155b6a7f6aa309b461015c7d06b2786c172d55b03b29052a3643d098fe78dde4a9c7edf2b564ea324451e5ad1a12373769caa7b6520cb0b5def8d
|
7
|
+
data.tar.gz: b92eaadfdaa4cca67eca6e3a5550333080541d93b1a48e01dace83bc858969fc718f60123c40353c15bf3ec6c42166b2359d9d82e05b315454a4ca74b91b32be
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## v0.12.0
|
2
|
+
|
3
|
+
### News
|
4
|
+
|
5
|
+
- Officially Supports Postgres;
|
6
|
+
|
7
|
+
### Updates
|
8
|
+
|
9
|
+
- Migrates the CI to GitHub Actions;
|
10
|
+
- This gem does not depends on `git` package anymore;
|
11
|
+
- Makes this gem requires MFA for security;
|
12
|
+
- Adds coverage test;
|
13
|
+
- The method `rated?` now uses a better query;
|
14
|
+
|
1
15
|
## v0.11.0
|
2
16
|
|
3
17
|
### Updates
|
@@ -14,47 +28,47 @@
|
|
14
28
|
|
15
29
|
### News
|
16
30
|
|
17
|
-
- Order index keys of template the same way Rails does the query;
|
31
|
+
- Order index keys of the template the same way Rails does the query;
|
18
32
|
- Limits the `_type` columns to avoid overflow bytes in DBs like MySQL < 5.7.
|
19
33
|
|
20
34
|
### Updates
|
21
35
|
|
22
36
|
- Update Ruby to 2.6.5;
|
23
|
-
- Update
|
37
|
+
- Update ActiveRecord to the last version;
|
24
38
|
|
25
39
|
## v0.8.0
|
26
40
|
|
27
41
|
### News
|
28
42
|
|
29
|
-
- Adds `unscoped_rating` option to calculate the rating counting all resource
|
43
|
+
- Adds `unscoped_rating` option to calculate the rating by counting all resource records ignoring the scope.
|
30
44
|
|
31
45
|
## v0.7.0
|
32
46
|
|
33
47
|
### News
|
34
48
|
|
35
49
|
- Support to configure `uniqueness` validation via YAML into Rating::Rate model;
|
36
|
-
- Support
|
50
|
+
- Support multiple scopes via `extra_scopes` option.
|
37
51
|
|
38
52
|
### Updates
|
39
53
|
|
40
|
-
- Reverts v0.6.0, since we need this validation because we cannot edit the Rate model by
|
54
|
+
- Reverts v0.6.0, since we need this validation because we cannot edit the Rate model by ourselves.
|
41
55
|
|
42
56
|
## v0.6.0
|
43
57
|
|
44
58
|
### Updates
|
45
59
|
|
46
|
-
- The author unique validations
|
60
|
+
- The author's unique validations were removed to enable custom validations
|
47
61
|
|
48
62
|
## v0.5.0
|
49
63
|
|
50
64
|
### News
|
51
65
|
|
52
|
-
- Adds `rating.yml` config to support
|
53
|
-
- Adds `scoping` option to support
|
66
|
+
- Adds `rating.yml` config to support changing the tables where Rating will write the data;
|
67
|
+
- Adds `scoping` option to support generating zero-based rating via scope.
|
54
68
|
|
55
69
|
### Updates
|
56
70
|
|
57
|
-
- The
|
71
|
+
- The migration was separated in two to improve troubleshooting. [#1](https://github.com/wbotelhos/rating/pull/1) by [iondrimba](https://github.com/iondrimba)
|
58
72
|
|
59
73
|
## v0.4.0
|
60
74
|
|
data/README.md
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# Rating
|
2
2
|
|
3
|
-
[](https://github.com/wbotelhos/rating/actions)
|
4
4
|
[](https://badge.fury.io/rb/rating)
|
5
5
|
[](https://codeclimate.com/github/wbotelhos/rating/maintainability)
|
6
|
-
[](https://codecov.io/gh/wbotelhos/rating)
|
7
|
+
[](https://www.patreon.com/wbotelhos)
|
7
8
|
|
8
9
|
A true Bayesian rating system with scope and cache enabled.
|
9
10
|
|
@@ -51,15 +52,15 @@ Add the following code on your `Gemfile` and run `bundle install`:
|
|
51
52
|
gem 'rating'
|
52
53
|
```
|
53
54
|
|
54
|
-
Run the following task to create
|
55
|
+
Run the following task to create the Rating migration:
|
55
56
|
|
56
|
-
```
|
57
|
+
```sh
|
57
58
|
rails g rating:install
|
58
59
|
```
|
59
60
|
|
60
61
|
Then execute the migrations to create the to create tables `rating_rates` and `rating_ratings`:
|
61
62
|
|
62
|
-
```
|
63
|
+
```sh
|
63
64
|
rake db:migrate
|
64
65
|
```
|
65
66
|
|
@@ -423,6 +424,16 @@ author.rate resource, 5, extra_scope: { approved: true }
|
|
423
424
|
|
424
425
|
As you can see, now, only the rate with value `5` will be included on the final rating.
|
425
426
|
|
427
|
+
### Specs
|
428
|
+
|
429
|
+
To run all specs, run the following rakes:
|
430
|
+
|
431
|
+
```sh
|
432
|
+
bundle exec rake spec
|
433
|
+
bundle exec rake spec_config
|
434
|
+
bundle exec rake spec_config_with_extra_scopes
|
435
|
+
```
|
436
|
+
|
426
437
|
### References
|
427
438
|
|
428
439
|
- [Evan Miller](http://www.evanmiller.org/ranking-items-with-star-ratings.html)
|
@@ -20,9 +20,8 @@ module Rating
|
|
20
20
|
Rate.rate_for author: self, extra_scopes: extra_scopes, resource: resource, scopeable: scope
|
21
21
|
end
|
22
22
|
|
23
|
-
# TODO: use exists for performance
|
24
23
|
def rated?(resource, extra_scopes: {}, scope: nil)
|
25
|
-
|
24
|
+
Rate.exists?(extra_scopes.merge(author: self, resource: resource, scopeable: scope))
|
26
25
|
end
|
27
26
|
|
28
27
|
def rates(extra_scopes: {}, scope: nil)
|
@@ -19,7 +19,7 @@ module Rating
|
|
19
19
|
scope: ::Rating::Config.validations['rate']['scope'].map(&:to_sym),
|
20
20
|
}
|
21
21
|
|
22
|
-
def self.create(author:, extra_scopes:, metadata:, resource:, scopeable: nil
|
22
|
+
def self.create(author:, extra_scopes:, metadata:, resource:, value:, scopeable: nil)
|
23
23
|
attributes = { author: author, resource: resource, scopeable: scopeable }.merge(extra_scopes)
|
24
24
|
record = find_or_initialize_by(attributes)
|
25
25
|
|
@@ -31,7 +31,7 @@ module Rating
|
|
31
31
|
record
|
32
32
|
end
|
33
33
|
|
34
|
-
def self.rate_for(author:, extra_scopes: {},
|
34
|
+
def self.rate_for(author:, resource:, extra_scopes: {}, scopeable: nil)
|
35
35
|
find_by extra_scopes.merge(author: author, resource: resource, scopeable: scopeable)
|
36
36
|
end
|
37
37
|
|
@@ -93,8 +93,8 @@ module Rating
|
|
93
93
|
resource_rating_avg = values.rating_avg
|
94
94
|
resource_rating_count = values.rating_count.to_f
|
95
95
|
|
96
|
-
(resource_rating_count / (resource_rating_count + count_avg)) * resource_rating_avg +
|
97
|
-
(count_avg / (resource_rating_count + count_avg)) * resource_type_rating_avg
|
96
|
+
((resource_rating_count / (resource_rating_count + count_avg)) * resource_rating_avg) +
|
97
|
+
((count_avg / (resource_rating_count + count_avg)) * resource_type_rating_avg)
|
98
98
|
end
|
99
99
|
|
100
100
|
def execute_sql(sql)
|
data/lib/rating/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rating
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Washington Botelho
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: codecov
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: database_cleaner
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +52,20 @@ dependencies:
|
|
38
52
|
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: debug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: factory_bot_rails
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,7 +95,7 @@ dependencies:
|
|
67
95
|
- !ruby/object:Gem::Version
|
68
96
|
version: '0'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
98
|
+
name: pg
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
72
100
|
requirements:
|
73
101
|
- - ">="
|
@@ -108,6 +136,20 @@ dependencies:
|
|
108
136
|
- - ">="
|
109
137
|
- !ruby/object:Gem::Version
|
110
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubocop-rails
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
111
153
|
- !ruby/object:Gem::Dependency
|
112
154
|
name: rubocop-rspec
|
113
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,7 +182,10 @@ description: A true Bayesian rating system with scope and cache enabled.
|
|
140
182
|
email: wbotelhos@gmail.com
|
141
183
|
executables: []
|
142
184
|
extensions: []
|
143
|
-
extra_rdoc_files:
|
185
|
+
extra_rdoc_files:
|
186
|
+
- CHANGELOG.md
|
187
|
+
- LICENSE
|
188
|
+
- README.md
|
144
189
|
files:
|
145
190
|
- CHANGELOG.md
|
146
191
|
- LICENSE
|
@@ -154,71 +199,12 @@ files:
|
|
154
199
|
- lib/rating/models/rating/rate.rb
|
155
200
|
- lib/rating/models/rating/rating.rb
|
156
201
|
- lib/rating/version.rb
|
157
|
-
- spec/config/rate_table_spec.rb
|
158
|
-
- spec/config/rating_table_spec.rb
|
159
|
-
- spec/config/validations_spec.rb
|
160
|
-
- spec/factories/article.rb
|
161
|
-
- spec/factories/author.rb
|
162
|
-
- spec/factories/category.rb
|
163
|
-
- spec/factories/comment.rb
|
164
|
-
- spec/factories/global.rb
|
165
|
-
- spec/factories/rating/rate.rb
|
166
|
-
- spec/factories/rating/rating.rb
|
167
|
-
- spec/factories/toy.rb
|
168
|
-
- spec/models/extension/after_create_spec.rb
|
169
|
-
- spec/models/extension/order_by_rating_spec.rb
|
170
|
-
- spec/models/extension/rate_for_spec.rb
|
171
|
-
- spec/models/extension/rate_spec.rb
|
172
|
-
- spec/models/extension/rated_question_spec.rb
|
173
|
-
- spec/models/extension/rated_records_spec.rb
|
174
|
-
- spec/models/extension/rated_spec.rb
|
175
|
-
- spec/models/extension/rates_records_spec.rb
|
176
|
-
- spec/models/extension/rates_spec.rb
|
177
|
-
- spec/models/extension/rating_records_spec.rb
|
178
|
-
- spec/models/extension/rating_spec.rb
|
179
|
-
- spec/models/extension/rating_warm_up_spec.rb
|
180
|
-
- spec/models/extension/unscoped_rating_spec.rb
|
181
|
-
- spec/models/extension/where_spec.rb
|
182
|
-
- spec/models/rate/create_spec.rb
|
183
|
-
- spec/models/rate/rate_for_spec.rb
|
184
|
-
- spec/models/rate_spec.rb
|
185
|
-
- spec/models/rating/averager_data_spec.rb
|
186
|
-
- spec/models/rating/data_spec.rb
|
187
|
-
- spec/models/rating/update_rating_spec.rb
|
188
|
-
- spec/models/rating/values_data_spec.rb
|
189
|
-
- spec/models/rating_spec.rb
|
190
|
-
- spec/rails_helper.rb
|
191
|
-
- spec/support/common.rb
|
192
|
-
- spec/support/database_cleaner.rb
|
193
|
-
- spec/support/db/migrate/add_comment_on_rating_rates_table.rb
|
194
|
-
- spec/support/db/migrate/add_extra_fields_on_rating_rates_table.rb
|
195
|
-
- spec/support/db/migrate/create_articles_table.rb
|
196
|
-
- spec/support/db/migrate/create_authors_table.rb
|
197
|
-
- spec/support/db/migrate/create_categories_table.rb
|
198
|
-
- spec/support/db/migrate/create_comments_table.rb
|
199
|
-
- spec/support/db/migrate/create_globals_table.rb
|
200
|
-
- spec/support/db/migrate/create_rates_table.rb
|
201
|
-
- spec/support/db/migrate/create_rating_table.rb
|
202
|
-
- spec/support/db/migrate/create_review_ratings_table.rb
|
203
|
-
- spec/support/db/migrate/create_reviews_table.rb
|
204
|
-
- spec/support/db/migrate/create_toys_table.rb
|
205
|
-
- spec/support/factory_bot.rb
|
206
|
-
- spec/support/migrate.rb
|
207
|
-
- spec/support/models/article.rb
|
208
|
-
- spec/support/models/author.rb
|
209
|
-
- spec/support/models/category.rb
|
210
|
-
- spec/support/models/comment.rb
|
211
|
-
- spec/support/models/global.rb
|
212
|
-
- spec/support/models/review.rb
|
213
|
-
- spec/support/models/review_rating.rb
|
214
|
-
- spec/support/models/toy.rb
|
215
|
-
- spec/support/shared_context/with_database_records.rb
|
216
|
-
- spec/support/shoulda.rb
|
217
202
|
homepage: https://github.com/wbotelhos/rating
|
218
203
|
licenses:
|
219
204
|
- MIT
|
220
|
-
metadata:
|
221
|
-
|
205
|
+
metadata:
|
206
|
+
rubygems_mfa_required: 'true'
|
207
|
+
post_install_message:
|
222
208
|
rdoc_options: []
|
223
209
|
require_paths:
|
224
210
|
- lib
|
@@ -233,68 +219,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
219
|
- !ruby/object:Gem::Version
|
234
220
|
version: '0'
|
235
221
|
requirements: []
|
236
|
-
rubygems_version: 3.
|
237
|
-
signing_key:
|
222
|
+
rubygems_version: 3.3.12
|
223
|
+
signing_key:
|
238
224
|
specification_version: 4
|
239
225
|
summary: A true Bayesian rating system with scope and cache enabled.
|
240
|
-
test_files:
|
241
|
-
- spec/config/rate_table_spec.rb
|
242
|
-
- spec/config/validations_spec.rb
|
243
|
-
- spec/config/rating_table_spec.rb
|
244
|
-
- spec/models/rate/rate_for_spec.rb
|
245
|
-
- spec/models/rate/create_spec.rb
|
246
|
-
- spec/models/rating/averager_data_spec.rb
|
247
|
-
- spec/models/rating/data_spec.rb
|
248
|
-
- spec/models/rating/update_rating_spec.rb
|
249
|
-
- spec/models/rating/values_data_spec.rb
|
250
|
-
- spec/models/extension/rated_records_spec.rb
|
251
|
-
- spec/models/extension/rating_spec.rb
|
252
|
-
- spec/models/extension/rated_question_spec.rb
|
253
|
-
- spec/models/extension/rating_warm_up_spec.rb
|
254
|
-
- spec/models/extension/order_by_rating_spec.rb
|
255
|
-
- spec/models/extension/unscoped_rating_spec.rb
|
256
|
-
- spec/models/extension/where_spec.rb
|
257
|
-
- spec/models/extension/rate_spec.rb
|
258
|
-
- spec/models/extension/rate_for_spec.rb
|
259
|
-
- spec/models/extension/after_create_spec.rb
|
260
|
-
- spec/models/extension/rates_spec.rb
|
261
|
-
- spec/models/extension/rating_records_spec.rb
|
262
|
-
- spec/models/extension/rated_spec.rb
|
263
|
-
- spec/models/extension/rates_records_spec.rb
|
264
|
-
- spec/models/rating_spec.rb
|
265
|
-
- spec/models/rate_spec.rb
|
266
|
-
- spec/support/migrate.rb
|
267
|
-
- spec/support/shoulda.rb
|
268
|
-
- spec/support/factory_bot.rb
|
269
|
-
- spec/support/models/article.rb
|
270
|
-
- spec/support/models/category.rb
|
271
|
-
- spec/support/models/toy.rb
|
272
|
-
- spec/support/models/author.rb
|
273
|
-
- spec/support/models/review.rb
|
274
|
-
- spec/support/models/comment.rb
|
275
|
-
- spec/support/models/global.rb
|
276
|
-
- spec/support/models/review_rating.rb
|
277
|
-
- spec/support/common.rb
|
278
|
-
- spec/support/db/migrate/create_categories_table.rb
|
279
|
-
- spec/support/db/migrate/create_authors_table.rb
|
280
|
-
- spec/support/db/migrate/create_review_ratings_table.rb
|
281
|
-
- spec/support/db/migrate/create_articles_table.rb
|
282
|
-
- spec/support/db/migrate/create_rating_table.rb
|
283
|
-
- spec/support/db/migrate/create_toys_table.rb
|
284
|
-
- spec/support/db/migrate/add_comment_on_rating_rates_table.rb
|
285
|
-
- spec/support/db/migrate/add_extra_fields_on_rating_rates_table.rb
|
286
|
-
- spec/support/db/migrate/create_reviews_table.rb
|
287
|
-
- spec/support/db/migrate/create_comments_table.rb
|
288
|
-
- spec/support/db/migrate/create_globals_table.rb
|
289
|
-
- spec/support/db/migrate/create_rates_table.rb
|
290
|
-
- spec/support/database_cleaner.rb
|
291
|
-
- spec/support/shared_context/with_database_records.rb
|
292
|
-
- spec/factories/article.rb
|
293
|
-
- spec/factories/category.rb
|
294
|
-
- spec/factories/rating/rate.rb
|
295
|
-
- spec/factories/rating/rating.rb
|
296
|
-
- spec/factories/toy.rb
|
297
|
-
- spec/factories/author.rb
|
298
|
-
- spec/factories/comment.rb
|
299
|
-
- spec/factories/global.rb
|
300
|
-
- spec/rails_helper.rb
|
226
|
+
test_files: []
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe Rating::Config, '.rate_table' do
|
6
|
-
if ENV['CONFIG_ENABLED'] != 'true'
|
7
|
-
context 'when rating.yml does not exist' do
|
8
|
-
it { expect(subject.rate_table).to eq 'rating_rates' }
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
if ENV['CONFIG_ENABLED'] == 'true'
|
13
|
-
context 'when rating.yml exists' do
|
14
|
-
it { expect(subject.rate_table).to eq 'reviews' }
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe Rating::Config, '.rating_table' do
|
6
|
-
if ENV['CONFIG_ENABLED'] != 'true'
|
7
|
-
context 'when rating.yml does not exist' do
|
8
|
-
it { expect(subject.rating_table).to eq 'rating_ratings' }
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
if ENV['CONFIG_ENABLED'] == 'true'
|
13
|
-
context 'when rating.yml exists' do
|
14
|
-
it { expect(subject.rating_table).to eq 'review_ratings' }
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe Rating::Config, '.validations' do
|
6
|
-
if ENV['CONFIG_ENABLED_WITH_EXTRA_SCOPES'] != 'true'
|
7
|
-
context 'when rating.yml does not exist' do
|
8
|
-
it do
|
9
|
-
expect(subject.validations).to eq({
|
10
|
-
rate: {
|
11
|
-
case_sensitive: false,
|
12
|
-
scope: %w[author_type resource_id resource_type scopeable_id scopeable_type],
|
13
|
-
},
|
14
|
-
}.deep_stringify_keys
|
15
|
-
)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
if ENV['CONFIG_ENABLED_WITH_EXTRA_SCOPES'] == 'true'
|
21
|
-
context 'when rating.yml exists' do
|
22
|
-
it do
|
23
|
-
expect(subject.validations).to eq({
|
24
|
-
rate: {
|
25
|
-
case_sensitive: false,
|
26
|
-
scope: %w[author_type resource_id resource_type scopeable_id scopeable_type scope_1 scope_2],
|
27
|
-
},
|
28
|
-
}.deep_stringify_keys
|
29
|
-
)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
data/spec/factories/article.rb
DELETED
data/spec/factories/author.rb
DELETED
data/spec/factories/category.rb
DELETED
data/spec/factories/comment.rb
DELETED
data/spec/factories/global.rb
DELETED
data/spec/factories/toy.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails_helper'
|
4
|
-
|
5
|
-
RSpec.describe Rating::Extension, 'after_create' do
|
6
|
-
context 'when record is author' do
|
7
|
-
let!(:record) { build :author }
|
8
|
-
|
9
|
-
it 'does not warm up the cache' do
|
10
|
-
expect(record).not_to receive(:rating_warm_up)
|
11
|
-
|
12
|
-
record.save
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
context 'when record is not author' do
|
17
|
-
context 'when record has scoping' do
|
18
|
-
let!(:record) { build :article }
|
19
|
-
|
20
|
-
it 'warms up the cache' do
|
21
|
-
expect(record).to receive(:rating_warm_up).with(scoping: :categories)
|
22
|
-
|
23
|
-
record.save
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context 'when record has no scoping' do
|
28
|
-
let!(:record) { build :comment }
|
29
|
-
|
30
|
-
it 'warms up the cache' do
|
31
|
-
expect(record).to receive(:rating_warm_up).with(scoping: nil)
|
32
|
-
|
33
|
-
record.save
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
context 'when update is made' do
|
38
|
-
let!(:record) { create :comment }
|
39
|
-
|
40
|
-
it 'does not warm up the cache' do
|
41
|
-
expect(record).not_to receive(:rating_warm_up)
|
42
|
-
|
43
|
-
record.save
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|