We were very inconsistent regarding these rules. Personally I prefer no empty lines around blocks, clases, etc... as recommended by the Ruby style guide [1], and they're the default values in rubocop, so those are the settings I'm applying. The exception is the `private` access modifier, since we were leaving empty lines around it most of the time. That's the default rubocop rule as well. Personally I don't have a strong preference about this one. [1] https://rubystyle.guide/#empty-lines-around-bodies
41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
module ImageablesHelper
|
|
def can_destroy_image?(imageable)
|
|
imageable.image.present? && can?(:destroy, imageable.image)
|
|
end
|
|
|
|
def imageable_class(imageable)
|
|
imageable.class.name.parameterize(separator: "_")
|
|
end
|
|
|
|
def imageable_max_file_size
|
|
bytes_to_megabytes(Setting["uploads.images.max_size"].to_i.megabytes)
|
|
end
|
|
|
|
def bytes_to_megabytes(bytes)
|
|
bytes / Numeric::MEGABYTE
|
|
end
|
|
|
|
def imageable_accepted_content_types
|
|
Setting["uploads.images.content_types"]&.split(" ") || ["image/jpeg"]
|
|
end
|
|
|
|
def imageable_accepted_content_types_extensions
|
|
Setting.accepted_content_types_for("images").map do |content_type|
|
|
if content_type == "jpg"
|
|
".jpg,.jpeg"
|
|
else
|
|
".#{content_type}"
|
|
end
|
|
end.join(",")
|
|
end
|
|
|
|
def imageable_humanized_accepted_content_types
|
|
Setting.accepted_content_types_for("images").join(", ")
|
|
end
|
|
|
|
def imageables_note(_imageable)
|
|
t "images.form.note", accepted_content_types: imageable_humanized_accepted_content_types,
|
|
max_file_size: imageable_max_file_size
|
|
end
|
|
end
|