redactor-rails4 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/Gemfile +25 -0
  4. data/MIT-LICENSE +22 -0
  5. data/README.md +234 -0
  6. data/Rakefile +3 -0
  7. data/app/controller/redactor_rails/documents_controller.rb +34 -0
  8. data/app/controller/redactor_rails/pictures_controller.rb +34 -0
  9. data/config/routes.rb +4 -0
  10. data/lib/generators/redactor/config_generator.rb +18 -0
  11. data/lib/generators/redactor/install_generator.rb +75 -0
  12. data/lib/generators/redactor/templates/active_record/carrierwave/devise_migration.rb +30 -0
  13. data/lib/generators/redactor/templates/active_record/carrierwave/migration.rb +28 -0
  14. data/lib/generators/redactor/templates/active_record/carrierwave/redactor/asset.rb +5 -0
  15. data/lib/generators/redactor/templates/active_record/carrierwave/redactor/document.rb +11 -0
  16. data/lib/generators/redactor/templates/active_record/carrierwave/redactor/picture.rb +7 -0
  17. data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_document_uploader.rb +15 -0
  18. data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb +53 -0
  19. data/lib/generators/redactor/templates/config.js +22 -0
  20. data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/asset.rb +9 -0
  21. data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/document.rb +14 -0
  22. data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/picture.rb +7 -0
  23. data/lib/redactor-rails.rb +41 -0
  24. data/lib/redactor-rails/backend/carrierwave.rb +64 -0
  25. data/lib/redactor-rails/devise.rb +11 -0
  26. data/lib/redactor-rails/engine.rb +14 -0
  27. data/lib/redactor-rails/helper.rb +5 -0
  28. data/lib/redactor-rails/http.rb +89 -0
  29. data/lib/redactor-rails/orm/active_record.rb +31 -0
  30. data/lib/redactor-rails/orm/base.rb +38 -0
  31. data/lib/redactor-rails/orm/mongoid.rb +37 -0
  32. data/lib/redactor-rails/version.rb +3 -0
  33. data/redactor-rails.gemspec +21 -0
  34. data/vendor/assets/javascripts/redactor-rails/config.js +16 -0
  35. data/vendor/assets/javascripts/redactor-rails/css/docstyle.css +139 -0
  36. data/vendor/assets/javascripts/redactor-rails/css/style.css +26 -0
  37. data/vendor/assets/javascripts/redactor-rails/css/wym.css +151 -0
  38. data/vendor/assets/javascripts/redactor-rails/index.js +2 -0
  39. data/vendor/assets/javascripts/redactor-rails/langs/ar.js +73 -0
  40. data/vendor/assets/javascripts/redactor-rails/langs/az.js +72 -0
  41. data/vendor/assets/javascripts/redactor-rails/langs/ba.js +76 -0
  42. data/vendor/assets/javascripts/redactor-rails/langs/bg.js +74 -0
  43. data/vendor/assets/javascripts/redactor-rails/langs/by.js +72 -0
  44. data/vendor/assets/javascripts/redactor-rails/langs/ca.js +72 -0
  45. data/vendor/assets/javascripts/redactor-rails/langs/cs.js +84 -0
  46. data/vendor/assets/javascripts/redactor-rails/langs/da.js +73 -0
  47. data/vendor/assets/javascripts/redactor-rails/langs/de.js +77 -0
  48. data/vendor/assets/javascripts/redactor-rails/langs/el.js +72 -0
  49. data/vendor/assets/javascripts/redactor-rails/langs/en.js +72 -0
  50. data/vendor/assets/javascripts/redactor-rails/langs/eo.js +73 -0
  51. data/vendor/assets/javascripts/redactor-rails/langs/es.js +73 -0
  52. data/vendor/assets/javascripts/redactor-rails/langs/es_ar.js +73 -0
  53. data/vendor/assets/javascripts/redactor-rails/langs/fa.js +73 -0
  54. data/vendor/assets/javascripts/redactor-rails/langs/fi.js +72 -0
  55. data/vendor/assets/javascripts/redactor-rails/langs/fr.js +72 -0
  56. data/vendor/assets/javascripts/redactor-rails/langs/he.js +72 -0
  57. data/vendor/assets/javascripts/redactor-rails/langs/hr.js +71 -0
  58. data/vendor/assets/javascripts/redactor-rails/langs/hu.js +74 -0
  59. data/vendor/assets/javascripts/redactor-rails/langs/id.js +73 -0
  60. data/vendor/assets/javascripts/redactor-rails/langs/it.js +75 -0
  61. data/vendor/assets/javascripts/redactor-rails/langs/ja.js +73 -0
  62. data/vendor/assets/javascripts/redactor-rails/langs/ko.js +73 -0
  63. data/vendor/assets/javascripts/redactor-rails/langs/lt.js +72 -0
  64. data/vendor/assets/javascripts/redactor-rails/langs/lv.js +72 -0
  65. data/vendor/assets/javascripts/redactor-rails/langs/mk.js +72 -0
  66. data/vendor/assets/javascripts/redactor-rails/langs/nl.js +76 -0
  67. data/vendor/assets/javascripts/redactor-rails/langs/no_NB.js +72 -0
  68. data/vendor/assets/javascripts/redactor-rails/langs/pl.js +73 -0
  69. data/vendor/assets/javascripts/redactor-rails/langs/pt_br.js +79 -0
  70. data/vendor/assets/javascripts/redactor-rails/langs/pt_pt.js +72 -0
  71. data/vendor/assets/javascripts/redactor-rails/langs/ro.js +73 -0
  72. data/vendor/assets/javascripts/redactor-rails/langs/ru.js +73 -0
  73. data/vendor/assets/javascripts/redactor-rails/langs/sk.js +73 -0
  74. data/vendor/assets/javascripts/redactor-rails/langs/sl.js +76 -0
  75. data/vendor/assets/javascripts/redactor-rails/langs/sq.js +76 -0
  76. data/vendor/assets/javascripts/redactor-rails/langs/sr-cir.js +76 -0
  77. data/vendor/assets/javascripts/redactor-rails/langs/sr-lat.js +76 -0
  78. data/vendor/assets/javascripts/redactor-rails/langs/sv.js +73 -0
  79. data/vendor/assets/javascripts/redactor-rails/langs/th.js +72 -0
  80. data/vendor/assets/javascripts/redactor-rails/langs/tr.js +73 -0
  81. data/vendor/assets/javascripts/redactor-rails/langs/ua.js +74 -0
  82. data/vendor/assets/javascripts/redactor-rails/langs/vi.js +72 -0
  83. data/vendor/assets/javascripts/redactor-rails/langs/zh_cn.js +74 -0
  84. data/vendor/assets/javascripts/redactor-rails/langs/zh_tw.js +73 -0
  85. data/vendor/assets/javascripts/redactor-rails/plugins.js +6 -0
  86. data/vendor/assets/javascripts/redactor-rails/plugins/clips.js +61 -0
  87. data/vendor/assets/javascripts/redactor-rails/plugins/fontcolor.js +76 -0
  88. data/vendor/assets/javascripts/redactor-rails/plugins/fontfamily.js +35 -0
  89. data/vendor/assets/javascripts/redactor-rails/plugins/fontsize.js +34 -0
  90. data/vendor/assets/javascripts/redactor-rails/plugins/fullscreen.js +123 -0
  91. data/vendor/assets/javascripts/redactor-rails/plugins/textdirection.js +31 -0
  92. data/vendor/assets/javascripts/redactor-rails/redactor.js +8053 -0
  93. data/vendor/assets/javascripts/redactor-rails/redactor.min.js +12 -0
  94. data/vendor/assets/stylesheets/redactor-rails/css/redactor-iframe.css +202 -0
  95. data/vendor/assets/stylesheets/redactor-rails/css/redactor.css +930 -0
  96. data/vendor/assets/stylesheets/redactor-rails/css/style.css +26 -0
  97. data/vendor/assets/stylesheets/redactor-rails/index.css +1 -0
  98. data/vendor/assets/stylesheets/redactor-rails/plugins.css +3 -0
  99. data/vendor/assets/stylesheets/redactor-rails/plugins/clips.css +6 -0
  100. metadata +184 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 307835cd6c52b5e3f58a6482e9f18d4b61443717
4
+ data.tar.gz: dd6c65859b9e4273355d69e67a38bcd0fec70bef
5
+ SHA512:
6
+ metadata.gz: 2eec121a62369052351d883ffb7b9306372839c1ed67fe009c62df786e926160e0fd87444005d25014253fe351c2e08c96c0749eb0b09ca69c66a3dcb6e0c3f3
7
+ data.tar.gz: 3b56bfbf6f8e8eff11bb45719d21e48f60568d4a807966ca2f8a48d82044b9a315586972d9fe5871f36f04b1dbeac1dcef941f6181cda6873c460446d1ccf0c7
data/.gitignore ADDED
@@ -0,0 +1,19 @@
1
+ /.idea/*
2
+ *.gem
3
+ *.rbc
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
19
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,25 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in redactor-rails.gemspec
4
+ gemspec
5
+ gem "rails", "3.2.3"
6
+
7
+
8
+ platforms :ruby do
9
+ gem "sqlite3"
10
+
11
+ group :development do
12
+ gem "unicorn", "~> 4.0.1"
13
+ end
14
+
15
+ group :development, :test do
16
+ gem "capybara", ">= 0.4.0"
17
+ gem "mynyml-redgreen", "~> 0.7.1", :require => 'redgreen'
18
+ end
19
+
20
+ group :active_record do
21
+ gem "carrierwave"
22
+ gem "mini_magick"
23
+ end
24
+
25
+ end
data/MIT-LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Sammy
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,234 @@
1
+
2
+ # Rails 3.2 Integration for Redactor (Devise Edition)
3
+
4
+ The redactor-rails gem integrates the [Redactor](http://redactorjs.com/) editor with the Rails 3.2 asset pipeline.
5
+
6
+ This gem bundles Redactor version 10.0.4 which is the most recent version as of January 9, 2015. Check [Redactor's changelog](http://imperavi.com/redactor/log/) for further updates.
7
+
8
+ ## Installation
9
+
10
+ Add this line to your application's Gemfile:
11
+
12
+ gem 'redactor-rails'
13
+
14
+ And then execute:
15
+
16
+ $ bundle install
17
+
18
+ Or install it yourself as:
19
+
20
+ $ gem install redactor-rails
21
+
22
+ ### Now generate models for store uploading files
23
+
24
+ #### ActiveRecord + carrierwave
25
+
26
+ gem "carrierwave"
27
+ gem "mini_magick"
28
+
29
+ $ rails generate redactor:install
30
+
31
+ or
32
+
33
+ $ rails generate redactor:install --devise
34
+
35
+ # --devise option generate user_id attribute for asset(Picture, Document) models. For more details show Devise gem.
36
+ # Now, Pictures and Documents uploading available only for signed in users
37
+ # All uploaded files will stored with current user_id
38
+ # User will choose only own uploaded Pictures and Documents
39
+
40
+ $ rake db:migrate
41
+
42
+ #### Mongoid + carrierwave
43
+ gem "carrierwave"
44
+ gem "carrierwave-mongoid", :require => "carrierwave/mongoid"
45
+ gem "mini_magick"
46
+
47
+ $ rails generate redactor:install
48
+
49
+ ### Include the Redactor assets
50
+
51
+ Add to your `application.js`:
52
+
53
+ //= require redactor-rails
54
+
55
+ Add to your `application.css`:
56
+
57
+ *= require redactor-rails
58
+
59
+ ### Initialize Redactor
60
+
61
+ For each textarea that you want to use with Redactor, add the "redactor" class and ensure it has a unique ID:
62
+
63
+ <%= text_area_tag :editor, "", :class => "redactor", :rows => 40, :cols => 120 %>
64
+
65
+ ### Custom Your redactor
66
+
67
+ If you need change some config in redactor, you can
68
+
69
+ $ rails generate redactor:config
70
+
71
+ Then generate `app\assets\redactor-rails\config.js`.
72
+
73
+ See the [Redactor Documentation](http://imperavi.com/redactor/docs/settings/) for a full list of configuration options.
74
+
75
+
76
+ If You Want To setup a new language in Redactor you should do two things:
77
+
78
+ In you file `app\assets\redactor-rails\config.js` set option
79
+
80
+ "lang":'zh_tw'
81
+
82
+ and
83
+
84
+ if redactor-rails gem version <= 0.3.7
85
+
86
+ Add to your layout
87
+
88
+
89
+ <%= redactor_lang('zh_tw') %>
90
+
91
+ elsif redactor-rails gem version >= 0.4
92
+
93
+ Add to your `application.js`:
94
+
95
+ //= require redactor-rails/langs/zh_tw
96
+
97
+ #### Setting a max image size with carrierwave
98
+
99
+ If you want to set a maximum image size used when a user uploads an image via carrierwave, open the uploader file and add add the following:
100
+
101
+ # app/uploaders/redactor_rails_picture_uploader.rb:33
102
+
103
+ process :resize_to_limit => [500, -1]
104
+
105
+ The above example will set the image to have a maximum width of 500px.
106
+
107
+ ### Using plugins
108
+
109
+ This gem comes bundled with several Redactor plugins:
110
+
111
+ - Fullscreen
112
+ - Clips
113
+ - FontColor
114
+ - FontSize
115
+ - FontFamily
116
+ - Text direction
117
+
118
+ Full details of these can be found at [Redactor Plugins](http://imperavi.com/redactor/plugins/)
119
+
120
+ To include all the plugins just add to your `application.js`:
121
+
122
+ //= require redactor-rails/plugins
123
+
124
+ and add to your `application.css`:
125
+
126
+ *= redactor-rails/plugins
127
+
128
+ If you would prefer to pick and choose which plugins to include you can
129
+ add for example:
130
+
131
+ //= require redactor-rails/plugins/fontsize
132
+ //= require redactor-rails/plugins/fontfamily
133
+
134
+ After including the desired plugins they can be configured in the redactor config file as normal.
135
+
136
+ To add it into the editor just add 'plugins' attributes to config.js file and specify which ones do you want to use:
137
+
138
+ $('.redactor').redactor(
139
+ { "plugins": ['fontsize',
140
+ 'fontcolor',
141
+ 'fontfamily',
142
+ 'fullscreen',
143
+ 'textdirection',
144
+ 'clips']
145
+ });
146
+
147
+ ### Defining a Devise User Model
148
+
149
+ By default redactor-rails uses the `User` model.
150
+
151
+ You may use a different model by:
152
+
153
+ 1. Run a migration to update the user_id column in the
154
+ 2. Overriding the user class in an initializer.
155
+ 3. Overriding the authentication helpers in your controller.
156
+
157
+ Create a new Migration: `rails g rename_user_id_to_new_user_id`
158
+
159
+ ```
160
+ # db/migrate/...rename_user_id_to_new_user_id.rb
161
+
162
+ class RenameUserIdToNewUserId < ActiveRecord::Migration
163
+ def up
164
+ rename_column :redactor_assets, :user_id, :admin_user_id
165
+ end
166
+
167
+ def down
168
+ rename_column :redactor_assets, :admin_user_id, :user_id
169
+ end
170
+ end
171
+ ```
172
+
173
+ ```
174
+ # config/initializers/redactor.rb
175
+ # Overrides the user class
176
+
177
+ module RedactorRails
178
+ def self.devise_user
179
+ %s(admin_user) # name of your user class
180
+ end
181
+
182
+ # You may override this to support legacy schema.
183
+ # def self.devise_user_key
184
+ # "#{self.devise_user.to_s}_id".to_sym
185
+ # end
186
+ end
187
+ ```
188
+
189
+ ```
190
+ # app/controllers/application_controller.rb
191
+
192
+ class ApplicationController < ActionController::Base
193
+ ...
194
+
195
+ def redactor_authenticate_user!
196
+ authenticate_admin_user! # devise before_filter
197
+ end
198
+
199
+ def redactor_current_user
200
+ current_admin_user # devise user helper
201
+ end
202
+ end
203
+ ```
204
+
205
+ ## Contributing
206
+
207
+ 1. Fork it
208
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
209
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
210
+ 4. Push to the branch (`git push origin my-new-feature`)
211
+ 5. Create new Pull Request
212
+
213
+ ## Contributors
214
+
215
+ [Sebastian Wilgosz](https://github.com/wilgoszpl)
216
+
217
+ ## Special Thanks
218
+
219
+ [wildjcrt (Jerry Lee)](https://github.com/wildjcrt/)
220
+
221
+ ## Statement
222
+
223
+ `redactor-rails` part of reference [galetahub/ckeditor](https://github.com/galetahub/ckeditor) project.
224
+
225
+ `redactor-rails` uses MIT-LICENSE. Rock!!!!!
226
+
227
+ ## License
228
+
229
+ the `redactor-rails` project is MIT-LICENSE.
230
+
231
+ You may use `Redactor` for non-commercial websites for free, however, we do not guarantee any technical support.
232
+
233
+ Redactor has [3 different licenses](http://imperavi.com/redactor/download/) for commercial use.
234
+ For details please see [License Agreement](http://imperavi.com/redactor/license/).
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler"
3
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,34 @@
1
+ class RedactorRails::DocumentsController < ApplicationController
2
+ before_filter :redactor_authenticate_user!
3
+
4
+ def index
5
+ @documents = RedactorRails.document_model.where(
6
+ RedactorRails.document_model.new.respond_to?(RedactorRails.devise_user) ? { RedactorRails.devise_user_key => redactor_current_user.id } : { })
7
+ render :json => @documents.to_json
8
+ end
9
+
10
+ def create
11
+ @document = RedactorRails.document_model.new
12
+
13
+ file = params[:file]
14
+ @document.data = RedactorRails::Http.normalize_param(file, request)
15
+ if @document.has_attribute?(:"#{RedactorRails.devise_user_key}")
16
+ @document.send("#{RedactorRails.devise_user}=", redactor_current_user)
17
+ @document.assetable = redactor_current_user
18
+ end
19
+
20
+ if @document.save
21
+ render :text => { :filelink => @document.url, :filename => @document.filename }.to_json
22
+ else
23
+ render json: { error: @document.errors }
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def redactor_authenticate_user!
30
+ if RedactorRails.document_model.new.has_attribute?(RedactorRails.devise_user)
31
+ super
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,34 @@
1
+ class RedactorRails::PicturesController < ApplicationController
2
+ before_filter :redactor_authenticate_user!
3
+
4
+ def index
5
+ @pictures = RedactorRails.picture_model.where(
6
+ RedactorRails.picture_model.new.respond_to?(RedactorRails.devise_user) ? { RedactorRails.devise_user_key => redactor_current_user.id } : { })
7
+ render :json => @pictures.to_json
8
+ end
9
+
10
+ def create
11
+ @picture = RedactorRails.picture_model.new
12
+
13
+ file = params[:file]
14
+ @picture.data = RedactorRails::Http.normalize_param(file, request)
15
+ if @picture.has_attribute?(:"#{RedactorRails.devise_user_key}")
16
+ @picture.send("#{RedactorRails.devise_user}=", redactor_current_user)
17
+ @picture.assetable = redactor_current_user
18
+ end
19
+
20
+ if @picture.save
21
+ render :text => { :filelink => @picture.url }.to_json
22
+ else
23
+ render json: { error: @picture.errors }
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def redactor_authenticate_user!
30
+ if RedactorRails.picture_model.new.has_attribute?(RedactorRails.devise_user)
31
+ super
32
+ end
33
+ end
34
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,4 @@
1
+ RedactorRails::Engine.routes.draw do
2
+ resources :pictures, :only => [:index, :create]
3
+ resources :documents, :only => [:index, :create]
4
+ end
@@ -0,0 +1,18 @@
1
+ require 'rails/generators'
2
+
3
+ module Redactor
4
+ module Generators
5
+ class ConfigGenerator < ::Rails::Generators::Base
6
+ desc "Generates redactor-rails config"
7
+
8
+ def self.source_root
9
+ @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
10
+ end
11
+
12
+
13
+ def create_config
14
+ template "config.js", File.join('app/assets/javascripts/redactor-rails', "config.js")
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,75 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+ module Redactor
4
+ module Generators
5
+ class InstallGenerator < ::Rails::Generators::Base
6
+ include ::Rails::Generators::Migration
7
+ desc "Generates migration for Tag and Tagging models"
8
+
9
+ class_option :orm, :type => :string, :default => "active_record",
10
+ :desc => "Backend processor for upload support"
11
+
12
+ class_option :backend, :type => :string, :default => 'carrierwave',
13
+ :desc => "carrierwave(default)"
14
+
15
+ def self.source_root
16
+ @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
17
+ end
18
+
19
+ def self.next_migration_number(dirname)
20
+ Time.now.strftime("%Y%m%d%H%M%S")
21
+ end
22
+
23
+ def mount_engine
24
+ route "mount RedactorRails::Engine => '/redactor_rails'"
25
+ end
26
+
27
+ def create_models
28
+ [:asset, :picture, :document].each do |filename|
29
+ template "#{generator_dir}/redactor/#{filename}.rb",
30
+ File.join('app/models', redactor_dir, "#{filename}.rb")
31
+ end
32
+
33
+ if backend == "carrierwave"
34
+ [:picture, :document].each do |filename|
35
+ template "#{uploaders_dir}/uploaders/redactor_rails_#{filename}_uploader.rb",
36
+ File.join("app/uploaders", "redactor_rails_#{filename}_uploader.rb")
37
+ end
38
+ end
39
+ end
40
+
41
+ def create_redactor_migration
42
+ if orm.to_s == "active_record"
43
+ if ARGV.include?('--devise')
44
+ migration_template "#{generator_dir}/devise_migration.rb", File.join('db/migrate', "create_redactor_assets.rb")
45
+ else
46
+ migration_template "#{generator_dir}/migration.rb", File.join('db/migrate', "create_redactor_assets.rb")
47
+ end
48
+ end
49
+ end
50
+
51
+ protected
52
+
53
+ def redactor_dir
54
+ 'redactor_rails'
55
+ end
56
+
57
+ def generator_dir
58
+ @generator_dir ||= [orm, backend].join('/')
59
+ end
60
+
61
+ def uploaders_dir
62
+ @uploaders_dir ||= ['base', 'carrierwave'].join('/')
63
+ end
64
+
65
+ def orm
66
+ options[:orm] || "active_record"
67
+ end
68
+
69
+ def backend
70
+ options[:backend] || "carrierwave"
71
+ end
72
+
73
+ end
74
+ end
75
+ end