mongoid_rating 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ec9fb8ca4177c886bbda6efaf5897092d801602
4
- data.tar.gz: b0e778371a7ea4f73107a25cc89d306e57a75c5a
3
+ metadata.gz: 25cb13913e025c8e1c6d1bdb5879273ef0d68137
4
+ data.tar.gz: 7a634be5625c8af142be76b957b4dd2f266d5827
5
5
  SHA512:
6
- metadata.gz: 89e37367dbfbaea78ded2230d87aadcdd19d27bd39590c3d5363eec8edd6c6bca17af9b775e5c0d980ca07b84a48665d06ab336aaf3f3a5db8f8d4c88e971c50
7
- data.tar.gz: bcd2897fa39a48e7bef7670e75449f0d29d0a0e3529c0dcb63babf5455fdb3fe7f3eddd990c5172a1f6533f99800221abcb36f98b55f51fc66a43e1c72655245
6
+ metadata.gz: 29ae78bb51b8ba354925ed60d2beeaca3d527e7a4e792320465af4a722af0dcaf8cb89d1e5ed63867f6b4686fb8ffea369f3d07c7bb0baa7c150ee4705ca38cd
7
+ data.tar.gz: 4319ee5e97ef7ab1bd3943d056da645098f0b480f2ec5236639616cd585788f40f86141597cc71fbcf47c64027f50a4ff66a8af6187d84a4dcae9e2c639cd42c
@@ -16,13 +16,16 @@ module Mongoid
16
16
  #
17
17
  # float: whether to allow non-integer rates (default true)
18
18
  #
19
- def rateable(field, options = {})
19
+ def rateable(field, opt = {})
20
20
  options = {
21
21
  range: 1..5,
22
22
  rerate: true,
23
23
  counters: true,
24
- float: true
25
- }.merge(options)
24
+ float: true,
25
+ }.merge(opt)
26
+ options[:no_rate] ||= options[:float] ? '0.0' : '0'
27
+ options[:format] ||= options[:float] ? '%.1f' : '%d'
28
+
26
29
  field = field.to_sym
27
30
  sfield = field.inspect
28
31
 
@@ -55,6 +58,18 @@ module Mongoid
55
58
  where(#{savg}.ne => nil).order_by([#{savg}, :desc])
56
59
  }
57
60
 
61
+ # return user's rate if rated otherwise formatted rate value
62
+ # good for Raty JS plugin
63
+ def fmt_#{field}(user = nil)
64
+ if !user.nil? && #{field}_by?(user)
65
+ #{options[:format].inspect} % #{field}_by(user)
66
+ elsif #{field}.nil?
67
+ #{options[:no_rate].class.name == 'String' ? options[:no_rate].inspect : options[:no_rate]}
68
+ else
69
+ #{options[:format].inspect} % #{field}
70
+ end
71
+ end
72
+
58
73
  def #{field}!(value, rater)
59
74
  if #{options[:float]}
60
75
  value = value.to_f
@@ -1,3 +1,3 @@
1
1
  module MongoidRating
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/spec/comment_spec.rb CHANGED
@@ -41,6 +41,12 @@ describe Comment do
41
41
  @comment1.rate! '2.7', @bob
42
42
  @comment1.rate_values.should eq [2]
43
43
  end
44
+
45
+ it 'fmt_rate' do
46
+ @comment1.fmt_rate.should eq '0'
47
+ @comment1.rate! '2.0', @bob
48
+ @comment1.fmt_rate.should eq '2'
49
+ end
44
50
  end
45
51
 
46
52
  context "when rated" do
data/spec/post_spec.rb CHANGED
@@ -28,6 +28,23 @@ describe Post do
28
28
  end
29
29
  end
30
30
 
31
+ it 'allows string rate' do
32
+ @post.rate! '5', @bob
33
+ @post.rate.should eql 5.0
34
+ end
35
+
36
+ it 'allows string rate' do
37
+ @post.rate! '3.2', @bob
38
+ @post.rate.should eql 3.2
39
+ end
40
+ it '#fmt_rate' do
41
+ @post.fmt_rate.should eq '0.0'
42
+ @post.rate! '3.2', @bob
43
+ @post.fmt_rate.should eq '3.2'
44
+ @post.rate! '3', @bob
45
+ @post.fmt_rate.should eq '3.0'
46
+ end
47
+
31
48
  context "when rated" do
32
49
  before (:each) do
33
50
  @post.rate! 1, @bob
@@ -53,15 +70,6 @@ describe Post do
53
70
  it { expect { @post.rate -17, @sally }.to raise_error() }
54
71
  end
55
72
 
56
- it 'allows string rate' do
57
- @post.rate! '5', @bob
58
- @post.rate.should eql 5.0
59
- end
60
-
61
- it 'allows string rate' do
62
- @post.rate! '3.2', @bob
63
- @post.rate.should eql 3.2
64
- end
65
73
  end
66
74
 
67
75
  describe "#rated?" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_rating
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - glebtv