From 21ca90a1b0ecfd5a10b82af43c03bee6bedf2801 Mon Sep 17 00:00:00 2001 From: Mitsuhiro Shibuya Date: Sun, 22 Sep 2024 16:54:25 +0900 Subject: [PATCH] Rename #version_exists? to #version_active?, to reduce confusion Closes #1926 Refs. https://github.com/carrierwaveuploader/carrierwave/issues/1926#issuecomment-2352508953 --- lib/carrierwave/uploader/versions.rb | 8 +++++--- spec/uploader/versions_spec.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/lib/carrierwave/uploader/versions.rb b/lib/carrierwave/uploader/versions.rb index 52641cb94..e91aae19b 100644 --- a/lib/carrierwave/uploader/versions.rb +++ b/lib/carrierwave/uploader/versions.rb @@ -196,9 +196,9 @@ def version_name # # === Returns # - # [Boolean] True when the version exists according to its :if or :unless condition + # [Boolean] True when the version satisfy its :if or :unless condition # - def version_exists?(name) + def version_active?(name) name = name.to_sym return false unless versions.has_key?(name) @@ -222,6 +222,8 @@ def version_exists?(name) true end end + alias_method :version_exists?, :version_active? + CarrierWave.deprecator.deprecate_methods(self, version_exists?: :version_active?) ## # Copies the parent's cache_id when caching a version file. @@ -299,7 +301,7 @@ def descendant_version_names def active_versions versions.select do |name, uploader| - version_exists?(name) + version_active?(name) end end diff --git a/spec/uploader/versions_spec.rb b/spec/uploader/versions_spec.rb index b4c163687..2c2ac361c 100644 --- a/spec/uploader/versions_spec.rb +++ b/spec/uploader/versions_spec.rb @@ -773,6 +773,32 @@ def shorten end end end + + describe '#version_active?' do + before do + @file = File.open(file_path('test.jpg')) + @uploader_class.version(:preview, if: :true?) + end + + it 'returns true when active' do + expect(@uploader).to receive(:true?).at_least(:once).and_return(true) + @uploader.store!(@file) + expect(@uploader.version_active?(:preview)).to be true + end + + it 'returns false when inactive' do + expect(@uploader).to receive(:true?).at_least(:once).and_return(false) + @uploader.store!(@file) + expect(@uploader.version_active?(:preview)).to be false + end + end + + describe '#version_exists' do + it 'shows deprecation' do + expect(CarrierWave.deprecator).to receive(:warn).with(/use version_active\? instead/, any_args) + @uploader.version_exists?(:preview) + end + end end describe 'with a version with option :from_version' do