Module: Spree::RailsCompatibility
- Defined in:
- lib/spree/rails_compatibility.rb
Overview
Supported Rails versions compatibility
This module is meant to wrap some Rails API changes between supported versions. It’s also meant to contain compatibility for features that we use internally in the Solidus code base.
Class Method Summary collapse
-
.active_storage_url_options_host(value) ⇒ Object
Set current host for ActiveStorage.
-
.default_image_attachment_module ⇒ Object
Set default image attachment adapter.
-
.default_taxon_attachment_module ⇒ Object
Set default taxon attachment adapter.
-
.raise_on_missing_translations(value) ⇒ Object
‘raise_on_missing_translations` config option.
-
.to_fs(value, *args, **kwargs, &block) ⇒ Object
Method ‘#to_fs`.
-
.variant_processor ⇒ Object
Default ActiveStorage variant processor.
Class Method Details
.active_storage_url_options_host(value) ⇒ Object
Set current host for ActiveStorage
Changed from ‘#host` to `#url_options` on Rails 7
See github.com/rails/rails/issues/41388
TODO: Remove when deprecating Rails 6.1
82 83 84 85 86 87 88 |
# File 'lib/spree/rails_compatibility.rb', line 82 def self.(value) if version_gte?('7') ActiveStorage::Current. = { host: value } else ActiveStorage::Current.host = value end end |
.default_image_attachment_module ⇒ Object
Set default image attachment adapter
TODO: Remove when deprecating Rails 6.0
56 57 58 59 60 61 62 |
# File 'lib/spree/rails_compatibility.rb', line 56 def self. if version_gte?("6.1") "Spree::Image::ActiveStorageAttachment" else "Spree::Image::PaperclipAttachment" end end |
.default_taxon_attachment_module ⇒ Object
Set default taxon attachment adapter
TODO: Remove when deprecating Rails 6.0
67 68 69 70 71 72 73 |
# File 'lib/spree/rails_compatibility.rb', line 67 def self. if version_gte?("6.1") "Spree::Taxon::ActiveStorageAttachment" else "Spree::Taxon::PaperclipAttachment" end end |
.raise_on_missing_translations(value) ⇒ Object
‘raise_on_missing_translations` config option
Changed from ActionView to I18n on Rails 6.1
See github.com/rails/rails/pull/31571
TODO: Remove when deprecating Rails 6.0
45 46 47 48 49 50 51 |
# File 'lib/spree/rails_compatibility.rb', line 45 def self.raise_on_missing_translations(value) if version_gte?('6.1') Rails.application.config.i18n.raise_on_missing_translations = value else Rails.application.config.action_view.raise_on_missing_translations = value end end |
.to_fs(value, *args, **kwargs, &block) ⇒ Object
Method ‘#to_fs`
Available since Rails 7.0, substitutes ‘#to_s(format)`
It includes:
ActiveSupport::NumericWithFormat ActiveSupport::RangeWithFormat ActiveSupport::TimeWithZone Array Date DateTime Time
See github.com/rails/rails/pull/43772 & github.com/rails/rails/pull/44354
TODO: Remove when deprecating Rails 6.1
30 31 32 33 34 35 36 |
# File 'lib/spree/rails_compatibility.rb', line 30 def self.to_fs(value, *args, **kwargs, &block) if version_gte?('7.0') value.to_fs(*args, **kwargs, &block) else value.to_s(*args, **kwargs, &block) end end |
.variant_processor ⇒ Object
Default ActiveStorage variant processor
Changed from ‘:mini_magick` to `vips` on Rails 7
See github.com/rails/rails/issues/42744
TODO: Remove when deprecating Rails 6.1
97 98 99 |
# File 'lib/spree/rails_compatibility.rb', line 97 def self.variant_processor version_gte?('7') ? :vips : :mini_magick end |