[TEM-13161] не оптимизируем оригинальные изображения если они меньше 4096 пикселей#104
[TEM-13161] не оптимизируем оригинальные изображения если они меньше 4096 пикселей#104ngoral merged 21 commits intoinsales:masterfrom
Conversation
lib/paperclip/thumbnail.rb
Outdated
| else | ||
| FileUtils.cp(src, dst) |
There was a problem hiding this comment.
Если сделать в стиле guard condition, то будет более понятно и diff короче
lib/paperclip/geometry.rb
Outdated
| crop_geometry = cropping(dst, ratio, scale) | ||
| else | ||
| scale_geometry = dst.to_s | ||
| needs_scaling = (width > dst.width) || (height > dst.height) |
There was a problem hiding this comment.
Я бы тут вынесла в отдельный метод
def needs_scaling?(dst)
# TODO: проверять другие трансформации
case dst.to_s
when /\d+x\d+>/
dst.width < width || dst.height < height
when /\d+x\d+</
dst.width > width || dst.height > height
else
true
end
endвсё-таки от того, как строка выглядит, тоже зависит, надо ли ресайз делать, ну и плюс это метод geometry, а не .процессора
lib/paperclip/geometry.rb
Outdated
| else | ||
| scale_geometry = dst.to_s | ||
| needs_scaling = (width > dst.width) || (height > dst.height) | ||
| scale_geometry = dst.to_s if needs_scaling |
There was a problem hiding this comment.
А ещё, чтобы не ломать то, что уже и так есть, может, где-то нужно всегда или ещё хз что, я бы в transformation_to добавила аргумент lazy: false и, соответственно, его передавать в true из конструктора класса Thumbnail.
И тогда тут можно сделать что-то типа такого
scale_geometry = !lazy || needs_scaling?(dst) ? dst.to_s : nil
lib/paperclip/thumbnail.rb
Outdated
| dst = Tempfile.new(["#{@basename}-thumb-", ext]) | ||
| dst.binmode | ||
|
|
||
| if !needs_scaling? && !crop? && !convert_options? && !@current_geometry.auto_orient |
There was a problem hiding this comment.
Тут как будто получается очень узкий кейс. Оно может и неплохо, но я бы лучше в tranformation_command проверяла бы, что нам надо добавлять, а что нет. Может быть, и пустую строку там возвращать, почему нет
lib/paperclip/geometry.rb
Outdated
| # Defines the geometry of an image. | ||
| class Geometry | ||
| attr_accessor :height, :width, :modifier | ||
| attr_accessor :height, :width, :modifier, :lazy |
There was a problem hiding this comment.
Я вообще имела в виду к tranformation_to добавить. Так-то геометрия ленивой быть не может, а транформация как будто да...)
No description provided.