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