seems_rateable 1.0.6 → 1.0.7

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.
Files changed (45) hide show
  1. checksums.yaml +8 -8
  2. data/{LICENSE.txt → MIT-LICENSE} +2 -4
  3. data/README.md +43 -54
  4. data/Rakefile +29 -4
  5. data/{lib/generators/seems_rateable/templates/images → app/assets/images/seems_rateable}/bg_jRatingInfos.png +0 -0
  6. data/{lib/generators/seems_rateable/templates/images → app/assets/images/seems_rateable}/small.png +0 -0
  7. data/{lib/generators/seems_rateable/templates/images → app/assets/images/seems_rateable}/stars.png +0 -0
  8. data/app/assets/javascripts/seems_rateable/application.js +15 -0
  9. data/{lib/generators/seems_rateable/templates/javascripts → app/assets/javascripts/seems_rateable}/jRating.jquery.js.erb +3 -3
  10. data/app/assets/stylesheets/seems_rateable/application.css +13 -0
  11. data/{lib/generators/seems_rateable/templates/stylesheets → app/assets/stylesheets/seems_rateable}/jRating.jquery.css +4 -4
  12. data/app/controllers/seems_rateable/application_controller.rb +4 -0
  13. data/app/controllers/seems_rateable/ratings_controller.rb +17 -0
  14. data/app/helpers/seems_rateable/application_helper.rb +4 -0
  15. data/app/helpers/seems_rateable/ratings_helper.rb +4 -0
  16. data/app/models/seems_rateable/cached_rating.rb +5 -0
  17. data/app/models/seems_rateable/rate.rb +6 -0
  18. data/app/views/layouts/seems_rateable/application.html.erb +14 -0
  19. data/config/routes.rb +3 -0
  20. data/lib/generators/seems_rateable/install/install_generator.rb +39 -0
  21. data/lib/generators/seems_rateable/{templates/cached_rating_migration.rb → install/templates/cached_ratings_migration.rb} +2 -2
  22. data/lib/generators/seems_rateable/install/templates/initializer.rb +4 -0
  23. data/lib/generators/seems_rateable/install/templates/jRating.js.erb +225 -0
  24. data/lib/generators/seems_rateable/install/templates/rateable.js.erb +25 -0
  25. data/lib/generators/seems_rateable/{templates/rate_migration.rb → install/templates/rates_migration.rb} +2 -5
  26. data/lib/seems_rateable/engine.rb +17 -0
  27. data/lib/seems_rateable/errors.rb +21 -0
  28. data/lib/seems_rateable/helpers.rb +27 -23
  29. data/lib/seems_rateable/model.rb +111 -0
  30. data/lib/seems_rateable/routes.rb +7 -0
  31. data/lib/seems_rateable/version.rb +1 -1
  32. data/lib/seems_rateable.rb +11 -3
  33. data/lib/tasks/seems_rateable_tasks.rake +4 -0
  34. metadata +83 -33
  35. data/.gitignore +0 -19
  36. data/Gemfile +0 -9
  37. data/lib/generators/seems_rateable/USAGE +0 -0
  38. data/lib/generators/seems_rateable/seems_rateable_generator.rb +0 -65
  39. data/lib/generators/seems_rateable/templates/cached_model.rb +0 -4
  40. data/lib/generators/seems_rateable/templates/controller.rb +0 -15
  41. data/lib/generators/seems_rateable/templates/javascripts/rateable.jquery.js.erb +0 -25
  42. data/lib/generators/seems_rateable/templates/model.rb +0 -7
  43. data/lib/generators/seems_rateable_destroy_generator.rb +0 -19
  44. data/lib/seems_rateable/record.rb +0 -117
  45. data/seems_rateable.gemspec +0 -25
@@ -1,6 +1,6 @@
1
- class CreateRates < ActiveRecord::Migration
1
+ class CreateSeemsRateableRates < ActiveRecord::Migration
2
2
  def self.up
3
- create_table :rates do |t|
3
+ create_table :seems_rateable_rates do |t|
4
4
  t.belongs_to :rater
5
5
  t.belongs_to :rateable, :polymorphic => true
6
6
  t.float :stars, :null => false
@@ -10,9 +10,6 @@ class CreateRates < ActiveRecord::Migration
10
10
  t.string :dimension
11
11
  t.timestamps
12
12
  end
13
-
14
- #add_index :rates, :rater_id
15
- #add_index :rates, [:rateable_id, :rateable_type]
16
13
  end
17
14
 
18
15
  def self.down
@@ -0,0 +1,17 @@
1
+ module SeemsRateable
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace SeemsRateable
4
+
5
+ config.generators do |g|
6
+ g.test_framework :rspec, :fixture => false
7
+ g.fixture_replacement :factory_girl, :dir => 'spec/factories'
8
+ end
9
+
10
+ initializer :seems_rateable do
11
+ ActiveRecord::Base.send :include, SeemsRateable::Model
12
+ ActionView::Base.send :include, SeemsRateable::Helpers
13
+ ActionDispatch::Routing::Mapper.send :include, SeemsRateable::Routes
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ module SeemsRateable
2
+ module Errors
3
+ class InvalidRateableObjectError < StandardError
4
+ def to_s
5
+ "Stated object is not rateable. Add 'seems_rateable' to your object's class model."
6
+ end
7
+ end
8
+
9
+ class NoCurrentUserInstanceError < StandardError
10
+ def to_s
11
+ "User instance current_user is not available."
12
+ end
13
+ end
14
+
15
+ class AlreadyRatedError < StandardError
16
+ def to_s
17
+ "User has already rated an object."
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,23 +1,27 @@
1
- module Helpers
2
- def seems_rateable_style
3
- stylesheet_link_tag "rateable/jRating.jquery"
4
- end
5
-
6
- def rating_for(obj, opts={:dimension => nil, :static => false, :id => nil})
7
- begin
8
- kls = opts[:dimension].nil? ? obj.average : obj.average(opts[:dimension])
9
- avg = kls ? kls.avg : 0
10
- content_tag :div, "", "data-average" => avg,
11
- :id => opts[:id],
12
- :class => "rateable#{opts[:static] ? " jDisabled" : nil}#{current_user ? nil : " jDisabled"}",
13
- "data-id" => obj.id, "data-kls" => obj.class.name,
14
- "data-dimension" => opts[:dimension]
15
- rescue StandardError => error
16
- eval "raise 'Rateable object #{obj.inspect} does not exist'"
17
- end
18
- end
19
- end
20
-
21
- class ActionView::Base
22
- include Helpers
23
- end
1
+ module SeemsRateable
2
+ module Helpers
3
+ def rating_for(obj, opts={})
4
+ raise Errors::InvalidRateableObjectError unless obj.class.respond_to?(:rateable?)
5
+
6
+ options = {
7
+ :dimension => nil,
8
+ :static => false,
9
+ :class => 'rateable',
10
+ :id => nil
11
+ }.update(opts)
12
+
13
+ content_tag :div, "", "data-average" => obj.average(options[:dimension]) ? obj.average(options[:dimension]).avg : 0, :id => options[:id],
14
+ :class => "#{options[:class]}#{jdisabled?(options[:static])}",
15
+ "data-id" => obj.id, "data-kls" => obj.class.name, "data-dimension" => options[:dimension]
16
+ end
17
+
18
+ def seems_rateable_stylesheet
19
+ stylesheet_link_tag "seems_rateable/jRating.jquery"
20
+ end
21
+
22
+ private
23
+ def jdisabled?(option)
24
+ " jDisabled" if option || !current_user
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,111 @@
1
+ require 'active_support/concern'
2
+ module SeemsRateable
3
+ module Model
4
+ extend ActiveSupport::Concern
5
+
6
+ def rate(stars, user_id, dimension=nil)
7
+ if !has_rated?(user_id, dimension)
8
+ self.rates.create do |r|
9
+ r.stars = stars
10
+ r.rater_id = user_id
11
+ end
12
+ update_overall_average_rating(stars, dimension)
13
+ elsif has_rated?(user_id, dimension) && can_update?
14
+ update_users_rating(stars, user_id, dimension)
15
+ else
16
+ raise Errors::AlreadyRatedError
17
+ end
18
+ end
19
+
20
+ def update_overall_average_rating(stars, dimension=nil)
21
+ if average(dimension).nil?
22
+ CachedRating.create do |r|
23
+ r.avg = stars
24
+ r.dimension = dimension
25
+ r.cacheable_id = self.id
26
+ r.cacheable_type = self.class.name
27
+ r.cnt = 1
28
+ end
29
+ else
30
+ r = average(dimension)
31
+ r.avg = (r.avg * r.cnt + stars) / (r.cnt+1)
32
+ r.cnt += 1
33
+ r.save!
34
+ end
35
+ end
36
+
37
+ def update_users_rating(stars, user_id, dimension=nil)
38
+ obj = rates(dimension).where(:rater_id => user_id).first
39
+ current_record = average(dimension)
40
+ current_record.avg = (current_record.avg*current_record.cnt - obj.stars + stars) / (current_record.cnt)
41
+ current_record.save!
42
+ obj.stars = stars
43
+ obj.save!
44
+ end
45
+
46
+
47
+ def average(dimension=nil)
48
+ if dimension.nil?
49
+ self.send "rate_average_without_dimension"
50
+ else
51
+ self.send "#{dimension}_average"
52
+ end
53
+ end
54
+
55
+ def rates(dimension=nil)
56
+ if dimension.nil?
57
+ self.send "rates_without_dimension"
58
+ else
59
+ self.send "#{dimension}_rates"
60
+ end
61
+ end
62
+
63
+ def raters(dimension=nil)
64
+ if dimension.nil?
65
+ self.send "raters_without_dimension"
66
+ else
67
+ self.send "#{dimension}_raters"
68
+ end
69
+ end
70
+
71
+ def has_rated?(user_id, dimension=nil)
72
+ record = self.rates(dimension).where(:rater_id => user_id)
73
+ record.empty? ? false : true
74
+ end
75
+
76
+ def can_update?
77
+ self.class.can_update?
78
+ end
79
+
80
+ module ClassMethods
81
+ def seems_rateable(opts={})
82
+ #has_many :rates_without_dimension, -> { where(dimension: nil) }, :as => :rateable, :class_name => SeemsRateable::Rate, :dependent => :destroy
83
+ has_many :rates_without_dimension, :conditions => { dimension: nil }, :as => :rateable, :class_name => SeemsRateable::Rate, :dependent => :destroy
84
+ has_many :raters_without_dimension, :through => :rates_without_dimension, :source => :rater
85
+ has_one :rate_average_without_dimension, :conditions => { dimension: nil }, :as => :cacheable, :class_name => SeemsRateable::CachedRating, :dependent => :destroy
86
+
87
+ @permission = opts[:allow_update] ? true : false
88
+
89
+ def self.can_update?
90
+ @permission
91
+ end
92
+
93
+ def self.rateable?
94
+ true
95
+ end
96
+
97
+ if opts[:dimensions].is_a?(Array)
98
+ opts[:dimensions].each do |dimension|
99
+ has_many :"#{dimension}_rates", :conditions => { dimension: dimension.to_s }, :dependent => :destroy, :class_name => SeemsRateable::Rate, :as => :rateable
100
+ has_many :"#{dimension}_raters", :through => :"#{dimension}_rates", :source => :rater
101
+ has_one :"#{dimension}_average", :conditions => { dimension: dimension.to_s }, :as => :cacheable, :class_name => SeemsRateable::CachedRating, :dependent => :destroy
102
+ end
103
+ end
104
+ end
105
+
106
+ def seems_rateable_rater
107
+ has_many :ratings_given, :class_name => SeemsRateable::Rate, :foreign_key => :rater_id
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,7 @@
1
+ module SeemsRateable
2
+ module Routes
3
+ def seems_rateable
4
+ mount SeemsRateable::Engine => '/rateable', :as => :rateable
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module SeemsRateable
2
- VERSION = "1.0.6"
2
+ VERSION = "1.0.7"
3
3
  end
@@ -1,6 +1,14 @@
1
- require "seems_rateable/version"
1
+ begin
2
+ require 'rails'
3
+ rescue LoadError
4
+ end
5
+
6
+ require "seems_rateable/engine"
7
+ require "seems_rateable/errors"
2
8
  require "seems_rateable/helpers"
3
- require "seems_rateable/record"
9
+ require "seems_rateable/model"
10
+ require "seems_rateable/routes"
11
+ require "seems_rateable/version"
4
12
 
5
13
  module SeemsRateable
6
- end
14
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :seems_rateable do
3
+ # # Task goes here
4
+ # end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seems_rateable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Toth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-16 00:00:00.000000000 Z
11
+ date: 2013-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -25,7 +25,21 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: jquery-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ! '>='
@@ -39,51 +53,87 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rspec
56
+ name: rspec-rails
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ~>
59
+ - - ! '>='
46
60
  - !ruby/object:Gem::Version
47
- version: '2.6'
61
+ version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ~>
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: capybara
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
53
74
  - !ruby/object:Gem::Version
54
- version: '2.6'
55
- description: Star rating gem for Rails application using jQuery plugin jRating
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: factory_girl_rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Star rating engine using jQuery plugin jRating for Rails applications
56
98
  email:
57
99
  - proximin@gmail.com
58
100
  executables: []
59
101
  extensions: []
60
102
  extra_rdoc_files: []
61
103
  files:
62
- - .gitignore
63
- - Gemfile
64
- - LICENSE.txt
65
- - README.md
66
- - Rakefile
67
- - lib/generators/seems_rateable/USAGE
68
- - lib/generators/seems_rateable/seems_rateable_generator.rb
69
- - lib/generators/seems_rateable/templates/cached_model.rb
70
- - lib/generators/seems_rateable/templates/cached_rating_migration.rb
71
- - lib/generators/seems_rateable/templates/controller.rb
72
- - lib/generators/seems_rateable/templates/images/bg_jRatingInfos.png
73
- - lib/generators/seems_rateable/templates/images/small.png
74
- - lib/generators/seems_rateable/templates/images/stars.png
75
- - lib/generators/seems_rateable/templates/javascripts/jRating.jquery.js.erb
76
- - lib/generators/seems_rateable/templates/javascripts/rateable.jquery.js.erb
77
- - lib/generators/seems_rateable/templates/model.rb
78
- - lib/generators/seems_rateable/templates/rate_migration.rb
79
- - lib/generators/seems_rateable/templates/stylesheets/jRating.jquery.css
80
- - lib/generators/seems_rateable_destroy_generator.rb
104
+ - app/views/layouts/seems_rateable/application.html.erb
105
+ - app/assets/stylesheets/seems_rateable/jRating.jquery.css
106
+ - app/assets/stylesheets/seems_rateable/application.css
107
+ - app/assets/javascripts/seems_rateable/application.js
108
+ - app/assets/javascripts/seems_rateable/jRating.jquery.js.erb
109
+ - app/assets/images/seems_rateable/stars.png
110
+ - app/assets/images/seems_rateable/small.png
111
+ - app/assets/images/seems_rateable/bg_jRatingInfos.png
112
+ - app/controllers/seems_rateable/ratings_controller.rb
113
+ - app/controllers/seems_rateable/application_controller.rb
114
+ - app/helpers/seems_rateable/ratings_helper.rb
115
+ - app/helpers/seems_rateable/application_helper.rb
116
+ - app/models/seems_rateable/rate.rb
117
+ - app/models/seems_rateable/cached_rating.rb
118
+ - config/routes.rb
81
119
  - lib/seems_rateable.rb
82
- - lib/seems_rateable/helpers.rb
83
- - lib/seems_rateable/record.rb
120
+ - lib/generators/seems_rateable/install/install_generator.rb
121
+ - lib/generators/seems_rateable/install/templates/initializer.rb
122
+ - lib/generators/seems_rateable/install/templates/rateable.js.erb
123
+ - lib/generators/seems_rateable/install/templates/rates_migration.rb
124
+ - lib/generators/seems_rateable/install/templates/cached_ratings_migration.rb
125
+ - lib/generators/seems_rateable/install/templates/jRating.js.erb
84
126
  - lib/seems_rateable/version.rb
85
- - seems_rateable.gemspec
86
- homepage: ''
127
+ - lib/seems_rateable/helpers.rb
128
+ - lib/seems_rateable/routes.rb
129
+ - lib/seems_rateable/errors.rb
130
+ - lib/seems_rateable/engine.rb
131
+ - lib/seems_rateable/model.rb
132
+ - lib/tasks/seems_rateable_tasks.rake
133
+ - MIT-LICENSE
134
+ - Rakefile
135
+ - README.md
136
+ homepage: http://rateable.herokuapp.com
87
137
  licenses: []
88
138
  metadata: {}
89
139
  post_install_message:
@@ -105,5 +155,5 @@ rubyforge_project:
105
155
  rubygems_version: 2.0.3
106
156
  signing_key:
107
157
  specification_version: 4
108
- summary: Star rating gem for Rails application using jQuery plugin jRating
158
+ summary: Star Rating Engine
109
159
  test_files: []
data/.gitignore DELETED
@@ -1,19 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- .project
19
- .rvmrc
data/Gemfile DELETED
@@ -1,9 +0,0 @@
1
- source 'https://rubygems.org'
2
- # Specify your gem's dependencies in seems_rateable.gemspec
3
- gemspec
4
- group :test, :development do
5
- gem 'factory_girl_rails', '~> 4.0'
6
- gem 'rspec'
7
- gem 'debugger'
8
- gem 'shoulda-matchers'
9
- end
File without changes
@@ -1,65 +0,0 @@
1
- require 'rails/generators/migration'
2
- require 'fileutils'
3
-
4
- class SeemsRateableGenerator < Rails::Generators::NamedBase
5
- include Rails::Generators::Migration
6
- source_root File.expand_path('../templates', __FILE__)
7
-
8
- desc "Copying asset files ..."
9
- def assets
10
- FileUtils.mkdir_p 'vendor/assets/images/rateable'
11
- Dir::mkdir 'vendor/assets/stylesheets/rateable'
12
- Dir::mkdir 'vendor/assets/javascripts/rateable'
13
-
14
- copy_file 'images/bg_jRatingInfos.png', 'vendor/assets/images/rateable/bg_jRatingInfos.png'
15
- copy_file 'images/small.png', 'vendor/assets/images/rateable/small.png'
16
- copy_file 'images/stars.png', 'vendor/assets/images/rateable/stars.png'
17
-
18
- copy_file 'stylesheets/jRating.jquery.css', 'vendor/assets/stylesheets/rateable/jRating.jquery.css'
19
- copy_file 'javascripts/jRating.jquery.js.erb', 'vendor/assets/javascripts/rateable/jRating.jquery.js.erb'
20
- copy_file 'javascripts/rateable.jquery.js.erb', 'vendor/assets/javascripts/rateable/rateable.jquery.js.erb'
21
- end
22
-
23
- desc "Generating controller file ..."
24
- def controller
25
- class_collisions 'RatingsController'
26
- template "controller.rb", File.join('app/controllers', 'ratings_controller.rb')
27
- end
28
-
29
- desc "Generating model files ..."
30
- def models
31
- model_file = File.join('app/models', "#{file_path}.rb")
32
- raise "User model (#{model_file}) must exits." unless File.exists?(model_file)
33
- class_collisions 'Rate'
34
- class_collisions 'CachedRating'
35
- template 'model.rb', File.join('app/models', 'rate.rb')
36
- template 'cached_model.rb', File.join('app/models', 'cached_rating.rb')
37
- end
38
-
39
- desc "Creating route ..."
40
- def routegen
41
- route "resources :ratings, :only => :create"
42
- end
43
-
44
- desc "Generating migrations ..."
45
- def migrations
46
- migration_template "cached_rating_migration.rb", "db/migrate/create_cached_ratings.rb"
47
- migration_template "rate_migration.rb", "db/migrate/create_rates.rb"
48
- end
49
-
50
- desc "Creating needed database tables"
51
- def migrating
52
- rake("db:migrate")
53
- end
54
-
55
- private
56
- def self.next_migration_number(dirname)
57
- #if ActiveRecord::Base.timestamped_migrations
58
- # Time.now.utc.strftime("%Y%m%d%H%M%S%L")
59
- #else
60
- "%.3d" % (current_migration_number(dirname) + 1)
61
- #end
62
- end
63
-
64
- end
65
-
@@ -1,4 +0,0 @@
1
- class CachedRating < ActiveRecord::Base
2
- attr_accessible :avg, :dimension
3
- belongs_to :cacheable, :polymorphic => true
4
- end
@@ -1,15 +0,0 @@
1
- class RatingsController < ApplicationController
2
-
3
- def create
4
- obj = eval "#{params[:kls]}.find(#{params[:idBox]})" rescue nil
5
- if obj.nil?
6
- raise "Object does not exist."
7
- end
8
-
9
- if obj && obj.rate(params[:rate].to_f, current_user.id, params[:dimension])
10
- render :json => true
11
- else
12
- render :json => {:error => true}
13
- end
14
- end
15
- end
@@ -1,25 +0,0 @@
1
- $(document).ready(function(){
2
- $(".rateable").jRating({
3
- //default options displayed below ->
4
-
5
- rateMax: 5, // //Maximal rate
6
- length : 5, // //Number of stars
7
- //decimalLength : 0 //Number of decimals in the rate
8
- //type : big, //Big or small
9
- //step : true, //If set to true, filling of the stars is done star by star (step by step).
10
- //isDisabled: false, //Set true to display static rating
11
- //showRateInfo:false //Rate info panel, set true to display
12
- //rateInfosX : 45 //In pixel - Absolute left position of the information box during mousemove.
13
- //rateInfosY : 5 //In pixel - Absolute top position of the information box during mousemove.
14
- path : '<%= Rails.application.class.routes.url_helpers.ratings_path %>',
15
- onSuccess : function(element, rate){
16
- //something like ->
17
- //alert('success');
18
- $('<span class="text-success"><small>Thanks for rating!</small></span>').insertAfter(element)
19
- },
20
- onError : function(element, rate) {
21
- $('<span class="text-error"><small>You have already rated!</small></span>').insertAfter(element)
22
- }
23
- });
24
-
25
- });
@@ -1,7 +0,0 @@
1
- class Rate < ActiveRecord::Base
2
- belongs_to :rater, :class_name => "<%= file_name.classify %>"
3
- belongs_to :rateable, :polymorphic => true
4
-
5
- attr_accessible :stars, :dimension
6
-
7
- end
@@ -1,19 +0,0 @@
1
- require 'fileutils'
2
- class SeemsRateableDestroyGenerator < Rails::Generators::Base
3
-
4
- def remove_asset_files
5
- FileUtils.remove_dir('vendor/assets/stylesheets/rateable')
6
- FileUtils.remove_dir('vendor/assets/javascripts/rateable')
7
- FileUtils.remove_dir('vendor/assets/images/rateable')
8
- end
9
-
10
- def remove_model_files
11
- FileUtils.rm('app/models/rate.rb')
12
- FileUtils.rm('app/models/cached_rating.rb')
13
- end
14
-
15
- def remove_controller_file
16
- FileUtils.rm('app/controllers/ratings_controller.rb')
17
- end
18
-
19
- end