rating_for 0.2 → 0.3

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.
@@ -13,6 +13,7 @@ module RatingFor
13
13
  has_one "rating_for_#{element}",
14
14
  :dependent => :destroy,
15
15
  :as => :element,
16
+ :class_name => 'RateableElement',
16
17
  :conditions => {:element_attribute => element.to_s}
17
18
 
18
19
  define_method "rating_for_#{element}" do
@@ -1,5 +1,5 @@
1
1
  class RateableElement < ActiveRecord::Base
2
- has_many :ratings, :dependent => :destroy
2
+ has_many :ratings, :dependent => :destroy, :inverse_of => :rateable_element
3
3
  belongs_to :element, :polymorphic => true
4
4
  before_save :recalculate_avg_rating
5
5
 
@@ -1,5 +1,5 @@
1
1
  class Rating < ActiveRecord::Base
2
- belongs_to :rateable_element
2
+ belongs_to :rateable_element, :inverse_of => :ratings, :touch => true
3
3
  belongs_to :rater, :polymorphic => true
4
4
 
5
5
  validates_associated :rateable_element
@@ -32,6 +32,7 @@ class Rating < ActiveRecord::Base
32
32
 
33
33
  def update_rateable_element
34
34
  self.rateable_element.recalculate_rating
35
+ p 'a12'
35
36
  end
36
37
 
37
- end
38
+ end
@@ -1,3 +1,3 @@
1
1
  module RatingFor
2
- VERSION = "0.2"
2
+ VERSION = "0.3"
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative 'test_helper.rb'
2
2
 
3
3
  class User < ActiveRecord::Base
4
4
  end
@@ -99,7 +99,7 @@ class RatingForTest < ActiveRecord::TestCase
99
99
  assert hotel.rating_for_quality.avg_rating != new_avg_rating
100
100
  assert_equal avg_rating, hotel.rating_for_quality.avg_rating
101
101
 
102
- # new objects get their data fresh out of the database - this data is corect
102
+ # new objects get their data fresh out of the database - this data is correct
103
103
  h2 = Hotel.find(1)
104
104
  assert_equal h.rating_for_quality.avg_rating, h2.rating_for_quality.avg_rating
105
105
  assert hotel.rating_for_quality.avg_rating != h2.rating_for_quality.avg_rating
@@ -126,4 +126,16 @@ class RatingForTest < ActiveRecord::TestCase
126
126
  assert avg_rating != hotel.rating_for_quality.avg_rating
127
127
  assert_equal new_avg_rating, hotel.rating_for_quality.avg_rating
128
128
  end
129
+
130
+ test "remove objects" do
131
+ hotel = Hotel.find(1)
132
+ hotel.rating_for_service.add 10
133
+
134
+ r = RateableElement.where(:element_type => 'Hotel', :element_attribute => 'service', :element_id => 1)
135
+ assert_equal 1, r.count
136
+
137
+ hotel.destroy
138
+ r = RateableElement.where(:element_type => 'Hotel', :element_attribute => 'service', :element_id => 1)
139
+ assert_equal 0, r.count
140
+ end
129
141
  end
@@ -2,10 +2,10 @@ require 'rubygems'
2
2
  require 'active_record'
3
3
  require 'active_record/test_case'
4
4
  require 'active_record/fixtures'
5
+ require 'rating_for'
5
6
 
6
7
  require 'test/unit'
7
- require File.dirname(__FILE__) + '/../init'
8
- require File.dirname(__FILE__) + '/../lib/generators/rating_for/migration/templates/migration'
8
+ require File.join(File.dirname(__FILE__) + '/../lib/generators/rating_for/migration/templates/migration')
9
9
 
10
10
  ActiveRecord::Base.establish_connection({
11
11
  :adapter => 'sqlite3', :database => ':memory:'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rating_for
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-23 00:00:00.000000000 Z
12
+ date: 2012-10-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70173126204620 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70173126204620
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: sqlite3
27
- requirement: &70173126201800 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70173126201800
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  description: This plugin allows you to add multiple different rating criteria to your
37
47
  ActiveRecord based model. It provides column-caching and a polymorphic association
38
48
  for raters.
@@ -79,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
89
  version: '0'
80
90
  requirements: []
81
91
  rubyforge_project: rating_for
82
- rubygems_version: 1.8.10
92
+ rubygems_version: 1.8.24
83
93
  signing_key:
84
94
  specification_version: 3
85
95
  summary: A context-based rating gem for Rails