Class: CellsV1::Table::Cell

Inherits:
Cell
  • Object
show all
Defined in:
app/cells/lato_view/cells_v1/table/cell.rb

Overview

Cella Table

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(head: nil, rows: nil) ⇒ Cell

Returns a new instance of Cell.



16
17
18
19
20
21
22
# File 'app/cells/lato_view/cells_v1/table/cell.rb', line 16

def initialize(head: nil, rows: nil)
  # eseguo brevi controlli sull'input
  raise 'Table Concept: head must be an array' if head and !head.is_a? Array
  # assegno i valori alle variabili di istanza
  @head = head
  @rows = rows if rows && check_rows(rows)
end

Instance Attribute Details

#headObject

Funzione che genera l’intestazione della tabella



9
10
11
# File 'app/cells/lato_view/cells_v1/table/cell.rb', line 9

def head
  @head
end

#rowsObject

Funzione che stampa tutte le righe della tabella



14
15
16
# File 'app/cells/lato_view/cells_v1/table/cell.rb', line 14

def rows
  @rows
end

Class Method Details

.generate_rows_from_activerecords(activerecords, attributes) ⇒ Object

Funzione che, se il primo parametro e’ il risultato di una query, lo trasforma in un array di array da usare per inizializzare una tabella



63
64
65
66
67
68
69
70
71
72
73
# File 'app/cells/lato_view/cells_v1/table/cell.rb', line 63

def self.generate_rows_from_activerecords(activerecords, attributes)
  rows = []
  activerecords.each do |activerecord|
    row = []
    attributes.each do |attribute|
      row.push(activerecord.send(attribute))
    end
    rows.push(row)
  end
  rows
end

Instance Method Details

#closeObject

Funzione che stampa la chiusura di una tabella



57
58
59
# File 'app/cells/lato_view/cells_v1/table/cell.rb', line 57

def close
  '</table>'
end

#openObject

Funzione che stampa l’apertura di una tabella



29
30
31
# File 'app/cells/lato_view/cells_v1/table/cell.rb', line 29

def open
  "<table class='table'>"
end

#row(position: 0, row: nil) ⇒ Object

Funzione che stampa una riga della tabella

  • Parametri :

  • position: posizione della riga da stampare nell’array di righe

definito durante l’inizializzazione

  • row: array che rappresenta la riga da stampare



48
49
50
51
52
53
54
# File 'app/cells/lato_view/cells_v1/table/cell.rb', line 48

def row(position: 0, row: nil)
  if position && !@rows.nil? && !@rows[position].nil?
    @current_row = @rows[position]
  end
  @current_row = row if row
  render 'row.html'
end

#showObject



24
25
26
# File 'app/cells/lato_view/cells_v1/table/cell.rb', line 24

def show
  open + head + rows + close
end