seems_rateable 1.0.13 → 2.0.0

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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +20 -0
  3. data/Gemfile +3 -0
  4. data/README.md +41 -61
  5. data/Rakefile +8 -2
  6. data/app/assets/javascripts/seems_rateable/index.js +1 -0
  7. data/{lib/generators/seems_rateable/install/templates → app/assets/javascripts/seems_rateable}/jRating.js.erb +225 -225
  8. data/app/assets/stylesheets/seems_rateable/{application.css → index.css.erb} +2 -2
  9. data/app/controllers/seems_rateable/application_controller.rb +1 -3
  10. data/app/controllers/seems_rateable/rates_controller.rb +31 -0
  11. data/app/models/seems_rateable/rate.rb +2 -2
  12. data/bin/rails +8 -0
  13. data/config/routes.rb +1 -1
  14. data/lib/generators/seems_rateable/install/install_generator.rb +34 -28
  15. data/lib/generators/seems_rateable/install/templates/initializer.rb +5 -2
  16. data/lib/generators/seems_rateable/install/templates/rateable.js.erb +12 -22
  17. data/lib/generators/seems_rateable/install/templates/rates_migration.rb +6 -9
  18. data/lib/generators/seems_rateable/manifest_finder.rb +25 -0
  19. data/lib/generators/seems_rateable/migration_helpers.rb +21 -0
  20. data/lib/generators/seems_rateable/uninstall/templates/drop_seems_rateable_rates_table.rb +9 -0
  21. data/lib/generators/seems_rateable/uninstall/uninstall_generator.rb +50 -0
  22. data/lib/generators/seems_rateable/uninstall_old/templates/drop_seems_rateable_cached_ratings_table.rb +9 -0
  23. data/lib/generators/seems_rateable/uninstall_old/templates/drop_seems_rateable_rates_table.rb +9 -0
  24. data/lib/generators/seems_rateable/uninstall_old/uninstall_old_generator.rb +48 -0
  25. data/lib/seems_rateable.rb +22 -7
  26. data/lib/seems_rateable/builder.rb +35 -0
  27. data/lib/seems_rateable/builder/html_options.rb +37 -0
  28. data/lib/seems_rateable/configuration.rb +23 -0
  29. data/lib/seems_rateable/engine.rb +12 -7
  30. data/lib/seems_rateable/errors.rb +3 -17
  31. data/lib/seems_rateable/helpers/action_view_extension.rb +18 -0
  32. data/lib/seems_rateable/helpers/current_rater.rb +15 -0
  33. data/lib/seems_rateable/models/active_record_extension.rb +23 -0
  34. data/lib/seems_rateable/models/active_record_extension/rateable.rb +26 -0
  35. data/lib/seems_rateable/models/active_record_extension/rater.rb +11 -0
  36. data/lib/seems_rateable/rating.rb +19 -0
  37. data/lib/seems_rateable/routes.rb +1 -1
  38. data/lib/seems_rateable/version.rb +1 -1
  39. data/seems_rateable.gemspec +32 -0
  40. data/spec/builder_spec.rb +53 -0
  41. data/spec/controllers/rates_controller_spec.rb +56 -0
  42. data/spec/dummy/README.rdoc +28 -0
  43. data/spec/dummy/Rakefile +6 -0
  44. data/{app/assets/javascripts/seems_rateable → spec/dummy/app/assets/javascripts}/application.js +4 -3
  45. data/spec/dummy/app/assets/javascripts/posts.js +2 -0
  46. data/spec/dummy/app/assets/javascripts/rateable/rateable.js.erb +15 -0
  47. data/spec/dummy/app/assets/stylesheets/application.css +19 -0
  48. data/spec/dummy/app/assets/stylesheets/scaffold.css +56 -0
  49. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  50. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  51. data/spec/dummy/app/controllers/posts_controller.rb +58 -0
  52. data/spec/dummy/app/models/.keep +0 -0
  53. data/spec/dummy/app/models/concerns/.keep +0 -0
  54. data/spec/dummy/app/models/post.rb +3 -0
  55. data/spec/dummy/app/models/user.rb +5 -0
  56. data/spec/dummy/app/views/layouts/application.html.erb +26 -0
  57. data/spec/dummy/app/views/posts/_form.html.erb +21 -0
  58. data/spec/dummy/app/views/posts/edit.html.erb +6 -0
  59. data/spec/dummy/app/views/posts/index.html.erb +28 -0
  60. data/spec/dummy/app/views/posts/new.html.erb +5 -0
  61. data/spec/dummy/app/views/posts/show.html.erb +9 -0
  62. data/spec/dummy/bin/bundle +3 -0
  63. data/spec/dummy/bin/rails +4 -0
  64. data/spec/dummy/bin/rake +4 -0
  65. data/spec/dummy/config.ru +4 -0
  66. data/spec/dummy/config/application.rb +42 -0
  67. data/spec/dummy/config/boot.rb +5 -0
  68. data/spec/dummy/config/database.yml +25 -0
  69. data/spec/dummy/config/environment.rb +5 -0
  70. data/spec/dummy/config/environments/development.rb +29 -0
  71. data/spec/dummy/config/environments/production.rb +80 -0
  72. data/spec/dummy/config/environments/test.rb +36 -0
  73. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  74. data/spec/dummy/config/initializers/devise.rb +254 -0
  75. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  76. data/spec/dummy/config/initializers/inflections.rb +16 -0
  77. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  78. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  79. data/spec/dummy/config/initializers/seems_rateable.rb +4 -0
  80. data/spec/dummy/config/initializers/session_store.rb +3 -0
  81. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  82. data/spec/dummy/config/locales/devise.en.yml +59 -0
  83. data/spec/dummy/config/locales/en.yml +23 -0
  84. data/spec/dummy/config/routes.rb +8 -0
  85. data/spec/dummy/db/migrate/20140506144141_create_posts.rb +9 -0
  86. data/spec/dummy/db/migrate/20140506144841_devise_create_users.rb +42 -0
  87. data/spec/dummy/db/migrate/20140520170316_create_seems_rateable_rates.rb +15 -0
  88. data/spec/dummy/db/schema.rb +54 -0
  89. data/spec/dummy/lib/assets/.keep +0 -0
  90. data/spec/dummy/public/404.html +58 -0
  91. data/spec/dummy/public/422.html +58 -0
  92. data/spec/dummy/public/500.html +57 -0
  93. data/spec/dummy/public/favicon.ico +0 -0
  94. data/spec/factories/posts.rb +5 -0
  95. data/spec/factories/rate.rb +7 -0
  96. data/spec/factories/users.rb +7 -0
  97. data/spec/features/rating_spec.rb +63 -0
  98. data/spec/helpers/action_view_extension_spec.rb +59 -0
  99. data/spec/models/active_record_extension_spec.rb +105 -0
  100. data/spec/models/rate_spec.rb +6 -0
  101. data/spec/rating_spec.rb +70 -0
  102. data/spec/spec_helper.rb +45 -0
  103. data/spec/support/dummies.rb +19 -0
  104. metadata +263 -25
  105. data/app/controllers/seems_rateable/ratings_controller.rb +0 -13
  106. data/app/models/seems_rateable/cached_rating.rb +0 -5
  107. data/lib/generators/seems_rateable/install/templates/cached_ratings_migration.rb +0 -17
  108. data/lib/seems_rateable/helpers.rb +0 -27
  109. data/lib/seems_rateable/model.rb +0 -91
@@ -47,11 +47,11 @@
47
47
  p.jRatingInfos {
48
48
  position: absolute;
49
49
  z-index:9999;
50
- background: transparent url('bg_jRatingInfos.png') no-repeat;
50
+ background: transparent url(<%= asset_path 'seems_rateable/bg_jRatingInfos.png' %>) no-repeat;
51
51
  color: #CACACA;
52
52
  display: none;
53
53
  width: 91px;
54
- height: 29px;
54
+ height: 29px;
55
55
  font-size:16px;
56
56
  text-align:center;
57
57
  padding-top:5px;
@@ -1,7 +1,5 @@
1
1
  module SeemsRateable
2
2
  class ApplicationController < ::ApplicationController
3
- rescue_from SeemsRateable::Errors::AlreadyRatedError do |exception|
4
- render :json => {:error => true}
5
- end
3
+ protect_from_forgery with: :exception
6
4
  end
7
5
  end
@@ -0,0 +1,31 @@
1
+ require_dependency "application_controller"
2
+
3
+ module SeemsRateable
4
+ class RatesController < ApplicationController
5
+ before_filter :require_login
6
+
7
+ def create
8
+ @rate = Rate.create! rate_params
9
+
10
+ render json: { average: rating.average }
11
+ end
12
+
13
+ private
14
+
15
+ def rateable
16
+ @rate.rateable
17
+ end
18
+
19
+ def rating
20
+ rateable.rating(@rate.dimension)
21
+ end
22
+
23
+ def rate_params
24
+ params.require(:rate).permit!.merge(rater_id: current_rater.id)
25
+ end
26
+
27
+ def require_login
28
+ raise SeemsRateable::Errors::NoCurrentRaterError unless current_rater
29
+ end
30
+ end
31
+ end
@@ -1,6 +1,6 @@
1
1
  module SeemsRateable
2
2
  class Rate < ActiveRecord::Base
3
- belongs_to :rater, :class_name => SeemsRateable::Engine.config.owner_class
4
- belongs_to :rateable, :polymorphic => true
3
+ belongs_to :rater, class_name: SeemsRateable.config.rate_owner_class
4
+ belongs_to :rateable, polymorphic: true
5
5
  end
6
6
  end
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby1.9.1
2
+ # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3
+
4
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
+ ENGINE_PATH = File.expand_path('../../lib/seems_rateable/engine', __FILE__)
6
+
7
+ require 'rails/all'
8
+ require 'rails/engine/commands'
@@ -1,3 +1,3 @@
1
1
  SeemsRateable::Engine.routes.draw do
2
- resources :ratings, :only => :create
2
+ resources :rates, only: :create
3
3
  end
@@ -1,41 +1,47 @@
1
- require 'rails/generators/migration'
1
+ require 'generators/seems_rateable/migration_helpers'
2
+ require 'generators/seems_rateable/manifest_finder'
2
3
  require 'fileutils'
3
4
 
4
5
  module SeemsRateable
5
6
  module Generators
6
7
  class InstallGenerator < ::Rails::Generators::Base
7
- include Rails::Generators::Migration
8
+ include SeemsRateable::Generators::MigrationHelpers
9
+ include SeemsRateable::Generators::ManifestFinder
10
+
8
11
  source_root File.expand_path('../templates', __FILE__)
9
-
10
- def self.next_migration_number(path)
11
- unless @prev_migration_nr
12
- @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
13
- else
14
- @prev_migration_nr += 1
15
- end
16
- @prev_migration_nr.to_s
12
+
13
+ def routes
14
+ route 'seems_rateable'
17
15
  end
18
-
19
- def routegen
20
- route("seems_rateable")
16
+
17
+ def javascript_assets
18
+ Dir.mkdir 'app/assets/javascripts/rateable' unless File.directory?('app/assets/javascripts/rateable')
19
+
20
+ copy_file 'rateable.js.erb', 'app/assets/javascripts/rateable/rateable.js.erb'
21
21
  end
22
-
23
- desc "generating migration files"
24
- def copy_migrations
25
- migration_template "rates_migration.rb", "db/migrate/create_seems_rateable_rates.rb"
26
- migration_template "cached_ratings_migration.rb", "db/migrate/create_seems_rateable_cached_ratings.rb"
22
+
23
+ def migrations
24
+ migration_template 'rates_migration.rb', 'db/migrate/create_seems_rateable_rates.rb'
27
25
  end
28
-
29
- desc "generating initializer"
30
- def copy_initializer
31
- template "initializer.rb", "config/initializers/seems_rateable.rb"
26
+
27
+ def initializer
28
+ template 'initializer.rb', 'config/initializers/seems_rateable.rb'
32
29
  end
33
-
34
- desc "generating javascript files"
35
- def copy_javascript_asset
36
- Dir.mkdir "app/assets/javascripts/rateable" unless File.directory?("app/assets/javascripts/rateable")
37
- copy_file "rateable.js.erb", "app/assets/javascripts/rateable/rateable.js.erb" unless File.exists?("app/assets/javascripts/rateable/rateable.js.erb")
38
- copy_file "jRating.js.erb", "app/assets/javascripts/rateable/jRating.js.erb" unless File.exists?("app/assets/javascripts/rateable/jRating.js.erb")
30
+
31
+ def require_stylesheet
32
+ if File.binread(detect_css[0]).include? "require_self"
33
+ insert_into_file detect_css[0], "\n#{detect_css[1]} require seems_rateable\n", after: /require_self/
34
+ else
35
+ prepend_to_file detect_css[0], "/*\n#{detect_css[1]} require seems_rateable\n*/\n"
36
+ end
37
+ end
38
+
39
+ def require_javascript
40
+ if File.binread(detect_js[0]).include? "require_tree"
41
+ insert_into_file detect_js[0], "\n#{detect_js[1]} require seems_rateable\n#{detect_js[1]} require_directory ./rateable\n", after: /require_tree/
42
+ else
43
+ prepend_to_file detect_js[0], "\n#{detect_js[1]} require seems_rateable\n #{detect_js[1]} require_directory ./rateable\n"
44
+ end
39
45
  end
40
46
  end
41
47
  end
@@ -1,4 +1,7 @@
1
1
  #SeemsRateable engine Initializer
2
2
 
3
- #Configure owner class of the given ratings
4
- SeemsRateable::Engine.config.owner_class = "User"
3
+ SeemsRateable.configure do |config|
4
+ #config.rate_owner_class = 'User'
5
+ #config.current_rater_method = :current_user
6
+ #config.default_selector_class = 'rateable'
7
+ end
@@ -1,25 +1,15 @@
1
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 : '<%= SeemsRateable::Engine.routes.url_helpers.ratings_path %>',
15
- onSuccess : function(element, rate){
16
- //something like ->
17
- //alert('success');
18
- $('<span class="text-success"><small style="display:inline-block;">Thanks for rating!</small></span>').insertAfter(element)
19
- },
20
- onError : function(element, rate) {
21
- $('<span class="text-error"><small style="display:inline-block;">You have already rated!</small></span>').insertAfter(element)
22
- }
23
- });
2
+ $(".rateable").jRating({
3
+ //default options displayed below ->
24
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
+ });
25
15
  });
@@ -1,18 +1,15 @@
1
1
  class CreateSeemsRateableRates < ActiveRecord::Migration
2
- def self.up
2
+ def change
3
3
  create_table :seems_rateable_rates do |t|
4
4
  t.belongs_to :rater
5
- t.belongs_to :rateable, :polymorphic => true
6
- t.float :stars, :null => false
7
- t.integer :rater_id, :limit => 8
8
- t.integer :rateable_id
9
- t.string :rateable_type
5
+ t.belongs_to :rateable, polymorphic: true
6
+ t.float :stars, null: false
10
7
  t.string :dimension
11
8
  t.timestamps
12
9
  end
13
- end
14
10
 
15
- def self.down
16
- drop_table :rates
11
+ add_index :seems_rateable_rates, :rater_id
12
+ add_index :seems_rateable_rates, [:rateable_id, :rateable_type]
13
+ add_index :seems_rateable_rates, :dimension
17
14
  end
18
15
  end
@@ -0,0 +1,25 @@
1
+ module SeemsRateable
2
+ module Generators
3
+ module ManifestFinder
4
+ private
5
+
6
+ def detect_css
7
+ manifest = 'app/assets/stylesheets/application'
8
+
9
+ return [manifest + '.css', ' *='] if File.exist?(manifest + '.css')
10
+ return [manifest + '.css.sass', ' //='] if File.exist?(manifest + '.css.sass')
11
+ return [manifest + '.sass', ' //='] if File.exist?(manifest + '.sass')
12
+ return [manifest + '.css.scss', ' //='] if File.exist?(manifest + '.css.scss')
13
+ return [manifest + '.scss', ' //='] if File.exist?(manifest + '.scss')
14
+ end
15
+
16
+ def detect_js
17
+ manifest = 'app/assets/javascripts/application'
18
+
19
+ return [manifest + '.coffee', '//='] if File.exist?(manifest + '.coffee')
20
+ return [manifest + '.js.coffee', '//='] if File.exist?(manifest + '.js.coffee')
21
+ return [manifest + '.js', '//='] if File.exist?(manifest + '.js')
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,21 @@
1
+ require 'rails/generators/migration'
2
+
3
+ module SeemsRateable
4
+ module Generators
5
+ module MigrationHelpers
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ include ::Rails::Generators::Migration
10
+
11
+ def self.next_migration_number(dirname)
12
+ if ActiveRecord::Base.timestamped_migrations
13
+ Time.now.utc.strftime("%Y%m%d%H%M%S%6N")
14
+ else
15
+ "%.3d" % (current_migration_number(dirname) + 1)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,9 @@
1
+ class DropSeemsRateableRatesTable < ActiveRecord::Migration
2
+ def self.up
3
+ drop_table :seems_rateable_rates
4
+ end
5
+
6
+ def self.down
7
+ raise ActiveRecord::IrreversibleMigration
8
+ end
9
+ end
@@ -0,0 +1,50 @@
1
+ require 'generators/seems_rateable/migration_helpers'
2
+ require 'generators/seems_rateable/manifest_finder'
3
+
4
+ module SeemsRateable
5
+ module Generators
6
+ class UninstallGenerator < ::Rails::Generators::Base
7
+ include SeemsRateable::Generators::MigrationHelpers
8
+ include SeemsRateable::Generators::ManifestFinder
9
+
10
+ source_root File.expand_path('../templates', __FILE__)
11
+
12
+ def comment_route
13
+ comment_lines 'config/routes.rb', /seems_rateable/
14
+ end
15
+
16
+ def remove_initializer
17
+ remove_file 'config/initializers/seems_rateable.rb'
18
+ end
19
+
20
+ def remove_javascripts
21
+ remove_dir 'app/assets/javascripts/rateable/'
22
+ end
23
+
24
+ def drop_table
25
+ migration_template 'drop_seems_rateable_rates_table.rb', 'db/migrate/drop_seems_rateable_rates_table.rb'
26
+
27
+ rake 'db:migrate' if yes?('Run rake db:migrate?')
28
+
29
+ Dir.glob('db/migrate/*').keep_if { |f| f.include?('seems') }.each do |file|
30
+ remove_file(file)
31
+ end if yes?('Remove also remaining seems_rateable migration files?')
32
+ end
33
+
34
+ def remove_require_from_stylesheet
35
+ gsub_file detect_css[0], /require seems_rateable/, ''
36
+ end
37
+
38
+ def remove_require_from_javascript
39
+ gsub_file detect_js[0], /require seems_rateable/, ''
40
+ gsub_file detect_js[0], /require_directory .\/rateable/, ''
41
+ end
42
+
43
+ def comment_seems_rateable_in_models
44
+ Dir.glob('app/models/*').keep_if { |f| File.extname(f) == '.rb' }.each do |model|
45
+ comment_lines model, /seems_rateable/ if File.binread(model).include? 'seems_rateable'
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,9 @@
1
+ class DropSeemsRateableCachedRatingsTable < ActiveRecord::Migration
2
+ def self.up
3
+ drop_table :seems_rateable_cached_ratings
4
+ end
5
+
6
+ def self.down
7
+ raise ActiveRecord::IrreversibleMigration
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class DropSeemsRateableRatesTable < ActiveRecord::Migration
2
+ def self.up
3
+ drop_table :seems_rateable_rates
4
+ end
5
+
6
+ def self.down
7
+ raise ActiveRecord::IrreversibleMigration
8
+ end
9
+ end
@@ -0,0 +1,48 @@
1
+ require 'generators/seems_rateable/migration_helpers'
2
+
3
+ module SeemsRateable
4
+ module Generators
5
+ class UninstallOld < ::Rails::Generators::Base
6
+ include SeemsRateable::Generators::MigrationHelpers
7
+
8
+ source_root File.expand_path('../templates', __FILE__)
9
+
10
+ def drop_tables
11
+ (ActiveRecord::Migration.tables & %w[seems_rateable_rates seems_rateable_cached_ratings]).each do |table|
12
+ migration_template "drop_#{table}_table.rb", "db/migrate/drop_#{table}_table"
13
+ end
14
+
15
+ rake 'db:migrate' if yes?('Run rake db:migrate? To drop seems_rateable tables')
16
+
17
+ Dir.glob('db/migrate/*').keep_if { |f| f.include?('seems_rateable') }.each do |file|
18
+ remove_file(file)
19
+ end if yes?('Remove also remaining seems_rateable migration files?')
20
+ end
21
+
22
+ def remove_initializer
23
+ remove_file 'config/initializers/seems_rateable.rb'
24
+ end
25
+
26
+ def remove_javascripts
27
+ remove_dir 'app/assets/javascripts/rateable/'
28
+ end
29
+
30
+ def remove_stylesheet_include_in_template
31
+ %w[erb haml slim].each do |extension|
32
+
33
+ file = 'app/views/layouts/application.html.' + extension
34
+
35
+ if File.exists?(file)
36
+ gsub_file file, /seems_rateable_stylesheet/, ''
37
+ end
38
+ end
39
+ end
40
+
41
+ def comment_seems_rateable_in_models
42
+ Dir.glob('app/models/*').keep_if { |f| File.extname(f) == '.rb' }.each do |model|
43
+ comment_lines model, /seems_rateable/
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -3,14 +3,29 @@ begin
3
3
  rescue LoadError
4
4
  end
5
5
 
6
- require "jquery-rails"
6
+ require 'seems_rateable/engine'
7
+ require 'seems_rateable/configuration'
7
8
 
8
- require "seems_rateable/engine"
9
- require "seems_rateable/errors"
10
- require "seems_rateable/helpers"
11
- require "seems_rateable/model"
12
- require "seems_rateable/routes"
13
- require "seems_rateable/version"
9
+ require 'jquery-rails'
14
10
 
15
11
  module SeemsRateable
12
+ autoload :Errors, 'seems_rateable/errors'
13
+ autoload :Builder, 'seems_rateable/builder'
14
+ autoload :Routes, 'seems_rateable/routes'
15
+ autoload :Rating, 'seems_rateable/rating'
16
+
17
+ module Helpers
18
+ autoload :ActionViewExtension, 'seems_rateable/helpers/action_view_extension'
19
+ autoload :HtmlOptions, 'seems_rateable/helpers/html_options'
20
+ autoload :CurrentRater, 'seems_rateable/helpers/current_rater'
21
+ end
22
+
23
+ module Models
24
+ autoload :ActiveRecordExtension, 'seems_rateable/models/active_record_extension'
25
+
26
+ module ActiveRecordExtension
27
+ autoload :Rateable, 'seems_rateable/models/active_record_extension/rateable'
28
+ autoload :Rater, 'seems_rateable/models/active_record_extension/rater'
29
+ end
30
+ end
16
31
  end