ratable 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/ratable/rating.rb +0 -3
- data/app/models/ratable/rating_average.rb +14 -0
- data/app/views/ratable/rating_averages/_rating_average.html.erb +1 -0
- data/lib/generators/ratable/views_generator.rb +1 -0
- data/lib/ratable/models/ratee.rb +9 -1
- data/lib/ratable/models/ratee_rater.rb +18 -2
- data/lib/ratable/models/rater.rb +9 -1
- data/lib/ratable/version.rb +1 -1
- data/spec/dummy/app/models/user.rb +1 -2
- data/spec/dummy/log/development.log +16 -0
- data/spec/factories/ratable_rating.rb +5 -0
- data/spec/factories/ratable_rating_averages.rb +5 -0
- data/spec/models/ratable/rating_average_spec.rb +7 -0
- data/spec/models/{rating_spec.rb → ratable/rating_spec.rb} +0 -0
- metadata +11 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 470dfee1c88fb9bb6abffaeb5b94b495cf130ae6
|
4
|
+
data.tar.gz: 7bc55d4ff107ed5027cdfae16b8cf84890275da7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79a3ec8426be004245a8a30f8e10fa211f9a361ff35c0206645e485bfd13e7aa96d601234e44d7e4c425943adc4d52b83b7735f293aa61ea4ba882d40c414a92
|
7
|
+
data.tar.gz: 209666038eb795fa6751c0f8b22738cf46744ee80f69a675e6b7e1a442aca226665dfeda46edb513b5316afa0071d90722ac465223637628c258b869601f7b15
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Ratable
|
2
|
+
class RatingAverage
|
3
|
+
include ActiveModel::Model
|
4
|
+
|
5
|
+
attr_accessor :ratings, :value, :rater, :ratee
|
6
|
+
|
7
|
+
def initialize(attributes={})
|
8
|
+
attributes.reject! { |k| k == :value }
|
9
|
+
attributes.each { |k,v| send("#{k}=", v) }
|
10
|
+
@value = @ratings.average(:value).to_i
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class="rating-average" data-rating="<%= rating_average.value %>"></div>
|
data/lib/ratable/models/ratee.rb
CHANGED
@@ -17,7 +17,15 @@ module Ratable
|
|
17
17
|
if @has_one
|
18
18
|
has_one :rating, class_name: 'Ratable::Rating', dependent: :destroy, as: :ratee
|
19
19
|
else
|
20
|
-
has_many :ratings, class_name: 'Ratable::Rating', dependent: :destroy, as: :ratee
|
20
|
+
has_many :ratings, -> { order(updated_at: :desc) }, class_name: 'Ratable::Rating', dependent: :destroy, as: :ratee
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def rating_average
|
25
|
+
if @has_one
|
26
|
+
::Ratable::RatingAverage.new(ratings: rating, ratee: self)
|
27
|
+
else
|
28
|
+
::Ratable::RatingAverage.new(ratings: ratings, ratee: self)
|
21
29
|
end
|
22
30
|
end
|
23
31
|
|
@@ -23,12 +23,28 @@ module Ratable
|
|
23
23
|
if @has_one_ratee
|
24
24
|
has_one :ratee_rating, class_name: 'Ratable::Rating', dependent: :destroy, as: :ratee
|
25
25
|
else
|
26
|
-
has_many :ratee_ratings, class_name: 'Ratable::Rating', dependent: :destroy, as: :ratee
|
26
|
+
has_many :ratee_ratings, -> { order(updated_at: :desc) }, class_name: 'Ratable::Rating', dependent: :destroy, as: :ratee
|
27
27
|
end
|
28
28
|
if @has_one_rater
|
29
29
|
has_one :rater_rating, class_name: 'Ratable::Rating', dependent: :destroy, as: :rater
|
30
30
|
else
|
31
|
-
has_many :rater_ratings, class_name: 'Ratable::Rating', dependent: :destroy, as: :rater
|
31
|
+
has_many :rater_ratings, -> { order(updated_at: :desc) }, class_name: 'Ratable::Rating', dependent: :destroy, as: :rater
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def ratee_rating_average
|
36
|
+
if @has_one_ratee
|
37
|
+
::Ratable::RatingAverage.new(ratings: ratee_rating, ratee: self)
|
38
|
+
else
|
39
|
+
::Ratable::RatingAverage.new(ratings: ratee_rating, ratee: self)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def rater_rating_average
|
44
|
+
if @has_one_rater
|
45
|
+
::Ratable::RatingAverage.new(ratings: rater_rating, rater: self)
|
46
|
+
else
|
47
|
+
::Ratable::RatingAverage.new(ratings: rater_ratings, rater: self)
|
32
48
|
end
|
33
49
|
end
|
34
50
|
|
data/lib/ratable/models/rater.rb
CHANGED
@@ -17,7 +17,15 @@ module Ratable
|
|
17
17
|
if @has_one
|
18
18
|
has_one :rating, class_name: 'Ratable::Rating', dependent: :destroy, as: :rater
|
19
19
|
else
|
20
|
-
has_many :ratings, class_name: 'Ratable::Rating', dependent: :destroy, as: :rater
|
20
|
+
has_many :ratings, -> { order(updated_at: :desc) }, class_name: 'Ratable::Rating', dependent: :destroy, as: :rater
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def rating_average
|
25
|
+
if @has_one
|
26
|
+
::Ratable::RatingAverage.new(ratings: rating, rater: self)
|
27
|
+
else
|
28
|
+
::Ratable::RatingAverage.new(ratings: ratings, rater: self)
|
21
29
|
end
|
22
30
|
end
|
23
31
|
|
data/lib/ratable/version.rb
CHANGED
@@ -4275,3 +4275,19 @@ Started GET "/assets/star-off-6aaeebdaab93d594c005d366ce0d94fba02e7a07fd03557dbe
|
|
4275
4275
|
[1m[36mUser Load (0.8ms)[0m [1mSELECT `users`.* FROM `users` WHERE `users`.`id` IN (1)[0m
|
4276
4276
|
[1m[35mRatable::Rating Load (0.8ms)[0m SELECT `ratable_ratings`.* FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post'
|
4277
4277
|
[1m[36mRatable::Rating Load (0.8ms)[0m [1mSELECT `ratable_ratings`.* FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post' AND `ratable_ratings`.`rater_type` = 'User' AND `ratable_ratings`.`rater_id` = 1[0m
|
4278
|
+
[1m[36mPost Load (0.5ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4279
|
+
[1m[35mRatable::Rating Load (0.8ms)[0m SELECT `ratable_ratings`.* FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post'
|
4280
|
+
[1m[36mPost Load (0.7ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4281
|
+
[1m[36mPost Load (0.6ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4282
|
+
[1m[36mPost Load (0.7ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4283
|
+
[1m[36mPost Load (0.6ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4284
|
+
[1m[36mPost Load (0.8ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4285
|
+
[1m[35m (0.8ms)[0m SELECT AVG(`ratable_ratings`.`value`) FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post'
|
4286
|
+
[1m[36mRatable::Rating Load (0.7ms)[0m [1mSELECT `ratable_ratings`.* FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post'[0m
|
4287
|
+
[1m[36mPost Load (0.5ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4288
|
+
[1m[35m (1.6ms)[0m SELECT AVG(`ratable_ratings`.`value`) FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post'
|
4289
|
+
[1m[36mPost Load (0.6ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4290
|
+
[1m[35m (0.8ms)[0m SELECT AVG(`ratable_ratings`.`value`) FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post'
|
4291
|
+
[1m[36mPost Load (0.6ms)[0m [1mSELECT `posts`.* FROM `posts` ORDER BY `posts`.`id` ASC LIMIT 1[0m
|
4292
|
+
[1m[35m (0.7ms)[0m SELECT AVG(`ratable_ratings`.`value`) FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post'
|
4293
|
+
[1m[36mRatable::Rating Load (1.0ms)[0m [1mSELECT `ratable_ratings`.* FROM `ratable_ratings` WHERE `ratable_ratings`.`ratee_id` = 1 AND `ratable_ratings`.`ratee_type` = 'Post'[0m
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ratable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- François Bélanger
|
@@ -122,6 +122,8 @@ files:
|
|
122
122
|
- app/assets/javascripts/ratable.js.erb
|
123
123
|
- app/assets/stylesheets/ratable.scss
|
124
124
|
- app/models/ratable/rating.rb
|
125
|
+
- app/models/ratable/rating_average.rb
|
126
|
+
- app/views/ratable/rating_averages/_rating_average.html.erb
|
125
127
|
- app/views/ratable/ratings/_rating.html.erb
|
126
128
|
- db/migrate/20160418175804_create_ratable_ratings.rb
|
127
129
|
- lib/generators/ratable/install_generator.rb
|
@@ -596,7 +598,10 @@ files:
|
|
596
598
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/zl/zlj-FK9QDxF0uO6x4ka6CN3aSaHs5bGTuJm_JMKstaY.cache
|
597
599
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/zp/zpSERRztqsKIBHLay1Pa74kqqJqZJSA3kTjL1BWH40I.cache
|
598
600
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/zx/zxDhIDb-lPPulK9xGZ0mW_Yskyocslvalf6NF5Ys7Oo.cache
|
599
|
-
- spec/
|
601
|
+
- spec/factories/ratable_rating.rb
|
602
|
+
- spec/factories/ratable_rating_averages.rb
|
603
|
+
- spec/models/ratable/rating_average_spec.rb
|
604
|
+
- spec/models/ratable/rating_spec.rb
|
600
605
|
- spec/rails_helper.rb
|
601
606
|
- spec/spec_helper.rb
|
602
607
|
- spec/test_spec.rb
|
@@ -1090,4 +1095,7 @@ test_files:
|
|
1090
1095
|
- spec/dummy/README.rdoc
|
1091
1096
|
- spec/rails_helper.rb
|
1092
1097
|
- spec/test_spec.rb
|
1093
|
-
- spec/models/
|
1098
|
+
- spec/models/ratable/rating_average_spec.rb
|
1099
|
+
- spec/models/ratable/rating_spec.rb
|
1100
|
+
- spec/factories/ratable_rating_averages.rb
|
1101
|
+
- spec/factories/ratable_rating.rb
|