mongoid_rateable 0.2.0 → 0.2.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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mongoid_rateable (0.2.0)
4
+ mongoid_rateable (0.2.1)
5
5
  mongoid (>= 3.0)
6
6
  mongoid_rateable
7
7
 
data/README.rdoc CHANGED
@@ -82,6 +82,11 @@ And you can get the average rating:
82
82
 
83
83
  @post.rating # rates / rate_weight
84
84
 
85
+ And you can get the average rating without weights (It calculates realtime, so it can be slow):
86
+
87
+ @post.unweighted_rating # rates without weights / rate_count
88
+
89
+
85
90
  == Scopes
86
91
 
87
92
  You can get rated or unrated posts:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -55,6 +55,12 @@ module Mongoid
55
55
  read_attribute(:rating)
56
56
  end
57
57
 
58
+ def unweighted_rating
59
+ return nil if self.rating_marks.empty?
60
+ total_sum = self.rating_marks.map(&:mark).sum
61
+ return total_sum.to_f/self.rating_marks.size
62
+ end
63
+
58
64
  def rate_count
59
65
  self.rating_marks.size
60
66
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "mongoid_rateable"
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Peter Savichev (proton)"]
12
- s.date = "2012-08-02"
12
+ s.date = "2012-09-09"
13
13
  s.description = "Provides fields and methods for the rating manipulation on Mongoid documents."
14
14
  s.email = "psavichev@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -69,6 +69,24 @@ Gem::Specification.new do |s|
69
69
  s.add_development_dependency(%q<rdoc>, [">= 0"])
70
70
  s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
71
71
  s.add_development_dependency(%q<database_cleaner>, [">= 0"])
72
+ s.add_development_dependency(%q<bundler>, [">= 0"])
73
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
74
+ s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
75
+ s.add_development_dependency(%q<rdoc>, [">= 0"])
76
+ s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
77
+ s.add_development_dependency(%q<database_cleaner>, [">= 0"])
78
+ s.add_development_dependency(%q<bundler>, [">= 0"])
79
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
80
+ s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
81
+ s.add_development_dependency(%q<rdoc>, [">= 0"])
82
+ s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
83
+ s.add_development_dependency(%q<database_cleaner>, [">= 0"])
84
+ s.add_development_dependency(%q<bundler>, [">= 0"])
85
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
86
+ s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
87
+ s.add_development_dependency(%q<rdoc>, [">= 0"])
88
+ s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
89
+ s.add_development_dependency(%q<database_cleaner>, [">= 0"])
72
90
  else
73
91
  s.add_dependency(%q<mongoid_rateable>, [">= 0"])
74
92
  s.add_dependency(%q<mongoid>, [">= 3.0"])
@@ -91,6 +109,24 @@ Gem::Specification.new do |s|
91
109
  s.add_dependency(%q<rdoc>, [">= 0"])
92
110
  s.add_dependency(%q<rspec>, [">= 2.0.0"])
93
111
  s.add_dependency(%q<database_cleaner>, [">= 0"])
112
+ s.add_dependency(%q<bundler>, [">= 0"])
113
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
114
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
115
+ s.add_dependency(%q<rdoc>, [">= 0"])
116
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
117
+ s.add_dependency(%q<database_cleaner>, [">= 0"])
118
+ s.add_dependency(%q<bundler>, [">= 0"])
119
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
120
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
121
+ s.add_dependency(%q<rdoc>, [">= 0"])
122
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
123
+ s.add_dependency(%q<database_cleaner>, [">= 0"])
124
+ s.add_dependency(%q<bundler>, [">= 0"])
125
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
126
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
127
+ s.add_dependency(%q<rdoc>, [">= 0"])
128
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
129
+ s.add_dependency(%q<database_cleaner>, [">= 0"])
94
130
  end
95
131
  else
96
132
  s.add_dependency(%q<mongoid_rateable>, [">= 0"])
@@ -114,6 +150,24 @@ Gem::Specification.new do |s|
114
150
  s.add_dependency(%q<rdoc>, [">= 0"])
115
151
  s.add_dependency(%q<rspec>, [">= 2.0.0"])
116
152
  s.add_dependency(%q<database_cleaner>, [">= 0"])
153
+ s.add_dependency(%q<bundler>, [">= 0"])
154
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
155
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
156
+ s.add_dependency(%q<rdoc>, [">= 0"])
157
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
158
+ s.add_dependency(%q<database_cleaner>, [">= 0"])
159
+ s.add_dependency(%q<bundler>, [">= 0"])
160
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
161
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
162
+ s.add_dependency(%q<rdoc>, [">= 0"])
163
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
164
+ s.add_dependency(%q<database_cleaner>, [">= 0"])
165
+ s.add_dependency(%q<bundler>, [">= 0"])
166
+ s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
167
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
168
+ s.add_dependency(%q<rdoc>, [">= 0"])
169
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
170
+ s.add_dependency(%q<database_cleaner>, [">= 0"])
117
171
  end
118
172
  end
119
173
 
@@ -24,6 +24,7 @@ describe Post do
24
24
  it { should respond_to :rate_count }
25
25
  it { should respond_to :rates }
26
26
  it { should respond_to :rating }
27
+ it { should respond_to :unweighted_rating }
27
28
  it { should respond_to :rating_marks }
28
29
 
29
30
  describe "#rating_marks" do
@@ -129,6 +130,18 @@ describe Post do
129
130
  @post.rating.should eq 0.0
130
131
  end
131
132
  end
133
+
134
+ describe "#unweighted_rating" do
135
+ it "should calculate the average rate" do
136
+ @post.rate 4, @sally
137
+ @post.unweighted_rating.should eql 2.5
138
+ end
139
+
140
+ it "should calculate the average rate if the result is zero" do
141
+ @post.rate -1, @sally
142
+ @post.unweighted_rating.should eq 0.0
143
+ end
144
+ end
132
145
  end
133
146
 
134
147
  context "when not rated" do
@@ -140,6 +153,10 @@ describe Post do
140
153
  specify { @post.rating.should be_nil }
141
154
  end
142
155
 
156
+ describe "#unweighted_rating" do
157
+ specify { @post.unweighted_rating.should be_nil }
158
+ end
159
+
143
160
  describe "#unrate" do
144
161
  before { @post.unrate @sally }
145
162
 
@@ -186,6 +203,10 @@ describe Post do
186
203
  describe "#rating" do
187
204
  specify { @finded_post.rating.should eq -1.0 }
188
205
  end
206
+
207
+ describe "#unweighted_rating" do
208
+ specify { @finded_post.unweighted_rating.should eq -1.0 }
209
+ end
189
210
  end
190
211
 
191
212
  describe "#rate_and_save" do
@@ -222,7 +243,11 @@ describe Post do
222
243
  end
223
244
 
224
245
  it "should have #rating equal 2.0" do
225
- @finded_post.rating.should eq 2.0
246
+ @finded_post.rating.should eq 2.0
247
+ end
248
+
249
+ it "should have #unweighted_rating equal 2.0" do
250
+ @finded_post.unweighted_rating.should eq -1.0
226
251
  end
227
252
 
228
253
  describe "#unrate_and_save" do
@@ -257,9 +282,13 @@ describe Post do
257
282
  @finded_post.rate_weight.should eql 1
258
283
  end
259
284
 
260
- it "should have #rating equal -10.0" do
261
- @finded_post.rating.should eq -10.0
262
- end
285
+ it "should have #rating equal -10.0" do
286
+ @finded_post.rating.should eq -10.0
287
+ end
288
+
289
+ it "should have #unweighted_rating equal -10.0" do
290
+ @finded_post.unweighted_rating.should eq -10.0
291
+ end
263
292
  end
264
293
  end
265
294
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_rateable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-02 00:00:00.000000000 Z
12
+ date: 2012-09-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid_rateable
@@ -347,6 +347,294 @@ dependencies:
347
347
  - - ! '>='
348
348
  - !ruby/object:Gem::Version
349
349
  version: '0'
350
+ - !ruby/object:Gem::Dependency
351
+ name: bundler
352
+ requirement: !ruby/object:Gem::Requirement
353
+ none: false
354
+ requirements:
355
+ - - ! '>='
356
+ - !ruby/object:Gem::Version
357
+ version: '0'
358
+ type: :development
359
+ prerelease: false
360
+ version_requirements: !ruby/object:Gem::Requirement
361
+ none: false
362
+ requirements:
363
+ - - ! '>='
364
+ - !ruby/object:Gem::Version
365
+ version: '0'
366
+ - !ruby/object:Gem::Dependency
367
+ name: jeweler
368
+ requirement: !ruby/object:Gem::Requirement
369
+ none: false
370
+ requirements:
371
+ - - ~>
372
+ - !ruby/object:Gem::Version
373
+ version: 1.6.2
374
+ type: :development
375
+ prerelease: false
376
+ version_requirements: !ruby/object:Gem::Requirement
377
+ none: false
378
+ requirements:
379
+ - - ~>
380
+ - !ruby/object:Gem::Version
381
+ version: 1.6.2
382
+ - !ruby/object:Gem::Dependency
383
+ name: simplecov
384
+ requirement: !ruby/object:Gem::Requirement
385
+ none: false
386
+ requirements:
387
+ - - ! '>='
388
+ - !ruby/object:Gem::Version
389
+ version: 0.4.0
390
+ type: :development
391
+ prerelease: false
392
+ version_requirements: !ruby/object:Gem::Requirement
393
+ none: false
394
+ requirements:
395
+ - - ! '>='
396
+ - !ruby/object:Gem::Version
397
+ version: 0.4.0
398
+ - !ruby/object:Gem::Dependency
399
+ name: rdoc
400
+ requirement: !ruby/object:Gem::Requirement
401
+ none: false
402
+ requirements:
403
+ - - ! '>='
404
+ - !ruby/object:Gem::Version
405
+ version: '0'
406
+ type: :development
407
+ prerelease: false
408
+ version_requirements: !ruby/object:Gem::Requirement
409
+ none: false
410
+ requirements:
411
+ - - ! '>='
412
+ - !ruby/object:Gem::Version
413
+ version: '0'
414
+ - !ruby/object:Gem::Dependency
415
+ name: rspec
416
+ requirement: !ruby/object:Gem::Requirement
417
+ none: false
418
+ requirements:
419
+ - - ! '>='
420
+ - !ruby/object:Gem::Version
421
+ version: 2.0.0
422
+ type: :development
423
+ prerelease: false
424
+ version_requirements: !ruby/object:Gem::Requirement
425
+ none: false
426
+ requirements:
427
+ - - ! '>='
428
+ - !ruby/object:Gem::Version
429
+ version: 2.0.0
430
+ - !ruby/object:Gem::Dependency
431
+ name: database_cleaner
432
+ requirement: !ruby/object:Gem::Requirement
433
+ none: false
434
+ requirements:
435
+ - - ! '>='
436
+ - !ruby/object:Gem::Version
437
+ version: '0'
438
+ type: :development
439
+ prerelease: false
440
+ version_requirements: !ruby/object:Gem::Requirement
441
+ none: false
442
+ requirements:
443
+ - - ! '>='
444
+ - !ruby/object:Gem::Version
445
+ version: '0'
446
+ - !ruby/object:Gem::Dependency
447
+ name: bundler
448
+ requirement: !ruby/object:Gem::Requirement
449
+ none: false
450
+ requirements:
451
+ - - ! '>='
452
+ - !ruby/object:Gem::Version
453
+ version: '0'
454
+ type: :development
455
+ prerelease: false
456
+ version_requirements: !ruby/object:Gem::Requirement
457
+ none: false
458
+ requirements:
459
+ - - ! '>='
460
+ - !ruby/object:Gem::Version
461
+ version: '0'
462
+ - !ruby/object:Gem::Dependency
463
+ name: jeweler
464
+ requirement: !ruby/object:Gem::Requirement
465
+ none: false
466
+ requirements:
467
+ - - ~>
468
+ - !ruby/object:Gem::Version
469
+ version: 1.6.2
470
+ type: :development
471
+ prerelease: false
472
+ version_requirements: !ruby/object:Gem::Requirement
473
+ none: false
474
+ requirements:
475
+ - - ~>
476
+ - !ruby/object:Gem::Version
477
+ version: 1.6.2
478
+ - !ruby/object:Gem::Dependency
479
+ name: simplecov
480
+ requirement: !ruby/object:Gem::Requirement
481
+ none: false
482
+ requirements:
483
+ - - ! '>='
484
+ - !ruby/object:Gem::Version
485
+ version: 0.4.0
486
+ type: :development
487
+ prerelease: false
488
+ version_requirements: !ruby/object:Gem::Requirement
489
+ none: false
490
+ requirements:
491
+ - - ! '>='
492
+ - !ruby/object:Gem::Version
493
+ version: 0.4.0
494
+ - !ruby/object:Gem::Dependency
495
+ name: rdoc
496
+ requirement: !ruby/object:Gem::Requirement
497
+ none: false
498
+ requirements:
499
+ - - ! '>='
500
+ - !ruby/object:Gem::Version
501
+ version: '0'
502
+ type: :development
503
+ prerelease: false
504
+ version_requirements: !ruby/object:Gem::Requirement
505
+ none: false
506
+ requirements:
507
+ - - ! '>='
508
+ - !ruby/object:Gem::Version
509
+ version: '0'
510
+ - !ruby/object:Gem::Dependency
511
+ name: rspec
512
+ requirement: !ruby/object:Gem::Requirement
513
+ none: false
514
+ requirements:
515
+ - - ! '>='
516
+ - !ruby/object:Gem::Version
517
+ version: 2.0.0
518
+ type: :development
519
+ prerelease: false
520
+ version_requirements: !ruby/object:Gem::Requirement
521
+ none: false
522
+ requirements:
523
+ - - ! '>='
524
+ - !ruby/object:Gem::Version
525
+ version: 2.0.0
526
+ - !ruby/object:Gem::Dependency
527
+ name: database_cleaner
528
+ requirement: !ruby/object:Gem::Requirement
529
+ none: false
530
+ requirements:
531
+ - - ! '>='
532
+ - !ruby/object:Gem::Version
533
+ version: '0'
534
+ type: :development
535
+ prerelease: false
536
+ version_requirements: !ruby/object:Gem::Requirement
537
+ none: false
538
+ requirements:
539
+ - - ! '>='
540
+ - !ruby/object:Gem::Version
541
+ version: '0'
542
+ - !ruby/object:Gem::Dependency
543
+ name: bundler
544
+ requirement: !ruby/object:Gem::Requirement
545
+ none: false
546
+ requirements:
547
+ - - ! '>='
548
+ - !ruby/object:Gem::Version
549
+ version: '0'
550
+ type: :development
551
+ prerelease: false
552
+ version_requirements: !ruby/object:Gem::Requirement
553
+ none: false
554
+ requirements:
555
+ - - ! '>='
556
+ - !ruby/object:Gem::Version
557
+ version: '0'
558
+ - !ruby/object:Gem::Dependency
559
+ name: jeweler
560
+ requirement: !ruby/object:Gem::Requirement
561
+ none: false
562
+ requirements:
563
+ - - ~>
564
+ - !ruby/object:Gem::Version
565
+ version: 1.6.2
566
+ type: :development
567
+ prerelease: false
568
+ version_requirements: !ruby/object:Gem::Requirement
569
+ none: false
570
+ requirements:
571
+ - - ~>
572
+ - !ruby/object:Gem::Version
573
+ version: 1.6.2
574
+ - !ruby/object:Gem::Dependency
575
+ name: simplecov
576
+ requirement: !ruby/object:Gem::Requirement
577
+ none: false
578
+ requirements:
579
+ - - ! '>='
580
+ - !ruby/object:Gem::Version
581
+ version: 0.4.0
582
+ type: :development
583
+ prerelease: false
584
+ version_requirements: !ruby/object:Gem::Requirement
585
+ none: false
586
+ requirements:
587
+ - - ! '>='
588
+ - !ruby/object:Gem::Version
589
+ version: 0.4.0
590
+ - !ruby/object:Gem::Dependency
591
+ name: rdoc
592
+ requirement: !ruby/object:Gem::Requirement
593
+ none: false
594
+ requirements:
595
+ - - ! '>='
596
+ - !ruby/object:Gem::Version
597
+ version: '0'
598
+ type: :development
599
+ prerelease: false
600
+ version_requirements: !ruby/object:Gem::Requirement
601
+ none: false
602
+ requirements:
603
+ - - ! '>='
604
+ - !ruby/object:Gem::Version
605
+ version: '0'
606
+ - !ruby/object:Gem::Dependency
607
+ name: rspec
608
+ requirement: !ruby/object:Gem::Requirement
609
+ none: false
610
+ requirements:
611
+ - - ! '>='
612
+ - !ruby/object:Gem::Version
613
+ version: 2.0.0
614
+ type: :development
615
+ prerelease: false
616
+ version_requirements: !ruby/object:Gem::Requirement
617
+ none: false
618
+ requirements:
619
+ - - ! '>='
620
+ - !ruby/object:Gem::Version
621
+ version: 2.0.0
622
+ - !ruby/object:Gem::Dependency
623
+ name: database_cleaner
624
+ requirement: !ruby/object:Gem::Requirement
625
+ none: false
626
+ requirements:
627
+ - - ! '>='
628
+ - !ruby/object:Gem::Version
629
+ version: '0'
630
+ type: :development
631
+ prerelease: false
632
+ version_requirements: !ruby/object:Gem::Requirement
633
+ none: false
634
+ requirements:
635
+ - - ! '>='
636
+ - !ruby/object:Gem::Version
637
+ version: '0'
350
638
  description: Provides fields and methods for the rating manipulation on Mongoid documents.
351
639
  email: psavichev@gmail.com
352
640
  executables: []
@@ -390,7 +678,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
390
678
  version: '0'
391
679
  segments:
392
680
  - 0
393
- hash: -780149155
681
+ hash: 906699105
394
682
  required_rubygems_version: !ruby/object:Gem::Requirement
395
683
  none: false
396
684
  requirements: