Sha256: 719c399bbf7961ca0b10a790ceb087aa4d14bc8dfe3d0ad7bb6f9adc94661eee

Contents?: true

Size: 1.24 KB

Versions: 6

Compression:

Stored size: 1.24 KB

Contents

module Voom
  module Presenters
    module DSL
      module Components
        class ImageList < Base

          attr_reader :images, :columns, :list_type, :spacing

          def initialize(**attribs_, &block)
            super(type: :image_list, **attribs_, &block)
            @images = []
            @columns = attribs_.delete(:columns){ 5 }
            @list_type = attribs_.delete(:list_type){ 'standard' }
            @spacing = attribs_.delete(:spacing)
            @border_attribs = attribs_.slice(:border, :border_color, :border_radius)
            expand!
          end

          def image(image=nil, **attribs, &block)
            combined_attribs = attribs.merge(@border_attribs)
            @images << ImageListItem.new(parent: self,
                                         image: image,
                                         **combined_attribs,
                                         &block)
          end

          class ImageListItem < Components::Image

            attr_reader :label

            def initialize(**attribs_, &block)
              super(type: :image_list_item, **attribs_, &block)
              @label = attribs_.delete(:label){ nil }
              expand!
            end

          end

        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
voom-presenters-2.1.2 lib/voom/presenters/dsl/components/image_list.rb
voom-presenters-2.1.0 lib/voom/presenters/dsl/components/image_list.rb
voom-presenters-2.0.3 lib/voom/presenters/dsl/components/image_list.rb
voom-presenters-2.0.2 lib/voom/presenters/dsl/components/image_list.rb
voom-presenters-2.0.1 lib/voom/presenters/dsl/components/image_list.rb
voom-presenters-2.0.0 lib/voom/presenters/dsl/components/image_list.rb