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
69 lines
2.4 KiB
Ruby
69 lines
2.4 KiB
Ruby
module ImagesHelper
|
|
def image_absolute_url(image, version)
|
|
return "" unless image
|
|
if Paperclip::Attachment.default_options[:storage] == :filesystem
|
|
URI(request.url) + image.attachment.url(version)
|
|
else
|
|
investment.image_url(version)
|
|
end
|
|
end
|
|
|
|
def image_attachment_file_name(image)
|
|
image.attachment_file_name
|
|
end
|
|
|
|
def image_errors_on_attachment(image)
|
|
image.errors[:attachment].join(", ") if image.errors.key?(:attachment)
|
|
end
|
|
|
|
def image_bytes_to_megabytes(bytes)
|
|
bytes / Numeric::MEGABYTE
|
|
end
|
|
|
|
def image_class(image)
|
|
image.persisted? ? "persisted-image" : "cached-image"
|
|
end
|
|
|
|
def render_destroy_image_link(builder, image)
|
|
if !image.persisted? && image.cached_attachment.present?
|
|
link_to t("images.form.delete_button"),
|
|
direct_upload_destroy_path(
|
|
"direct_upload[resource_type]": image.imageable_type,
|
|
"direct_upload[resource_id]": image.imageable_id,
|
|
"direct_upload[resource_relation]": "image",
|
|
"direct_upload[cached_attachment]": image.cached_attachment
|
|
),
|
|
method: :delete,
|
|
remote: true,
|
|
class: "delete remove-cached-attachment"
|
|
else
|
|
link_to_remove_association t("images.form.delete_button"), builder, class: "delete remove-image"
|
|
end
|
|
end
|
|
|
|
def render_image_attachment(builder, imageable, image)
|
|
klass = image.persisted? || image.cached_attachment.present? ? " hide" : ""
|
|
builder.file_field :attachment,
|
|
label_options: { class: "button hollow #{klass}" },
|
|
accept: imageable_accepted_content_types_extensions,
|
|
class: "js-image-attachment",
|
|
data: {
|
|
url: image_direct_upload_path(imageable),
|
|
nested_image: true
|
|
}
|
|
end
|
|
|
|
def render_image(image, version, show_caption = true)
|
|
version = image.persisted? ? version : :original
|
|
render "images/image", image: image,
|
|
version: version,
|
|
show_caption: show_caption
|
|
end
|
|
|
|
def image_direct_upload_path(imageable)
|
|
direct_uploads_path("direct_upload[resource_type]": imageable.class.name,
|
|
"direct_upload[resource_id]": imageable.id,
|
|
"direct_upload[resource_relation]": "image")
|
|
end
|
|
end
|