diff --git a/README.md b/README.md index 9a2f995a..e3478338 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Rails 3.2 Integration for Redactor (Devise Edition) +# Rails 3.2 Integration for Redactor (NO Devise Edition) The redactor-rails gem integrates the [Redactor](http://redactorjs.com/) editor with the Rails 3.2 asset pipeline. @@ -27,20 +27,11 @@ Or install it yourself as: $ rails generate redactor:install - or - - $ rails generate redactor:install --devise - - # --devise option generate user_id attribute for asset(Picture, Document) models. For more details show Devise gem. - # Now, Pictures and Documents uploading available only for signed in users - # All uploaded files will stored with current user_id - # User will choose only own uploaded Pictures and Documents - $ rake db:migrate #### Mongoid + carrierwave gem "carrierwave" - gem "carrierwave-mongoid", :require => "carrierwave/mongoid" + gem "carrierwave-mongoid", require: "carrierwave/mongoid" gem "mini_magick" $ rails generate redactor:install @@ -59,7 +50,7 @@ Add to your `application.css`: For each textarea that you want to use with Redactor, add the "redactor" class and ensure it has a unique ID: - <%= text_area_tag :editor, "", :class => "redactor", :rows => 40, :cols => 120 %> + <%= text_area_tag :editor, "", class: "redactor", rows: 40, cols: 120 %> ### Custom Your redactor @@ -83,64 +74,6 @@ and Add to your layout <%= redactor_lang('zh_tw') %> - -### Defining a Devise User Model - -By default redactor-rails uses the `User` model. - -You may use a different model by: - -1. Run a migration to update the user_id column in the -2. Overriding the user class in an initializer. -3. Overriding the authentication helpers in your controller. - - Create a new Migration: `rails g rename_user_id_to_new_user_id` - - ``` - # db/migrate/...rename_user_id_to_new_user_id.rb - - class RenameUserIdToNewUserId < ActiveRecord::Migration - def up - rename_column :redactor_assets, :user_id, :admin_user_id - end - - def down - rename_column :redactor_assets, :admin_user_id, :user_id - end - end - ``` - - ``` - # config/redactor.rb - # Overrides the user class - - module RedactorRails - def self.devise_user - %s(admin_user) # name of your user class - end - - # You may override this to support legacy schema. - # def self.devise_user_key - # "#{self.devise_user.to_s}_id".to_sym - # end - end - ``` - - ``` - # app/controllers/application_controller.rb - - class ApplicationController < ActionController::Base - ... - - def redactor_authenticate_user! - authenticate_admin_user! # devise before_filter - end - - def redactor_current_user - current_admin_user # devise user helper - end - end - ``` ## Contributing diff --git a/app/controller/redactor_rails/base_controller.rb b/app/controller/redactor_rails/base_controller.rb index b3c3068e..9096de2d 100644 --- a/app/controller/redactor_rails/base_controller.rb +++ b/app/controller/redactor_rails/base_controller.rb @@ -1,28 +1,20 @@ class RedactorRails::BaseController < ApplicationController def index - redactor_authentification! - @redactors = controller_model.where( - controller_model.new.respond_to?(RedactorRails.devise_user) ? { RedactorRails.devise_user_key => redactor_current_user.id } : { } - ) - render :json => @redactors.to_json + @redactors = controller_model.order :id + render json: @redactors.to_json end def create - redactor_authentification! @redactor = controller_model.new file = params[:file] @redactor.data = RedactorRails::Http.normalize_param(file, request) - if @redactor.respond_to?(RedactorRails.devise_user) - @redactor.send("#{RedactorRails.devise_user}=", redactor_current_user) - @redactor.assetable = redactor_current_user - end if @redactor.save - render :text => { :filelink => @redactor.url }.to_json + render text: { filelink: @redactor.url }.to_json else - render :nothing => true + render nothing: true end end @@ -32,7 +24,4 @@ def controller_model self.class.to_s.sub('Controller', '').singularize.constantize end - def redactor_authentification! - redactor_authenticate_user! if controller_model.new.respond_to?(RedactorRails.devise_user) - end end diff --git a/config/routes.rb b/config/routes.rb index 98e918c5..800f76b7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,4 @@ RedactorRails::Engine.routes.draw do - resources :pictures, :only => [:index, :create] - resources :documents, :only => [:index, :create] + resources :pictures, only: [:index, :create] + resources :documents, only: [:index, :create] end diff --git a/lib/generators/redactor/config_generator.rb b/lib/generators/redactor/config_generator.rb index ae28207d..03844948 100644 --- a/lib/generators/redactor/config_generator.rb +++ b/lib/generators/redactor/config_generator.rb @@ -5,13 +5,12 @@ class ConfigGenerator < ::Rails::Generators::Base desc "Generates redactor-rails config" def self.source_root - @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates')) + @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates')) end def create_config - template "config.js", - File.join('app/assets/javascripts/redactor-rails', "config.js") + template "config.js", File.join('app/assets/javascripts/redactor-rails', "config.js") end end end diff --git a/lib/generators/redactor/install_generator.rb b/lib/generators/redactor/install_generator.rb index 0d8e2205..c57a68e0 100644 --- a/lib/generators/redactor/install_generator.rb +++ b/lib/generators/redactor/install_generator.rb @@ -6,68 +6,60 @@ class InstallGenerator < ::Rails::Generators::Base include ::Rails::Generators::Migration desc "Generates migration for Tag and Tagging models" - class_option :orm, :type => :string, :default => "active_record", - :desc => "Backend processor for upload support" + class_option :orm, type: :string, default: "active_record", desc: "Backend processor for upload support" - class_option :backend, :type => :string, :default => 'carrierwave', - :desc => "carrierwave(default)" + class_option :backend, type: :string, default: 'carrierwave', desc: "carrierwave(default)" def self.source_root - @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates')) + @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates')) end def self.next_migration_number(dirname) - Time.now.strftime("%Y%m%d%H%M%S") + Time.now.strftime("%Y%m%d%H%M%S") end def mount_engine - route "mount RedactorRails::Engine => '/redactor_rails'" + sroute "mount RedactorRails::Engine => '/redactor_rails'" end def create_models - [:asset, :picture, :document].each do |filename| - template "#{generator_dir}/redactor/#{filename}.rb", - File.join('app/models', redactor_dir, "#{filename}.rb") - end + [:asset, :picture, :document].each do |filename| + template "#{generator_dir}/redactor/#{filename}.rb", File.join('app/models', redactor_dir, "#{filename}.rb") + end - if backend == "carrierwave" - [:picture, :document].each do |filename| - template "#{uploaders_dir}/uploaders/redactor_rails_#{filename}_uploader.rb", - File.join("app/uploaders", "redactor_rails_#{filename}_uploader.rb") - end - end + if backend == "carrierwave" + [:picture, :document].each do |filename| + template "#{uploaders_dir}/uploaders/redactor_rails_#{filename}_uploader.rb", File.join("app/uploaders", "redactor_rails_#{filename}_uploader.rb") + end + end end def create_migration if orm.to_s == "active_record" - if ARGV.include?('--devise') - migration_template "#{generator_dir}/devise_migration.rb", File.join('db/migrate', "create_redactor_assets.rb") - else - migration_template "#{generator_dir}/migration.rb", File.join('db/migrate', "create_redactor_assets.rb") - end + migration_template "#{generator_dir}/migration.rb", File.join('db/migrate', "create_redactor_assets.rb") end end protected def redactor_dir - 'redactor_rails' + 'redactor_rails' end def generator_dir - @generator_dir ||= [orm, backend].join('/') + @generator_dir ||= [orm, backend].join('/') end def uploaders_dir - @uploaders_dir ||= ['base', 'carrierwave'].join('/') + @uploaders_dir ||= ['base', 'carrierwave'].join('/') end def orm - options[:orm] || "active_record" + options[:orm] || "active_record" end def backend - options[:backend] || "carrierwave" + options[:backend] || "carrierwave" end end diff --git a/lib/generators/redactor/templates/active_record/carrierwave/devise_migration.rb b/lib/generators/redactor/templates/active_record/carrierwave/devise_migration.rb deleted file mode 100644 index 3ff73259..00000000 --- a/lib/generators/redactor/templates/active_record/carrierwave/devise_migration.rb +++ /dev/null @@ -1,30 +0,0 @@ -class CreateRedactorAssets < ActiveRecord::Migration - def self.up - create_table :redactor_assets do |t| - t.integer :user_id - t.string :data_file_name, :null => false - t.string :data_content_type - t.integer :data_file_size - - t.integer :assetable_id - t.string :assetable_type, :limit => 30 - t.string :type, :limit => 30 - - # Uncomment it to save images dimensions, if your need it - t.integer :width - t.integer :height - - t.timestamps - end - - # Uncomment it to add foreign key. gem 'foreigner' is required in your .Gemfile - # add_foreign_key(:redactor_assets, :users, dependent: :delete) - add_index "redactor_assets", ["assetable_type", "type", "assetable_id"], :name => "idx_redactor_assetable_type" - add_index "redactor_assets", ["assetable_type", "assetable_id"], :name => "idx_redactor_assetable" - end - - def self.down - drop_table :redactor_assets - end -end - diff --git a/lib/generators/redactor/templates/active_record/carrierwave/migration.rb b/lib/generators/redactor/templates/active_record/carrierwave/migration.rb index 3ff73259..29374f6a 100644 --- a/lib/generators/redactor/templates/active_record/carrierwave/migration.rb +++ b/lib/generators/redactor/templates/active_record/carrierwave/migration.rb @@ -1,14 +1,13 @@ class CreateRedactorAssets < ActiveRecord::Migration - def self.up + def change create_table :redactor_assets do |t| - t.integer :user_id - t.string :data_file_name, :null => false + t.string :data_file_name, null: false t.string :data_content_type t.integer :data_file_size t.integer :assetable_id - t.string :assetable_type, :limit => 30 - t.string :type, :limit => 30 + t.string :assetable_type, limit: 30 + t.string :type, limit: 30 # Uncomment it to save images dimensions, if your need it t.integer :width @@ -19,12 +18,8 @@ def self.up # Uncomment it to add foreign key. gem 'foreigner' is required in your .Gemfile # add_foreign_key(:redactor_assets, :users, dependent: :delete) - add_index "redactor_assets", ["assetable_type", "type", "assetable_id"], :name => "idx_redactor_assetable_type" - add_index "redactor_assets", ["assetable_type", "assetable_id"], :name => "idx_redactor_assetable" - end - - def self.down - drop_table :redactor_assets + add_index "redactor_assets", ["assetable_type", "type", "assetable_id"], name: "idx_redactor_assetable_type" + add_index "redactor_assets", ["assetable_type", "assetable_id"], name: "idx_redactor_assetable" end end diff --git a/lib/generators/redactor/templates/active_record/carrierwave/redactor/asset.rb b/lib/generators/redactor/templates/active_record/carrierwave/redactor/asset.rb index 99a3cf8d..22cb9f2b 100644 --- a/lib/generators/redactor/templates/active_record/carrierwave/redactor/asset.rb +++ b/lib/generators/redactor/templates/active_record/carrierwave/redactor/asset.rb @@ -1,5 +1,5 @@ class RedactorRails::Asset < ActiveRecord::Base include RedactorRails::Orm::ActiveRecord::AssetBase - delegate :url, :current_path, :size, :content_type, :filename, :to => :data + delegate :url, :current_path, :size, :content_type, :filename, to: :data validates_presence_of :data end diff --git a/lib/generators/redactor/templates/active_record/carrierwave/redactor/document.rb b/lib/generators/redactor/templates/active_record/carrierwave/redactor/document.rb index 390a2909..136af529 100644 --- a/lib/generators/redactor/templates/active_record/carrierwave/redactor/document.rb +++ b/lib/generators/redactor/templates/active_record/carrierwave/redactor/document.rb @@ -1,5 +1,5 @@ class RedactorRails::Document < RedactorRails::Asset - mount_uploader :data, RedactorRailsDocumentUploader, :mount_on => :data_file_name + mount_uploader :data, RedactorRailsDocumentUploader, mount_on: :data_file_name def url_content url(:content) diff --git a/lib/generators/redactor/templates/active_record/carrierwave/redactor/picture.rb b/lib/generators/redactor/templates/active_record/carrierwave/redactor/picture.rb index 9a6f812f..f86a353d 100644 --- a/lib/generators/redactor/templates/active_record/carrierwave/redactor/picture.rb +++ b/lib/generators/redactor/templates/active_record/carrierwave/redactor/picture.rb @@ -1,5 +1,5 @@ class RedactorRails::Picture < RedactorRails::Asset - mount_uploader :data, RedactorRailsPictureUploader, :mount_on => :data_file_name + mount_uploader :data, RedactorRailsPictureUploader, mount_on: :data_file_name def url_content url(:content) diff --git a/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb b/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb index 99aadba1..19c3bf9e 100644 --- a/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb +++ b/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb @@ -32,11 +32,11 @@ def store_dir # Create different versions of your uploaded files: version :thumb do - process :resize_to_fill => [118, 100] + process resize_to_fill: [118, 100] end version :content do - process :resize_to_limit => [800, 800] + process resize_to_limit: [800, 800] end # Add a white list of extensions which are allowed to be uploaded. diff --git a/lib/generators/redactor/templates/mongoid/carrierwave/redactor/asset.rb b/lib/generators/redactor/templates/mongoid/carrierwave/redactor/asset.rb index fe059e44..6a67021a 100644 --- a/lib/generators/redactor/templates/mongoid/carrierwave/redactor/asset.rb +++ b/lib/generators/redactor/templates/mongoid/carrierwave/redactor/asset.rb @@ -4,6 +4,6 @@ class RedactorRails::Asset include RedactorRails::Orm::Mongoid::AssetBase - delegate :url, :current_path, :size, :content_type, :filename, :to => :data + delegate :url, :current_path, :size, :content_type, :filename, to: :data validates_presence_of :data end diff --git a/lib/generators/redactor/templates/mongoid/carrierwave/redactor/document.rb b/lib/generators/redactor/templates/mongoid/carrierwave/redactor/document.rb index f286f3a3..7e2cc243 100644 --- a/lib/generators/redactor/templates/mongoid/carrierwave/redactor/document.rb +++ b/lib/generators/redactor/templates/mongoid/carrierwave/redactor/document.rb @@ -1,5 +1,5 @@ class RedactorRails::Document < RedactorRails::Asset - mount_uploader :data, RedactorRailsDocumentUploader, :mount_on => :data_file_name + mount_uploader :data, RedactorRailsDocumentUploader, mount_on: :data_file_name def url_content url(:content) diff --git a/lib/generators/redactor/templates/mongoid/carrierwave/redactor/picture.rb b/lib/generators/redactor/templates/mongoid/carrierwave/redactor/picture.rb index 9a6f812f..f86a353d 100644 --- a/lib/generators/redactor/templates/mongoid/carrierwave/redactor/picture.rb +++ b/lib/generators/redactor/templates/mongoid/carrierwave/redactor/picture.rb @@ -1,5 +1,5 @@ class RedactorRails::Picture < RedactorRails::Asset - mount_uploader :data, RedactorRailsPictureUploader, :mount_on => :data_file_name + mount_uploader :data, RedactorRailsPictureUploader, mount_on: :data_file_name def url_content url(:content) diff --git a/lib/redactor-rails.rb b/lib/redactor-rails.rb index 11c2fa55..592f8120 100644 --- a/lib/redactor-rails.rb +++ b/lib/redactor-rails.rb @@ -7,7 +7,6 @@ module RedactorRails FILE_TYPES = ['application/msword', 'application/pdf', 'text/plain', 'text/rtf', 'application/vnd.ms-excel'] autoload :Http, 'redactor-rails/http' - autoload :Devise, 'redactor-rails/devise' module Backend autoload :CarrierWave, 'redactor-rails/backend/carrierwave' @@ -22,12 +21,4 @@ module Backend @@image_file_types = ["jpg", "jpeg", "png", "gif", "tiff"] @@document_file_types = ["pdf", "doc", "docx", "xls", "xlsx", "rtf", "txt"] - - def self.devise_user - %s(user) - end - - def self.devise_user_key - "#{self.devise_user.to_s}_id".to_sym - end end diff --git a/lib/redactor-rails/devise.rb b/lib/redactor-rails/devise.rb deleted file mode 100644 index 9b896701..00000000 --- a/lib/redactor-rails/devise.rb +++ /dev/null @@ -1,11 +0,0 @@ -module RedactorRails - module Devise - def redactor_authenticate_user! - authenticate_user! - end - - def redactor_current_user - current_user - end - end -end \ No newline at end of file diff --git a/lib/redactor-rails/engine.rb b/lib/redactor-rails/engine.rb index b40c4f35..16a7273e 100644 --- a/lib/redactor-rails/engine.rb +++ b/lib/redactor-rails/engine.rb @@ -6,9 +6,5 @@ class Engine < Rails::Engine include RedactorRails::Helpers end end - - initializer "redactor_devise" do |app| - ActionController::Base.send :include, RedactorRails::Devise - end end end diff --git a/lib/redactor-rails/orm/active_record.rb b/lib/redactor-rails/orm/active_record.rb index 17ec426a..ca674c3e 100644 --- a/lib/redactor-rails/orm/active_record.rb +++ b/lib/redactor-rails/orm/active_record.rb @@ -14,8 +14,7 @@ def self.extended(base) base.class_eval do self.table_name = "redactor_assets" - belongs_to :assetable, :polymorphic => true - belongs_to RedactorRails.devise_user, :dependent => :destroy, :foreign_key => RedactorRails.devise_user_key + belongs_to :assetable, polymorphic: true end end end diff --git a/lib/redactor-rails/orm/base.rb b/lib/redactor-rails/orm/base.rb index f30f2108..f6af51e6 100644 --- a/lib/redactor-rails/orm/base.rb +++ b/lib/redactor-rails/orm/base.rb @@ -25,8 +25,8 @@ def as_json_methods def as_json(options = nil) options = { - :methods => as_json_methods, - :root => false + methods: as_json_methods, + root: false } super options diff --git a/lib/redactor-rails/orm/mongoid.rb b/lib/redactor-rails/orm/mongoid.rb index 9b6041c6..4effedcd 100644 --- a/lib/redactor-rails/orm/mongoid.rb +++ b/lib/redactor-rails/orm/mongoid.rb @@ -12,21 +12,21 @@ def self.included(base) module ClassMethods def self.extended(base) base.class_eval do - store_in :collection => 'redactor_assets' + store_in collection: 'redactor_assets' - belongs_to :assetable, :polymorphic => true + belongs_to :assetable, polymorphic: true - field :data_file_name, :type => String - field :data_content_type, :type => String - field :data_file_size, :type => Integer + field :data_file_name, type: String + field :data_content_type, type: String + field :data_file_size, type: Integer - field :type, :type => String + field :type, type: String - field :width, :type => Integer - field :height, :type => Integer + field :width, type: Integer + field :height, type: Integer - index( :assetable => 1, :type => 1 ) - index( :assetable => 1 ) + index( assetable: 1, type: 1 ) + index( assetable: 1 ) end end diff --git a/lib/redactor-rails/version.rb b/lib/redactor-rails/version.rb index 79d569eb..b5b879fa 100644 --- a/lib/redactor-rails/version.rb +++ b/lib/redactor-rails/version.rb @@ -1,3 +1,3 @@ module RedactorRails - VERSION = "0.3.5" + VERSION = "0.4.0" end diff --git a/redactor-rails.gemspec b/redactor-rails.gemspec index d98db71b..15c717db 100644 --- a/redactor-rails.gemspec +++ b/redactor-rails.gemspec @@ -2,9 +2,9 @@ require File.expand_path('../lib/redactor-rails/version', __FILE__) Gem::Specification.new do |gem| - gem.authors = ["Sammy"] - gem.email = ["sammylintw@gmail.com"] - gem.description = "The redactor-rails gem integrates the Redactor editor" + gem.authors = ["Sammy", "Serge"] + gem.email = ["sammylintw@gmail.com", "sergeg1990@gmail.com"] + gem.description = "The redactor-rails gem integrates the Redactor editor without devise" gem.summary = "" gem.homepage = "https://github.com/SammyLin/redactor-rails" @@ -17,5 +17,4 @@ Gem::Specification.new do |gem| gem.add_dependency("mime-types") gem.add_dependency("orm_adapter") - gem.add_dependency("devise") end