class DiningTable::Table

Attributes

action_columns[RW]
collection[RW]
columns[RW]
index[RW]
no_header[RW]
options[RW]
presenter[RW]
view_context[RW]

Public Class Methods

new( collection, view_context, options = {} ) click to toggle source
# File lib/dining-table/table.rb, line 10
def initialize( collection, view_context, options = {} )
  self.collection = collection
  self.view_context = view_context
  self.index     = 0
  self.columns   = [ ]
  self.options   = options
  initialize_presenter( options )
  define
end

Public Instance Methods

define() click to toggle source
# File lib/dining-table/table.rb, line 20
def define
  raise NotImplementedError
end
h()
Alias for: helpers
helpers() click to toggle source
# File lib/dining-table/table.rb, line 38
def helpers
  view_context
end
Also aliased as: h
object_class() click to toggle source
# File lib/dining-table/table.rb, line 51
def object_class
  options[:class]
end
render() click to toggle source
# File lib/dining-table/table.rb, line 24
def render
  presenter.start_table
  presenter.render_header unless no_header
  presenter.start_body
  collection.each_with_index do |object, index_|
    self.index = index_
    presenter.render_row( object )
  end
  presenter.end_body
  presenter.render_footer unless no_footer
  presenter.end_table
  presenter.output
end
skip_header() click to toggle source
# File lib/dining-table/table.rb, line 43
def skip_header
  self.no_header = true
end

Private Instance Methods

actions(options = {}, &block) click to toggle source
# File lib/dining-table/table.rb, line 64
def actions(options = {}, &block)
  column(:actions__, { :class => Columns::ActionsColumn }.merge( options ), &block )
end
column(name, options = {}, &block) click to toggle source

auxiliary function

# File lib/dining-table/table.rb, line 58
def column(name, options = {}, &block)
  klass = options[:class]
  klass ||= Columns::Column
  self.columns << klass.new(self, name, options, &block)
end
default_presenter() click to toggle source
# File lib/dining-table/table.rb, line 74
def default_presenter
  Presenters::HTMLPresenter
end
initialize_presenter( options ) click to toggle source
# File lib/dining-table/table.rb, line 68
def initialize_presenter( options )
  self.presenter = options[ :presenter ]
  self.presenter ||= default_presenter.new
  self.presenter.connect_to( self )
end