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
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