seems_rateable 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
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