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.
- checksums.yaml +8 -8
- data/{LICENSE.txt → MIT-LICENSE} +2 -4
- data/README.md +43 -54
- data/Rakefile +29 -4
- data/{lib/generators/seems_rateable/templates/images → app/assets/images/seems_rateable}/bg_jRatingInfos.png +0 -0
- data/{lib/generators/seems_rateable/templates/images → app/assets/images/seems_rateable}/small.png +0 -0
- data/{lib/generators/seems_rateable/templates/images → app/assets/images/seems_rateable}/stars.png +0 -0
- data/app/assets/javascripts/seems_rateable/application.js +15 -0
- data/{lib/generators/seems_rateable/templates/javascripts → app/assets/javascripts/seems_rateable}/jRating.jquery.js.erb +3 -3
- data/app/assets/stylesheets/seems_rateable/application.css +13 -0
- data/{lib/generators/seems_rateable/templates/stylesheets → app/assets/stylesheets/seems_rateable}/jRating.jquery.css +4 -4
- data/app/controllers/seems_rateable/application_controller.rb +4 -0
- data/app/controllers/seems_rateable/ratings_controller.rb +17 -0
- data/app/helpers/seems_rateable/application_helper.rb +4 -0
- data/app/helpers/seems_rateable/ratings_helper.rb +4 -0
- data/app/models/seems_rateable/cached_rating.rb +5 -0
- data/app/models/seems_rateable/rate.rb +6 -0
- data/app/views/layouts/seems_rateable/application.html.erb +14 -0
- data/config/routes.rb +3 -0
- data/lib/generators/seems_rateable/install/install_generator.rb +39 -0
- data/lib/generators/seems_rateable/{templates/cached_rating_migration.rb → install/templates/cached_ratings_migration.rb} +2 -2
- data/lib/generators/seems_rateable/install/templates/initializer.rb +4 -0
- data/lib/generators/seems_rateable/install/templates/jRating.js.erb +225 -0
- data/lib/generators/seems_rateable/install/templates/rateable.js.erb +25 -0
- data/lib/generators/seems_rateable/{templates/rate_migration.rb → install/templates/rates_migration.rb} +2 -5
- data/lib/seems_rateable/engine.rb +17 -0
- data/lib/seems_rateable/errors.rb +21 -0
- data/lib/seems_rateable/helpers.rb +27 -23
- data/lib/seems_rateable/model.rb +111 -0
- data/lib/seems_rateable/routes.rb +7 -0
- data/lib/seems_rateable/version.rb +1 -1
- data/lib/seems_rateable.rb +11 -3
- data/lib/tasks/seems_rateable_tasks.rake +4 -0
- metadata +83 -33
- data/.gitignore +0 -19
- data/Gemfile +0 -9
- data/lib/generators/seems_rateable/USAGE +0 -0
- data/lib/generators/seems_rateable/seems_rateable_generator.rb +0 -65
- data/lib/generators/seems_rateable/templates/cached_model.rb +0 -4
- data/lib/generators/seems_rateable/templates/controller.rb +0 -15
- data/lib/generators/seems_rateable/templates/javascripts/rateable.jquery.js.erb +0 -25
- data/lib/generators/seems_rateable/templates/model.rb +0 -7
- data/lib/generators/seems_rateable_destroy_generator.rb +0 -19
- data/lib/seems_rateable/record.rb +0 -117
- data/seems_rateable.gemspec +0 -25
@@ -1,6 +1,6 @@
|
|
1
|
-
class
|
1
|
+
class CreateSeemsRateableRates < ActiveRecord::Migration
|
2
2
|
def self.up
|
3
|
-
create_table :
|
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
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
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
|
data/lib/seems_rateable.rb
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
-
|
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/
|
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
|
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.
|
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-
|
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:
|
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: '
|
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: '
|
55
|
-
|
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
|
-
- .
|
63
|
-
-
|
64
|
-
-
|
65
|
-
-
|
66
|
-
-
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
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/
|
83
|
-
- lib/seems_rateable/
|
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.
|
86
|
-
|
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
|
158
|
+
summary: Star Rating Engine
|
109
159
|
test_files: []
|
data/.gitignore
DELETED
data/Gemfile
DELETED
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,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,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
|