Sha256: 7fc0d9f5fa65eb04b583aef305496734dab5901862d577e441e4d9219fac4426

Contents?: true

Size: 1.41 KB

Versions: 3

Compression:

Stored size: 1.41 KB

Contents

module LatoView
  # Cella che si occupa di generare un pannello di dropdown in grado di
  # contenere una lista di link
  module CellsV1::Dropdown
    # Cella Actionbar
    class Cell < Cell
      # Lista di links da mostrare nel Dropdown secondo la
      # struttura [['Nome link', 'url'], ['Nome link', 'url']]
      # * *default*: nil
      attr_accessor :links

      # Titolo principale da mostrare nel dropdown
      # * *default*: nil
      attr_accessor :title

      # Testo da inserire come nome nel pulsante che apre il Dropdown
      # * *default*: nil
      attr_accessor :button

      def initialize(links: nil, title: '', button: nil)
        # assegno i valori alle variabili di istanza
        @links = links if links && check_links(links)
        @title = title
        @button = button
      end

      def show
        render 'show.html'
      end

      # Funzione che controlla che la lista links sia inviata nel formato
      # corretto
      private def check_links(links)
        # evito il controllo se sono in production
        return true if Rails.env.production?
        raise 'Dropdown Concept: links must be an array' unless links.is_a? Array
        links.each do |link|
          raise 'Dropdown Concept: links content must be an array' unless link.is_a? Array
          raise 'Dropdown Concept: links content must have two value' if link.length != 2
        end
      end

    end
    # Fine cella
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lato_view-1.1.5 app/cells/lato_view/cells_v1/dropdown/cell.rb
lato_view-1.1.4 app/cells/lato_view/cells_v1/dropdown/cell.rb
lato_view-1.1.3 app/cells/lato_view/cells_v1/dropdown/cell.rb