ajaxful_rating 3.0.0.beta3 → 3.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ begin
6
6
 
7
7
  Jeweler::Tasks.new do |spec|
8
8
  spec.name = "ajaxful_rating"
9
- spec.version = "3.0.0.beta3"
9
+ spec.version = "3.0.0.beta4"
10
10
  spec.summary = "Provides a simple way to add rating functionality to your application."
11
11
  spec.description = "Provides a simple way to add rating functionality to your application."
12
12
  spec.homepage = "http://github.com/edgarjs/ajaxful-rating"
@@ -1,67 +1,56 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ajaxful_rating}
8
- s.version = "3.0.0.beta3"
8
+ s.version = "3.0.0.beta4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Edgar J. Suarez", "Denis Odorcic"]
12
- s.date = %q{2010-10-14}
12
+ s.date = %q{2011-08-16}
13
13
  s.description = %q{Provides a simple way to add rating functionality to your application.}
14
14
  s.email = ["edgar.js@gmail.com", "denis.odorcic@gmail.com"]
15
15
  s.extra_rdoc_files = [
16
16
  "README.textile"
17
17
  ]
18
18
  s.files = [
19
- ".gitignore",
20
- "CHANGELOG",
21
- "Manifest",
22
- "README.textile",
23
- "Rakefile",
24
- "ajaxful_rating.gemspec",
25
- "lib/ajaxful_rating.rb",
26
- "lib/axr/css_builder.rb",
27
- "lib/axr/errors.rb",
28
- "lib/axr/helpers.rb",
29
- "lib/axr/locale.rb",
30
- "lib/axr/model.rb",
31
- "lib/axr/stars_builder.rb",
32
- "lib/generators/ajaxful_rating/USAGE",
33
- "lib/generators/ajaxful_rating/ajaxful_rating_generator.rb",
34
- "lib/generators/ajaxful_rating/templates/images/star.png",
35
- "lib/generators/ajaxful_rating/templates/images/star_small.png",
36
- "lib/generators/ajaxful_rating/templates/migration.rb",
37
- "lib/generators/ajaxful_rating/templates/model.rb",
38
- "lib/generators/ajaxful_rating/templates/style.css",
39
- "test/fixtures/car.rb",
40
- "test/fixtures/cars.yml",
41
- "test/fixtures/rate.rb",
42
- "test/fixtures/rates.yml",
43
- "test/fixtures/schema.rb",
44
- "test/fixtures/user.rb",
45
- "test/fixtures/users.yml",
46
- "test/lib/model_test.rb",
47
- "test/test_helper.rb"
19
+ "CHANGELOG",
20
+ "Manifest",
21
+ "README.textile",
22
+ "Rakefile",
23
+ "ajaxful_rating.gemspec",
24
+ "lib/ajaxful_rating.rb",
25
+ "lib/axr/css_builder.rb",
26
+ "lib/axr/errors.rb",
27
+ "lib/axr/helpers.rb",
28
+ "lib/axr/locale.rb",
29
+ "lib/axr/model.rb",
30
+ "lib/axr/stars_builder.rb",
31
+ "lib/generators/ajaxful_rating/USAGE",
32
+ "lib/generators/ajaxful_rating/ajaxful_rating_generator.rb",
33
+ "lib/generators/ajaxful_rating/templates/images/star.png",
34
+ "lib/generators/ajaxful_rating/templates/images/star_small.png",
35
+ "lib/generators/ajaxful_rating/templates/migration.rb",
36
+ "lib/generators/ajaxful_rating/templates/model.rb",
37
+ "lib/generators/ajaxful_rating/templates/style.css",
38
+ "test/fixtures/car.rb",
39
+ "test/fixtures/cars.yml",
40
+ "test/fixtures/rate.rb",
41
+ "test/fixtures/rates.yml",
42
+ "test/fixtures/schema.rb",
43
+ "test/fixtures/user.rb",
44
+ "test/fixtures/users.yml",
45
+ "test/lib/model_test.rb",
46
+ "test/test_helper.rb"
48
47
  ]
49
48
  s.homepage = %q{http://github.com/edgarjs/ajaxful-rating}
50
- s.rdoc_options = ["--charset=UTF-8"]
51
49
  s.require_paths = ["lib"]
52
- s.rubygems_version = %q{1.3.7}
50
+ s.rubygems_version = %q{1.6.2}
53
51
  s.summary = %q{Provides a simple way to add rating functionality to your application.}
54
- s.test_files = [
55
- "test/fixtures/car.rb",
56
- "test/fixtures/rate.rb",
57
- "test/fixtures/schema.rb",
58
- "test/fixtures/user.rb",
59
- "test/lib/model_test.rb",
60
- "test/test_helper.rb"
61
- ]
62
52
 
63
53
  if s.respond_to? :specification_version then
64
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
65
54
  s.specification_version = 3
66
55
 
67
56
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
data/lib/axr/model.rb CHANGED
@@ -21,16 +21,13 @@ module AjaxfulRating # :nodoc:
21
21
  has_many :rates_without_dimension, :as => :rateable, :class_name => 'Rate',
22
22
  :dependent => :destroy, :conditions => {:dimension => nil}
23
23
  has_many :raters_without_dimension, :through => :rates_without_dimension, :source => :rater
24
-
25
- options[:dimensions].each do |dimension|
26
- has_many "#{dimension}_rates", :dependent => :destroy,
27
- :conditions => {:dimension => dimension.to_s}, :class_name => 'Rate', :as => :rateable
28
- has_many "#{dimension}_raters", :through => "#{dimension}_rates", :source => :rater
29
- end if options[:dimensions].is_a?(Array)
30
24
 
31
25
  class << self
32
- def axr_config
33
- @axr_config ||= {
26
+ def axr_config(dimension = nil)
27
+ dimension ||= :default
28
+ @axr_config ||= {}
29
+ dimension = dimension.to_sym
30
+ @axr_config[dimension] ||= {
34
31
  :stars => 5,
35
32
  :allow_update => true,
36
33
  :cache_column => :rating_average
@@ -39,8 +36,19 @@ module AjaxfulRating # :nodoc:
39
36
 
40
37
  alias_method :ajaxful_rating_options, :axr_config
41
38
  end
39
+
40
+ if options[:dimensions].is_a?(Array)
41
+ options[:dimensions].each do |dimension|
42
+ has_many "#{dimension}_rates", :dependent => :destroy,
43
+ :conditions => {:dimension => dimension.to_s}, :class_name => 'Rate', :as => :rateable
44
+ has_many "#{dimension}_raters", :through => "#{dimension}_rates", :source => :rater
45
+
46
+ axr_config(dimension).update(options)
47
+ end
48
+ else
49
+ axr_config.update(options)
50
+ end
42
51
 
43
- axr_config.update(options)
44
52
 
45
53
  include AjaxfulRating::InstanceMethods
46
54
  extend AjaxfulRating::SingletonMethods
@@ -56,8 +64,8 @@ module AjaxfulRating # :nodoc:
56
64
  module InstanceMethods
57
65
 
58
66
  # Proxy for axr_config singleton method.
59
- def axr_config
60
- self.class.axr_config
67
+ def axr_config(dimension = nil)
68
+ self.class.axr_config(dimension)
61
69
  end
62
70
 
63
71
  # Submits a new rate. Accepts a hash of tipical Ajax request.
@@ -71,9 +79,9 @@ module AjaxfulRating # :nodoc:
71
79
  # end
72
80
  def rate(stars, user, dimension = nil)
73
81
  return false if (stars.to_i > self.class.max_stars)
74
- raise Errors::AlreadyRatedError if (!self.class.axr_config[:allow_update] && rated_by?(user, dimension))
82
+ raise Errors::AlreadyRatedError if (!self.class.axr_config(dimension)[:allow_update] && rated_by?(user, dimension))
75
83
 
76
- rate = if self.class.axr_config[:allow_update] && rated_by?(user, dimension)
84
+ rate = if self.class.axr_config(dimension)[:allow_update] && rated_by?(user, dimension)
77
85
  rate_by(user, dimension)
78
86
  else
79
87
  rates(dimension).build.tap do |r|
@@ -132,7 +140,7 @@ module AjaxfulRating # :nodoc:
132
140
  # Based on if the user has already rated the object or the
133
141
  # :allow_update option is enabled.
134
142
  def can_rate_by?(user, dimension = nil)
135
- !rated_by?(user, dimension) || self.class.axr_config[:allow_update]
143
+ !rated_by?(user, dimension) || self.class.axr_config(dimension)[:allow_update]
136
144
  end
137
145
 
138
146
  # Instance's total rates.
@@ -189,8 +197,8 @@ module AjaxfulRating # :nodoc:
189
197
  # Change it by passing the :stars option to +ajaxful_rateable+
190
198
  #
191
199
  # ajaxful_rateable :stars => 10
192
- def max_stars
193
- axr_config[:stars]
200
+ def max_stars(dimension = nil)
201
+ axr_config(dimension)[:stars]
194
202
  end
195
203
 
196
204
  # Name of the class for the user model.
@@ -254,7 +262,7 @@ module AjaxfulRating # :nodoc:
254
262
 
255
263
  # Returns the name of the cache column for the passed dimension.
256
264
  def caching_column_name(dimension = nil)
257
- name = axr_config[:cache_column].to_s
265
+ name = axr_config(dimension)[:cache_column].to_s
258
266
  name += "_#{dimension.to_s.underscore}" unless dimension.blank?
259
267
  name
260
268
  end
@@ -79,7 +79,7 @@ module AjaxfulRating # :nodoc:
79
79
  })
80
80
 
81
81
  @template.content_tag(:li) do
82
- if !options[:force_static] && (user && options[:current_user] == user && (!already_rated || rateable.axr_config[:allow_update]))
82
+ if !options[:force_static] && (user && options[:current_user] == user && (!already_rated || rateable.axr_config(options[:dimension])[:allow_update]))
83
83
  link_star_tag(value, css_class)
84
84
  else
85
85
  @template.content_tag(:span, show_value, :class => css_class, :title => i18n(:current))
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ajaxful_rating
3
3
  version: !ruby/object:Gem::Version
4
- hash: -1848230021
5
- prerelease: true
4
+ hash: 62196427
5
+ prerelease: 6
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
9
  - 0
10
- - beta3
11
- version: 3.0.0.beta3
10
+ - beta
11
+ - 4
12
+ version: 3.0.0.beta4
12
13
  platform: ruby
13
14
  authors:
14
15
  - Edgar J. Suarez
@@ -17,7 +18,7 @@ autorequire:
17
18
  bindir: bin
18
19
  cert_chain: []
19
20
 
20
- date: 2010-10-14 00:00:00 -05:00
21
+ date: 2011-08-16 00:00:00 -05:00
21
22
  default_executable:
22
23
  dependencies: []
23
24
 
@@ -32,7 +33,6 @@ extensions: []
32
33
  extra_rdoc_files:
33
34
  - README.textile
34
35
  files:
35
- - .gitignore
36
36
  - CHANGELOG
37
37
  - Manifest
38
38
  - README.textile
@@ -66,8 +66,8 @@ homepage: http://github.com/edgarjs/ajaxful-rating
66
66
  licenses: []
67
67
 
68
68
  post_install_message:
69
- rdoc_options:
70
- - --charset=UTF-8
69
+ rdoc_options: []
70
+
71
71
  require_paths:
72
72
  - lib
73
73
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -93,14 +93,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  requirements: []
94
94
 
95
95
  rubyforge_project:
96
- rubygems_version: 1.3.7
96
+ rubygems_version: 1.6.2
97
97
  signing_key:
98
98
  specification_version: 3
99
99
  summary: Provides a simple way to add rating functionality to your application.
100
- test_files:
101
- - test/fixtures/car.rb
102
- - test/fixtures/rate.rb
103
- - test/fixtures/schema.rb
104
- - test/fixtures/user.rb
105
- - test/lib/model_test.rb
106
- - test/test_helper.rb
100
+ test_files: []
101
+
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- pkg
2
- doc
3
- .DS_Store
4
- *.gem