ajaxful_rating 3.0.0.beta3 → 3.0.0.beta4

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/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