Class: Trestle::Table::Automatic

Inherits:
Trestle::Table show all
Defined in:
lib/trestle/table/automatic.rb

Instance Attribute Summary

Attributes inherited from Trestle::Table

#options, #row

Instance Method Summary collapse

Methods inherited from Trestle::Table

#renderer, #sortable?

Constructor Details

#initialize(admin) ⇒ Automatic

Returns a new instance of Automatic.



4
5
6
7
# File 'lib/trestle/table/automatic.rb', line 4

def initialize(admin)
  super(sortable: true, admin: admin)
  @admin = admin
end

Instance Method Details

#actions_columnObject



30
31
32
# File 'lib/trestle/table/automatic.rb', line 30

def actions_column
  ActionsColumn.new(self)
end

#columnsObject



9
10
11
# File 'lib/trestle/table/automatic.rb', line 9

def columns
  content_columns + [actions_column]
end

#content_columnsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/trestle/table/automatic.rb', line 13

def content_columns
  @admin.default_attributes.map.with_index do |attribute, index|
    next if attribute.inheritance_column?
    next if attribute.counter_cache?

    if attribute.association?
      Column.new(self, attribute.association_name, sort: false)
    elsif attribute.text?
      Column.new(self, attribute.name, link: index.zero?) do |instance|
        truncate(instance.public_send(attribute.name))
      end
    else
      Column.new(self, attribute.name, link: index.zero?, align: (:center if attribute.datetime? || attribute.boolean?))
    end
  end.compact
end