rating 0.12.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +3 -3
- data/lib/generators/rating/templates/db/migrate/create_rate_table.rb +1 -1
- data/lib/generators/rating/templates/db/migrate/create_rating_table.rb +2 -2
- data/lib/rating/models/rating/extension.rb +5 -1
- data/lib/rating/models/rating/rating.rb +2 -2
- data/lib/rating/version.rb +1 -1
- data/lib/rating.rb +1 -1
- 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: 2d43b5a545fab38d39feb7a46f4d081c4408dd2281f00478996bf989a4f3682d
|
4
|
+
data.tar.gz: cfc83ae954ea334ecf0a7cf44b16594d0fd8a3c0fe48cc75034bb662cd555fa7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a393e04ede36dd77e88023c8ed134e359ad2ead75a96a07e483d46f99fe9ec0c83c9303143dc3fd545902064f8e711c8665de1293259561bec7afd1293ce091
|
7
|
+
data.tar.gz: 89e4096c7c2e43b7771e2af9680f8a3fca8753831fc7c4c5685f9fd676fd2694bde65cdbcf816f70150486dd5282141938ecd700ec79d2f9a231b6aadf97eabd
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## v1.0.0
|
2
|
+
|
3
|
+
### Break Change
|
4
|
+
|
5
|
+
- The attributes `estimate` and `average` now is rounded by two decimal numbers;
|
6
|
+
|
7
|
+
### Updates
|
8
|
+
|
9
|
+
- The method `order_by_rating` now receives a hash parameter to avoid scope and so support Ruby 3.2;
|
10
|
+
|
1
11
|
## v0.12.0
|
2
12
|
|
3
13
|
### News
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/rating.svg)](https://badge.fury.io/rb/rating)
|
5
5
|
[![Maintainability](https://api.codeclimate.com/v1/badges/cc5efe8b06bc1d5e9e8a/maintainability)](https://codeclimate.com/github/wbotelhos/rating/maintainability)
|
6
6
|
[![codecov](https://codecov.io/gh/wbotelhos/rating/branch/master/graph/badge.svg?token=QJSHUOULEG)](https://codecov.io/gh/wbotelhos/rating)
|
7
|
-
[![Sponsor](https://img.shields.io/badge/sponsor-%3C3-green)](https://
|
7
|
+
[![Sponsor](https://img.shields.io/badge/sponsor-%3C3-green)](https://github.com/sponsors/wbotelhos)
|
8
8
|
|
9
9
|
A true Bayesian rating system with scope and cache enabled.
|
10
10
|
|
@@ -169,7 +169,7 @@ It will return a collection of resource ordered by `estimate desc` as default.
|
|
169
169
|
The order column and direction can be changed:
|
170
170
|
|
171
171
|
```ruby
|
172
|
-
Article.order_by_rating :average, :asc
|
172
|
+
Article.order_by_rating({ column: :average, direction: :asc })
|
173
173
|
```
|
174
174
|
|
175
175
|
It will return a collection of resource ordered by `Rating` table data.
|
@@ -242,7 +242,7 @@ article.rates scope: category_2
|
|
242
242
|
To order the rating you do the same thing:
|
243
243
|
|
244
244
|
```ruby
|
245
|
-
Article.order_by_rating scope: category_1
|
245
|
+
Article.order_by_rating({ scope: category_1 })
|
246
246
|
```
|
247
247
|
|
248
248
|
### Extra Scopes
|
@@ -3,7 +3,7 @@
|
|
3
3
|
class CreateRateTable < ActiveRecord::Migration[5.0]
|
4
4
|
def change
|
5
5
|
create_table :rating_rates do |t|
|
6
|
-
t.decimal :value, default: 0, precision:
|
6
|
+
t.decimal :value, default: 0, precision: 11, scale: 2
|
7
7
|
|
8
8
|
t.references :author, index: true, null: false, polymorphic: true
|
9
9
|
t.references :resource, index: true, null: false, polymorphic: true
|
@@ -3,8 +3,8 @@
|
|
3
3
|
class CreateRatingTable < ActiveRecord::Migration[5.0]
|
4
4
|
def change
|
5
5
|
create_table :rating_ratings do |t|
|
6
|
-
t.decimal :average, default: 0, mull: false, precision:
|
7
|
-
t.decimal :estimate, default: 0, mull: false, precision:
|
6
|
+
t.decimal :average, default: 0, mull: false, precision: 11, scale: 2
|
7
|
+
t.decimal :estimate, default: 0, mull: false, precision: 11, scale: 2
|
8
8
|
t.integer :sum, default: 0, mull: false
|
9
9
|
t.integer :total, default: 0, mull: false
|
10
10
|
|
@@ -72,7 +72,11 @@ module Rating
|
|
72
72
|
class_name: '::Rating::Rate',
|
73
73
|
dependent: :destroy
|
74
74
|
|
75
|
-
scope :order_by_rating, lambda { |
|
75
|
+
scope :order_by_rating, lambda { |opts = {}|
|
76
|
+
column = opts.fetch(:column, :estimate)
|
77
|
+
direction = opts.fetch(:direction, :desc)
|
78
|
+
scope = opts[:scope]
|
79
|
+
|
76
80
|
includes(:rating_records)
|
77
81
|
.where(Rating.table_name => { scopeable_id: scope&.id, scopeable_type: scope&.class&.base_class&.name })
|
78
82
|
.order("#{Rating.table_name}.#{column} #{direction}")
|
@@ -43,8 +43,8 @@ module Rating
|
|
43
43
|
values = values_data(resource, scopeable)
|
44
44
|
|
45
45
|
{
|
46
|
-
average: values.rating_avg,
|
47
|
-
estimate: estimate(averager, values),
|
46
|
+
average: values.rating_avg.round(2),
|
47
|
+
estimate: estimate(averager, values).round(2),
|
48
48
|
sum: values.rating_sum,
|
49
49
|
total: values.rating_count,
|
50
50
|
}
|
data/lib/rating/version.rb
CHANGED
data/lib/rating.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: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Washington Botelho
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: factory_bot_rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: mysql2
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: pg
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: pry-byebug
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -219,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
219
|
- !ruby/object:Gem::Version
|
220
220
|
version: '0'
|
221
221
|
requirements: []
|
222
|
-
rubygems_version: 3.
|
222
|
+
rubygems_version: 3.4.6
|
223
223
|
signing_key:
|
224
224
|
specification_version: 4
|
225
225
|
summary: A true Bayesian rating system with scope and cache enabled.
|