Sha256: 6881231a74e746aec362a43def913a7eeb206ebcae503a9904905d980676d3ae
Contents?: true
Size: 1.55 KB
Versions: 4
Compression:
Stored size: 1.55 KB
Contents
module Trestle class Table require_relative "table/automatic" require_relative "table/builder" require_relative "table/column" require_relative "table/actions_column" require_relative "table/select_column" require_relative "table/row" attr_reader :columns attr_writer :row attr_accessor :options def initialize(options={}) @options = options @columns = [] end def with_options(opts={}) dup.tap do |table| table.options = options.merge(opts) end end def admin Trestle.lookup(options[:admin]) if options.key?(:admin) end def sortable? options[:sortable] == true end def autolink? options[:autolink] != false end def header? options[:header] != false end def renderer(template) Renderer.new(self, template) end def row @row || Row.new end class Renderer delegate :options, :header?, to: :@table def initialize(table, template) @table, @template = table, template end def row @row ||= @table.row.renderer(table: @table, template: @template) end def columns @columns ||= row.columns end def id options[:id] end def classes ["trestle-table", options[:class]].compact end def data data = options[:data] || {} controllers = Array(data[:controller]) controllers << "checkbox-select" data.merge(controller: controllers.join(" ")) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
trestle-0.10.1 | lib/trestle/table.rb |
trestle-0.10.0 | lib/trestle/table.rb |
trestle-0.10.0.pre2 | lib/trestle/table.rb |
trestle-0.10.0.pre | lib/trestle/table.rb |