carrierwave 3.1.0.beta → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94f7caad86544528c7b1d7acdecd8bfe3d5d94e53469890899578c47dd142f91
4
- data.tar.gz: 1d572604e7b5b89639286ae6f7d087f513a53cf3adf4028138bdea0be6d538a6
3
+ metadata.gz: 418e6b0903adc403510724ba7a5764e8edaa5b4bc96d5313e8f01572bf26ceac
4
+ data.tar.gz: 0bbac560a7928ce059afccb2280a1f77d17c9bca418a3f471097a3e3375fc6d0
5
5
  SHA512:
6
- metadata.gz: 19f434816a0cde1b473525dc383cd61f7b0899ddb7c2230a95053ba43ee6287d0a9dcb6dd322bd016ed582140d2e54fc5f5385741c91e09df3201c6f39ed4083
7
- data.tar.gz: 127a4ac2b998d373d5774cbfeef32c49f31d9fe44f30416738945b61c6316ce093f4c2607aeb9c6cfb4c7286684926491755572eb8fd696b4b0195bdcd07a07e
6
+ metadata.gz: 253d7d3f2e78fd169e347042c6eae2d5ab70f1383dc159988387215cb669ca905232817484f168816c21bcfb6733221a69c6ae02d7a463df920446ee53ae8efd
7
+ data.tar.gz: 7640c8c67f2bb11025a42c9b05752a167a3da4d3452dc3359ffc51e5cb5ea8460fd23be401446734daa573e77f9a0639b7f2cf053288d8c5360e63907a80f08c
data/README.md CHANGED
@@ -1027,7 +1027,7 @@ end
1027
1027
  ### List of available processing methods:
1028
1028
 
1029
1029
  > [!NOTE]
1030
- > While the intention is to provide uniform interfaces to al three processing libraries the availability and implementation of processing methods can <a href="supported-processing-methods">vary slightly between them</a>.
1030
+ > While the intention is to provide uniform interfaces to all three processing libraries the availability and implementation of processing methods can <a href="supported-processing-methods">vary slightly between them</a>.
1031
1031
 
1032
1032
  - `convert` - Changes the image encoding format to the given format (eg. jpg). This operation is treated specially to trigger the change of the file extension, so it matches with the format of the resulting file.
1033
1033
  - `resize_to_limit` - Resize the image to fit within the specified dimensions while retaining the original aspect ratio. Will only resize the image if it is larger than the specified dimensions. The resulting image may be shorter or narrower than specified in the smaller dimension but will not be larger than the specified values.
@@ -125,6 +125,7 @@ module CarrierWave
125
125
  urls = Array.wrap(urls).reject(&:blank?)
126
126
  return if urls.blank?
127
127
  end
128
+ @download_errors.clear
128
129
  @remote_urls = urls
129
130
 
130
131
  clear_unstaged
@@ -291,7 +291,7 @@ module CarrierWave
291
291
  image = yield(image)
292
292
  FileUtils.mv image.path, current_path
293
293
 
294
- image.run_command("identify", current_path)
294
+ ::MiniMagick::Image.new(current_path).identify
295
295
  rescue ::MiniMagick::Error, ::MiniMagick::Invalid => e
296
296
  raise e if e.message =~ /(You must have .+ installed|is not installed|executable not found)/
297
297
  message = I18n.translate(:"errors.messages.processing_error")
@@ -18,6 +18,8 @@ module CarrierWave
18
18
  # [:fog_use_ssl_for_aws] (optional) #public_url will use https for the AWS generated URL]
19
19
  # [:fog_aws_accelerate] (optional) #public_url will use s3-accelerate subdomain
20
20
  # instead of s3, defaults to false
21
+ # [:fog_aws_fips] (optional) #public_url will use s3-fips subdomain
22
+ # instead of s3, defaults to false
21
23
  #
22
24
  #
23
25
  # AWS credentials contain the following keys:
@@ -309,6 +311,15 @@ module CarrierWave
309
311
  file.nil? ? 0 : file.content_length
310
312
  end
311
313
 
314
+ ##
315
+ # === Returns
316
+ #
317
+ # [Boolean] whether the file is non-existent or empty
318
+ #
319
+ def empty?
320
+ !exists? || size.zero?
321
+ end
322
+
312
323
  ##
313
324
  # Check if the file exists on the remote service
314
325
  #
@@ -365,6 +376,7 @@ module CarrierWave
365
376
  when 'AWS'
366
377
  # check if some endpoint is set in fog_credentials
367
378
  if @uploader.fog_credentials.has_key?(:endpoint)
379
+ raise 'fog_aws_fips = true is incompatible with :endpoint, as FIPS endpoints do not support path-style URLs.' if @uploader.fog_aws_fips
368
380
  "#{@uploader.fog_credentials[:endpoint]}/#{@uploader.fog_directory}/#{encoded_path}"
369
381
  else
370
382
  protocol = @uploader.fog_use_ssl_for_aws ? "https" : "http"
@@ -374,17 +386,18 @@ module CarrierWave
374
386
  use_virtual_hosted_style = @uploader.fog_directory.to_s =~ subdomain_regex && !(protocol == 'https' && @uploader.fog_directory =~ /\./)
375
387
 
376
388
  region = @uploader.fog_credentials[:region].to_s
377
- regional_host = case region
378
- when DEFAULT_S3_REGION, ''
379
- 's3.amazonaws.com'
380
- else
381
- "s3.#{region}.amazonaws.com"
382
- end
389
+ regional_host = 's3.amazonaws.com' # used for DEFAULT_S3_REGION or no region set
390
+ if @uploader.fog_aws_fips
391
+ regional_host = "s3-fips.#{region}.amazonaws.com" # https://aws.amazon.com/compliance/fips/
392
+ elsif ![DEFAULT_S3_REGION, ''].include?(region)
393
+ regional_host = "s3.#{region}.amazonaws.com"
394
+ end
383
395
 
384
396
  if use_virtual_hosted_style
385
397
  regional_host = 's3-accelerate.amazonaws.com' if @uploader.fog_aws_accelerate
386
398
  "#{protocol}://#{@uploader.fog_directory}.#{regional_host}/#{encoded_path}"
387
399
  else # directory is not a valid subdomain, so use path style for access
400
+ raise 'FIPS Endpoints can only be used with Virtual Hosted-Style addressing.' if @uploader.fog_aws_fips
388
401
  "#{protocol}://#{regional_host}/#{@uploader.fog_directory}/#{encoded_path}"
389
402
  end
390
403
  end
@@ -35,6 +35,7 @@ module CarrierWave
35
35
  add_config :fog_authenticated_url_expiration
36
36
  add_config :fog_use_ssl_for_aws
37
37
  add_config :fog_aws_accelerate
38
+ add_config :fog_aws_fips
38
39
 
39
40
  # Mounting
40
41
  add_config :ignore_integrity_errors
@@ -197,6 +198,7 @@ module CarrierWave
197
198
  config.fog_authenticated_url_expiration = 600
198
199
  config.fog_use_ssl_for_aws = true
199
200
  config.fog_aws_accelerate = false
201
+ config.fog_aws_fips = false
200
202
  config.store_dir = 'uploads'
201
203
  config.cache_dir = 'uploads/tmp'
202
204
  config.delete_tmp_file_after_storage = true
@@ -70,6 +70,9 @@ module CarrierWave
70
70
  if processor == :convert
71
71
  # Treat :convert specially, since it should trigger the file extension change
72
72
  force_extension processor_args
73
+ if condition
74
+ warn "Use of 'process convert: format' with conditionals has an issue and doesn't work correctly. See https://github.com/carrierwaveuploader/carrierwave/issues/2723 for details. "
75
+ end
73
76
  end
74
77
  end
75
78
  end
@@ -196,9 +196,9 @@ module CarrierWave
196
196
  #
197
197
  # === Returns
198
198
  #
199
- # [Boolean] True when the version exists according to its :if or :unless condition
199
+ # [Boolean] True when the version satisfy its :if or :unless condition
200
200
  #
201
- def version_exists?(name)
201
+ def version_active?(name)
202
202
  name = name.to_sym
203
203
 
204
204
  return false unless versions.has_key?(name)
@@ -222,6 +222,8 @@ module CarrierWave
222
222
  true
223
223
  end
224
224
  end
225
+ alias_method :version_exists?, :version_active?
226
+ CarrierWave.deprecator.deprecate_methods(self, version_exists?: :version_active?)
225
227
 
226
228
  ##
227
229
  # Copies the parent's cache_id when caching a version file.
@@ -299,7 +301,7 @@ module CarrierWave
299
301
 
300
302
  def active_versions
301
303
  versions.select do |name, uploader|
302
- version_exists?(name)
304
+ version_active?(name)
303
305
  end
304
306
  end
305
307
 
@@ -4,7 +4,7 @@ module CarrierWave
4
4
  module Utilities
5
5
  module Uri
6
6
  # based on Ruby < 2.0's URI.encode
7
- PATH_SAFE = URI::REGEXP::PATTERN::UNRESERVED + '\/'
7
+ PATH_SAFE = URI::RFC2396_REGEXP::PATTERN::UNRESERVED + '\/'
8
8
  PATH_UNSAFE = Regexp.new("[^#{PATH_SAFE}]", false)
9
9
  NON_ASCII = /[^[:ascii:]]/.freeze
10
10
 
@@ -1,3 +1,3 @@
1
1
  module CarrierWave
2
- VERSION = "3.1.0.beta".freeze
2
+ VERSION = "3.1.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0.beta
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Nicklas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-01 00:00:00.000000000 Z
11
+ date: 2024-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -382,9 +382,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
382
382
  version: 2.5.0
383
383
  required_rubygems_version: !ruby/object:Gem::Requirement
384
384
  requirements:
385
- - - ">"
385
+ - - ">="
386
386
  - !ruby/object:Gem::Version
387
- version: 1.3.1
387
+ version: '0'
388
388
  requirements: []
389
389
  rubygems_version: 3.4.10
390
390
  signing_key: