Sha256: 173ddc97a67e01bf6d024dca83bd6b47aa88645798393fd9f52dd755b10d5868

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

module LatoView
  # Elemento grafico composto da un insieme di link uniti in orizzontale
  module Buttongroup
    # Cella Buttongroup
    class Cell < Cell
      # Lista stili possibili per il bottongroup
      @@styles = VIEW_CELLSSTYLES

      # Lista di links da mostrare nella Actionbar secondo la
      # struttura [['Nome link', 'url'], ['Nome link', 'url']]
      # * *default*: nil
      attr_accessor :links

      # Dimensione dei pulsanti della button
      # * *default*: nil
      attr_accessor :size

      # Stile da utilizzare per la buttongroup
      # * *default*: nil (normal)
      attr_accessor :style

      def initialize(links: nil, size: nil, style: 'normal')
        # eseguo brevi controlli sull'input
        raise 'Bottongroup Concept: style value in not correct' unless @@styles.include? style.to_s
        # assegno i valori alle variabili di istanza
        @links = links if links && check_links(links)
        @size = size
        @style = style
      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 'Bottongroup Concept: links must be an array' unless links.is_a? Array
        links.each do |link|
          raise 'Bottongroup Concept: links content must be an array' unless link.is_a? Array
          raise 'Bottongroup Concept: links content must have two value' if link.length != 2
        end
      end

    end
    # Fine cella
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lato_view-1.1 app/concepts/lato_view/buttongroup/cell.rb