From bea080a9b1f204a7eda7c8de748454c258f0a9c1 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Mon, 25 Apr 2022 14:14:39 +1000 Subject: [PATCH] Remove Paperclip It has been replaced by Active Storage. --- .rubocop_todo.yml | 1 - Gemfile | 1 - Gemfile.lock | 13 --------- config/initializers/paperclip.rb | 46 -------------------------------- lib/spree/core.rb | 1 - lib/spree/core/s3_support.rb | 35 ------------------------ spec/base_spec_helper.rb | 2 -- 7 files changed, 99 deletions(-) delete mode 100644 config/initializers/paperclip.rb delete mode 100644 lib/spree/core/s3_support.rb diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 3dba2bd123..0e9cdb3975 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -441,7 +441,6 @@ Metrics/AbcSize: - 'lib/reporting/reports/payments/payments_report.rb' - 'lib/reporting/reports/sales_tax/sales_tax_report.rb' - 'lib/spree/core/controller_helpers/order.rb' - - 'lib/spree/core/s3_support.rb' - 'lib/tasks/enterprises.rake' - 'spec/services/order_checkout_restart_spec.rb' diff --git a/Gemfile b/Gemfile index a6ec2e5a78..1725e5e0d1 100644 --- a/Gemfile +++ b/Gemfile @@ -86,7 +86,6 @@ gem 'bootsnap', require: false gem 'geocoder' gem 'gmaps4rails' gem 'mimemagic', '> 0.3.5' -gem 'paperclip', '~> 3.4.1' gem 'paper_trail', '~> 12.1.0' gem 'rack-rewrite' gem 'rack-ssl', require: 'rack/ssl' diff --git a/Gemfile.lock b/Gemfile.lock index 13fb10770e..9001b74101 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -219,10 +219,7 @@ GEM rubyzip (>= 1.3.0, < 3) childprocess (4.1.0) chronic (0.10.2) - climate_control (0.2.0) cliver (0.3.2) - cocaine (0.5.8) - climate_control (>= 0.0.3, < 1.0) coderay (1.1.3) coffee-rails (5.0.0) coffee-script (>= 2.2.0) @@ -392,9 +389,6 @@ GEM marcel (1.0.2) matrix (0.4.2) method_source (1.0.0) - mime-types (3.3.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2021.0225) mimemagic (0.4.3) nokogiri (~> 1) rake @@ -427,12 +421,6 @@ GEM paper_trail (12.1.0) activerecord (>= 5.2) request_store (~> 1.1) - paperclip (3.4.2) - activemodel (>= 3.0.0) - activerecord (>= 3.0.0) - activesupport (>= 3.0.0) - cocaine (~> 0.5.0) - mime-types parallel (1.21.0) paranoia (2.4.3) activerecord (>= 4.0, < 6.2) @@ -785,7 +773,6 @@ DEPENDENCIES order_management! pagy (~> 5.1) paper_trail (~> 12.1.0) - paperclip (~> 3.4.1) paranoia (~> 2.4) paypal-sdk-merchant (= 1.117.2) pdf-reader diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb deleted file mode 100644 index a58c6bdf9d..0000000000 --- a/config/initializers/paperclip.rb +++ /dev/null @@ -1,46 +0,0 @@ -Paperclip::Attachment.default_options[:source_file_options] = { - all: "-auto-orient" -} - -url_adapters = [ - "Paperclip::UriAdapter", - "Paperclip::HttpUrlProxyAdapter", - "Paperclip::DataUriAdapter" -] - -# Remove Paperclip URL adapters from registered handlers -Paperclip.io_adapters.registered_handlers.delete_if do |_proc, adapter_class| - url_adapters.include? adapter_class.to_s -end - -if Paperclip::VERSION.to_f < 3.5 - if Rails::VERSION::MAJOR > 4 - # Patches an error for missing method #silence_stream with Rails 5.0 - # Can be removed after Paperclip is upgraded to 3.5+ - module Paperclip - class GeometryDetector - def silence_stream(_stream, &block) - yield - end - end - end - end -else - Rails.logger.warn "The Paperclip::GeometryDetector patch can now be removed." -end - -module UpdatedUrlGenerator - def escape_url(url) - (url.respond_to?(:escape) ? url.escape : URI::Parser.new.escape(url)). - gsub(/(\/.+)\?(.+\.)/, '\1%3F\2') - end -end - -module PaperclipImageErrors - def mark_invalid(record, attribute, types) - record.errors.add attribute, :invalid, **options.merge(:types => types.join(', ')) - end -end - -Paperclip::UrlGenerator.prepend(UpdatedUrlGenerator) -Paperclip::Validators::AttachmentPresenceValidator.prepend(PaperclipImageErrors) diff --git a/lib/spree/core.rb b/lib/spree/core.rb index 900da7c45b..3daa196700 100644 --- a/lib/spree/core.rb +++ b/lib/spree/core.rb @@ -6,7 +6,6 @@ require 'awesome_nested_set' require 'cancan' require 'pagy' require 'mail' -require 'paperclip' require 'paranoia' require 'ransack' require 'state_machines' diff --git a/lib/spree/core/s3_support.rb b/lib/spree/core/s3_support.rb deleted file mode 100644 index 92229c15f5..0000000000 --- a/lib/spree/core/s3_support.rb +++ /dev/null @@ -1,35 +0,0 @@ -# frozen_string_literal: true - -module Spree - module Core - # This module exists to reduce duplication in S3 settings between - # the Image and Taxon models in Spree - module S3Support - extend ActiveSupport::Concern - - included do - def self.supports_s3(field) - # Load user defined paperclip settings - config = Spree::Config - return unless config[:use_s3] - - s3_creds = { access_key_id: config[:s3_access_key], - secret_access_key: config[:s3_secret], - bucket: config[:s3_bucket] } - attachment_definitions[field][:storage] = :s3 - attachment_definitions[field][:s3_credentials] = s3_creds - attachment_definitions[field][:s3_headers] = ActiveSupport::JSON. - decode(config[:s3_headers]) - attachment_definitions[field][:bucket] = config[:s3_bucket] - if config[:s3_protocol].present? - attachment_definitions[field][:s3_protocol] = config[:s3_protocol].downcase - end - - return if config[:s3_host_alias].blank? - - attachment_definitions[field][:s3_host_alias] = config[:s3_host_alias] - end - end - end - end -end diff --git a/spec/base_spec_helper.rb b/spec/base_spec_helper.rb index 617ed81a84..5b865822de 100644 --- a/spec/base_spec_helper.rb +++ b/spec/base_spec_helper.rb @@ -14,7 +14,6 @@ require 'rspec/rails' require 'capybara' require 'rspec/retry' require 'paper_trail/frameworks/rspec' -require "paperclip/matchers" require "factory_bot_rails" require 'shoulda/matchers' @@ -126,7 +125,6 @@ RSpec.configure do |config| config.infer_spec_type_from_file_location! config.include FactoryBot::Syntax::Methods - config.include Paperclip::Shoulda::Matchers config.include JsonSpec::Helpers config.include Rails.application.routes.url_helpers