Skip to content
Snippets Groups Projects
gallery.rb 556 B
Newer Older
Arnaud Levy's avatar
Arnaud Levy committed
class Communication::Block::Template::Gallery < Communication::Block::Template
Arnaud Levy's avatar
Arnaud Levy committed
  LAYOUTS = [
    :grid,
    :carousel
  ]

Arnaud Levy's avatar
Arnaud Levy committed
  def build_git_dependencies
Sébastien Gaya's avatar
Sébastien Gaya committed
    add_dependency active_storage_blobs
Arnaud Levy's avatar
Arnaud Levy committed
  end

Arnaud Levy's avatar
Arnaud Levy committed
  def layout
    data['layout'] || 'grid'
  end

Arnaud Levy's avatar
Arnaud Levy committed
  def images_with_alt
Arnaud Levy's avatar
Arnaud Levy committed
    @images_with_alt ||= elements.map { |element|
      extract_image_alt_and_credit element, 'file'
    }.compact
Arnaud Levy's avatar
Arnaud Levy committed
  end

  def active_storage_blobs
    @active_storage_blobs ||=  images_with_alt.map { |hash| hash.blob }
                                              .compact
  end
Arnaud Levy's avatar
Arnaud Levy committed
end