mongoid_rateable 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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