aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage/app/models/active_storage/variation.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activestorage/app/models/active_storage/variation.rb')
-rw-r--r--activestorage/app/models/active_storage/variation.rb28
1 files changed, 14 insertions, 14 deletions
diff --git a/activestorage/app/models/active_storage/variation.rb b/activestorage/app/models/active_storage/variation.rb
index 2b599a4710..0046e6870b 100644
--- a/activestorage/app/models/active_storage/variation.rb
+++ b/activestorage/app/models/active_storage/variation.rb
@@ -46,15 +46,15 @@ class ActiveStorage::Variation
# Accepts an open MiniMagick image instance, like what's returned by <tt>MiniMagick::Image.read(io)</tt>,
# and performs the +transformations+ against it. The transformed image instance is then returned.
def transform(image)
- transformations.each do |(transformation_method, transformation_argument)|
- if transformation_method.to_s == "combine_options"
- image.combine_options do |combination|
- transformation_argument.each do |(method, argument)|
- pass_transform_argument(combination, method, argument)
+ transformations.each do |name, argument_or_subtransformations|
+ image.mogrify do |command|
+ if name.to_s == "combine_options"
+ argument_or_subtransformations.each do |subtransformation_name, subtransformation_argument|
+ pass_transform_argument(command, subtransformation_name, subtransformation_argument)
end
+ else
+ pass_transform_argument(command, name, argument_or_subtransformations)
end
- else
- pass_transform_argument(image, transformation_method, transformation_argument)
end
end
end
@@ -65,15 +65,15 @@ class ActiveStorage::Variation
end
private
- def eligible_argument?(argument)
- argument.present? && argument != true
- end
-
- def pass_transform_argument(instance, method, argument)
+ def pass_transform_argument(command, method, argument)
if eligible_argument?(argument)
- instance.public_send(method, argument)
+ command.public_send(method, argument)
else
- instance.public_send(method)
+ command.public_send(method)
end
end
+
+ def eligible_argument?(argument)
+ argument.present? && argument != true
+ end
end