mongoid_rateable 0.0.1 → 0.0.2

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -4,30 +4,41 @@ module Mongoid
4
4
 
5
5
  included do
6
6
  field :points, :type => Integer, :default => 0
7
- embeds_many :marks, as: :rateable
7
+ embeds_many :rating_marks, as: :rateable
8
8
  end
9
9
 
10
10
  module InstanceMethods
11
11
 
12
12
  def rate(mark, rater)
13
- unless rated? rater
14
- self.points += num.to_i
15
- self.marks << Mark.new(:rater_id => rater.id, :mark => mark)
13
+ unrate(rater)
14
+ self.points += mark.to_i
15
+ self.rating_marks.new(:rater_id => rater.id, :mark => mark)
16
+ end
17
+
18
+ def unrate(rater)
19
+ mark = self.rating_marks.where(:rater_id => rater.id).first
20
+ if mark
21
+ self.points -= mark.mark.to_i
22
+ mark.delete
16
23
  end
17
24
  end
18
25
 
19
26
  def rated?(rater)
20
- marks.where(:rater_id => rater.id).count == 1
27
+ self.rating_marks.where(:rater_id => rater.id).count == 1
21
28
  end
22
29
 
23
30
  def rating
24
- if marks.blank?
31
+ if self.rating_marks.blank?
25
32
  nil
26
33
  else
27
- points.to_f / marks.count
34
+ self.points.to_f / self.rating_marks.count
28
35
  end
29
36
  end
30
37
 
38
+ def rate_count
39
+ self.rating_marks.count
40
+ end
41
+
31
42
  end
32
43
  end
33
- end
44
+ end
@@ -1,6 +1,6 @@
1
- class Rating
1
+ class RatingMark
2
2
  include Mongoid::Document
3
3
  # belongs_to :rater, polymorphic: true
4
4
  embedded_in :rateable, polymorphic: true
5
5
  field :mark, :type => Integer
6
- end
6
+ end
@@ -1,3 +1,2 @@
1
1
  require 'mongoid_rateable/rateable'
2
- require 'mongoid_rateable/rater'
3
- require 'mongoid_rateable/rating'
2
+ require 'mongoid_rateable/rater'
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.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-06-16 00:00:00.000000000 +04:00
12
+ date: 2011-06-17 00:00:00.000000000 +04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: mongoid
17
- requirement: &74559330 !ruby/object:Gem::Requirement
17
+ requirement: &75414750 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *74559330
25
+ version_requirements: *75414750
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: shoulda
28
- requirement: &74551740 !ruby/object:Gem::Requirement
28
+ requirement: &75413390 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *74551740
36
+ version_requirements: *75413390
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
- requirement: &74550340 !ruby/object:Gem::Requirement
39
+ requirement: &75245950 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.0.0
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *74550340
47
+ version_requirements: *75245950
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: jeweler
50
- requirement: &74548240 !ruby/object:Gem::Requirement
50
+ requirement: &75243090 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 1.6.2
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *74548240
58
+ version_requirements: *75243090
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rcov
61
- requirement: &74546640 !ruby/object:Gem::Requirement
61
+ requirement: &75235470 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *74546640
69
+ version_requirements: *75235470
70
70
  description: Provides fields and methods for the manipulation of rates on Mongoid
71
71
  documents.
72
72
  email: psavichev@gmail.com
@@ -86,7 +86,6 @@ files:
86
86
  - lib/mongoid_rateable/rateable.rb
87
87
  - lib/mongoid_rateable/rater.rb
88
88
  - lib/mongoid_rateable/rating.rb
89
- - lib/mongoid_rateable/version.rb
90
89
  - test/helper.rb
91
90
  - test/test_mongoid_rateable.rb
92
91
  has_rdoc: true
@@ -105,7 +104,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
104
  version: '0'
106
105
  segments:
107
106
  - 0
108
- hash: -389218975
107
+ hash: -944209923
109
108
  required_rubygems_version: !ruby/object:Gem::Requirement
110
109
  none: false
111
110
  requirements:
@@ -1,3 +0,0 @@
1
- module MongoidRateable
2
- VERSION = '0.2.0'
3
- end