Initial generator for beginning migration from carrierwave to activestorage
This commit is contained in:
parent
54dcc45e4a
commit
c92c172f2d
21 changed files with 711 additions and 0 deletions
8
lib/generators/cw_to_activestorage/USAGE
Normal file
8
lib/generators/cw_to_activestorage/USAGE
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
Description:
|
||||||
|
Explain the generator
|
||||||
|
|
||||||
|
Example:
|
||||||
|
rails generate cw_to_activestorage
|
||||||
|
|
||||||
|
This will create:
|
||||||
|
what/will/it/create
|
|
@ -0,0 +1,39 @@
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
class CwToActivestorageGenerator < Rails::Generators::Base
|
||||||
|
source_root File.expand_path('templates', __dir__)
|
||||||
|
|
||||||
|
def copy_uploaders
|
||||||
|
if (!File.exists?('app/uploaders'))
|
||||||
|
directory 'uploaders', 'app/uploaders'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def include_uploaders
|
||||||
|
file_and_search = [
|
||||||
|
["campaign.rb", "class Campaign < ApplicationRecord\n"],
|
||||||
|
["profile.rb", "class Profile < ApplicationRecord\n"],
|
||||||
|
['nonprofit.rb', "class Nonprofit < ApplicationRecord\n"],
|
||||||
|
['image_attachment.rb', "class ImageAttachment < ApplicationRecord\n"],
|
||||||
|
['event.rb', "class Event < ApplicationRecord\n"]
|
||||||
|
]
|
||||||
|
file_and_search
|
||||||
|
.select{|filename, _| !File.read("app/models/#{filename}").include?('###MIGRATION_FIELDS_BEGIN')}\
|
||||||
|
.each do |filename, find_string|
|
||||||
|
gsub_file("app/models/#{filename}",find_string ) do |match|
|
||||||
|
match << File.read(Pathname(File.expand_path('templates', __dir__, )) + 'models' + "#{filename}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_column_migration_file
|
||||||
|
if (Dir.glob("db/migrate/*_rename_uploader_columns.rb").none?)
|
||||||
|
copy_file "migrate/rename_uploader_columns.rb",
|
||||||
|
"db/migrate/#{DateTime.now.strftime('%Y%m%d%H%M%S')}_rename_uploader_columns.rb"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def add_carrierwave_gems
|
||||||
|
gem "carrierwave", "~> 1"
|
||||||
|
gem "carrierwave-aws"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,17 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
|
||||||
|
CarrierWave.configure do |config|
|
||||||
|
config.storage = :aws
|
||||||
|
config.aws_bucket = ENV['CARRIERWAVE_AWS_BUCKET']
|
||||||
|
config.aws_acl = :public_read
|
||||||
|
config.asset_host = ENV['CARRIERWAVE_IMAGE_HOST'] || "https://#{config.aws_bucket}.s3.amazonaws.com"
|
||||||
|
# config.aws_authenticated_url_expiration = 60 * 60 * 24 * 365
|
||||||
|
# config.aws_credentials = {
|
||||||
|
# access_key_id: ENV['CARRIERWAVE_AWS_ACCESS_KEY_ID'],
|
||||||
|
# secret_access_key: ENV['CARRIERWAVE_SECRET_ACCESS_KEY'],
|
||||||
|
# config: AWS.config(cache_dir: "#{Rails.root}/tmp/uploads", region: ENV['CARRIERWAVE_SECRET_ACCESS_KEY'])
|
||||||
|
# }
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
class RenameUploaderColumns < ActiveRecord::Migration[5.2]
|
||||||
|
rename_column :campaigns, :main_image, :main_image_temp
|
||||||
|
rename_column :campaigns, :background_image, :background_image_temp
|
||||||
|
rename_column :campaigns, :banner_image, :banner_image_temp
|
||||||
|
|
||||||
|
rename_column :events, :main_image, :main_image_temp
|
||||||
|
rename_column :events, :background_image, :background_image_temp
|
||||||
|
|
||||||
|
rename_column :image_attachments, :file, :file_temp
|
||||||
|
|
||||||
|
rename_column :nonprofits, :main_image, :main_image_temp
|
||||||
|
rename_column :nonprofits, :second_image, :second_image_temp
|
||||||
|
rename_column :nonprofits, :third_image, :third_image_temp
|
||||||
|
rename_column :nonprofits, :background_image, :background_image_temp
|
||||||
|
rename_column :nonprofits, :logo_image, :logo_image_temp
|
||||||
|
|
||||||
|
rename_column :profiles, :picture, :picture_temp
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
###MIGRATION_FIELDS_BEGIN
|
||||||
|
mount_uploader :main_image_temp, CampaignMainImageUploader
|
||||||
|
mount_uploader :background_image_temp, CampaignBackgroundImageUploader
|
||||||
|
mount_uploader :banner_image_temp, CampaignBannerImageUploader
|
||||||
|
###MIGRATION_FIELDS_END
|
|
@ -0,0 +1,4 @@
|
||||||
|
###MIGRATION_FIELDS_BEGIN
|
||||||
|
mount_uploader :main_image_temp, EventMainImageUploader
|
||||||
|
mount_uploader :background_image_temp, EventBackgroundImageUploader
|
||||||
|
###MIGRATION_FIELDS_END
|
|
@ -0,0 +1,3 @@
|
||||||
|
###MIGRATION_FIELDS_BEGIN
|
||||||
|
mount_uploader :file_temp, ImageAttachmentUploader
|
||||||
|
###MIGRATION_FIELDS_END
|
|
@ -0,0 +1,7 @@
|
||||||
|
###MIGRATION_FIELDS_BEGIN
|
||||||
|
mount_uploader :main_image_temp, NonprofitUploader
|
||||||
|
mount_uploader :second_image_temp, NonprofitUploader
|
||||||
|
mount_uploader :third_image_temp, NonprofitUploader
|
||||||
|
mount_uploader :background_image_temp, NonprofitBackgroundUploader
|
||||||
|
mount_uploader :logo_temp, NonprofitLogoUploader
|
||||||
|
###MIGRATION_FIELDS_END
|
|
@ -0,0 +1,3 @@
|
||||||
|
###MIGRATION_FIELDS_BEGIN
|
||||||
|
mount_uploader :picture_temp, ProfileUploader
|
||||||
|
###MIGRATION_FIELDS_END
|
|
@ -0,0 +1,54 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
class ArticleBackgroundUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultNonprofitUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :large do
|
||||||
|
process resize_to_fill: [600, 400]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,54 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
class ArticleUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultNonprofitUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :thumb do
|
||||||
|
process resize_to_fill: [200, 200]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,25 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
class CampaignBackgroundImageUploader < CarrierWave::Uploader::Base
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
def store_dir
|
||||||
|
"uploads/campaigns/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :normal do
|
||||||
|
process resize_to_fill: [1000, 600]
|
||||||
|
end
|
||||||
|
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,18 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
class CampaignBannerImageUploader < CarrierWave::Uploader::Base
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
def store_dir
|
||||||
|
"uploads/campaigns/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,56 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
class CampaignMainImageUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/campaigns/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultProfileUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :normal do
|
||||||
|
process resize_to_fill: [524, 360]
|
||||||
|
end
|
||||||
|
|
||||||
|
version :thumb do
|
||||||
|
process resize_to_fill: [180, 150]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,52 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
class EventBackgroundImageUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/events/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultCampaignUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :normal do
|
||||||
|
process resize_to_fill: [1000, 600]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,56 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
class EventMainImageUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/events/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultProfileUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :normal do
|
||||||
|
process resize_to_fill: [400, 400]
|
||||||
|
end
|
||||||
|
|
||||||
|
version :thumb do
|
||||||
|
process resize_to_fill: [100, 100]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,64 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
class ImageAttachmentUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/image_attachments/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultProfileUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :large do
|
||||||
|
process resize_to_fill: [600, 400]
|
||||||
|
end
|
||||||
|
version :medium do
|
||||||
|
process resize_to_fill: [400, 266]
|
||||||
|
end
|
||||||
|
version :small do
|
||||||
|
process resize_to_fill: [400, 266]
|
||||||
|
end
|
||||||
|
# slightly smaller than the normal thumb
|
||||||
|
version :thumb_explore do
|
||||||
|
process resize_to_fill: [200, 133]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,55 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
class NonprofitBackgroundUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/npo/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultNonprofitUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :normal do
|
||||||
|
process resize_to_fill: [1000, 600]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,51 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
class NonprofitLogoUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/npo/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultProfileUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :large do
|
||||||
|
process resize_to_fit: [180, 180]
|
||||||
|
end
|
||||||
|
version :normal do
|
||||||
|
process resize_to_fit: [100, 100]
|
||||||
|
end
|
||||||
|
version :small do
|
||||||
|
process resize_to_fit: [30, 30]
|
||||||
|
end
|
||||||
|
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png gif]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
61
lib/generators/cw_to_activestorage/templates/uploaders/nonprofit_uploader.rb
Executable file
61
lib/generators/cw_to_activestorage/templates/uploaders/nonprofit_uploader.rb
Executable file
|
@ -0,0 +1,61 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
class NonprofitUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/npo/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultProfileUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :nonprofit_carousel do
|
||||||
|
process resize_to_fill: [590, 338]
|
||||||
|
end
|
||||||
|
version :thumb do
|
||||||
|
process resize_to_fill: [188, 120]
|
||||||
|
end
|
||||||
|
# slightly smaller than the normal thumb
|
||||||
|
version :thumb_explore do
|
||||||
|
process resize_to_fill: [100, 100]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,60 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
class ProfileUploader < CarrierWave::Uploader::Base
|
||||||
|
# Include RMagick or MiniMagick support:
|
||||||
|
# include CarrierWave::RMagick
|
||||||
|
include CarrierWave::MiniMagick
|
||||||
|
|
||||||
|
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
|
||||||
|
# include Sprockets::Helpers::RailsHelper
|
||||||
|
# include Sprockets::Helpers::IsolatedHelper
|
||||||
|
|
||||||
|
# Override the directory where uploaded files will be stored.
|
||||||
|
# This is a sensible default for uploaders that are meant to be mounted:
|
||||||
|
def store_dir
|
||||||
|
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||||
|
def default_url
|
||||||
|
# For Rails 3.1+ asset pipeline compatibility:
|
||||||
|
Image::DefaultProfileUrl
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process files as they are uploaded:
|
||||||
|
# process :scale => [200, 300]
|
||||||
|
#
|
||||||
|
# def scale(width, height)
|
||||||
|
# # do something
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Create different versions of your uploaded files:
|
||||||
|
version :normal do
|
||||||
|
process resize_to_fill: [150, 150]
|
||||||
|
end
|
||||||
|
version :medium do
|
||||||
|
process resize_to_fill: [100, 100]
|
||||||
|
end
|
||||||
|
version :tiny do
|
||||||
|
process resize_to_fill: [50, 50]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
# For images you might use something like this:
|
||||||
|
def extension_white_list
|
||||||
|
%w[jpg jpeg png]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override the filename of the uploaded files:
|
||||||
|
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
||||||
|
# def filename
|
||||||
|
# "something.jpg" if original_filename
|
||||||
|
# end
|
||||||
|
|
||||||
|
def cache_dir
|
||||||
|
"#{Rails.root}/tmp/uploads"
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue