Sha256: ce578a7b35f5fe6ac2324498c22eda7d086c6aef8ec84ce994b236ab554cc747
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
module TableCloth class Base include TableCloth::Extensions::Actions NoPresenterError = Class.new(Exception) attr_reader :collection, :view def initialize(collection, view) @collection = collection @view = view end def config self.class.config end class << self def presenter(klass=nil) return @presenter = klass if klass return @presenter if @presenter if superclass.respond_to?(:presenter) superclass.presenter else raise NoPresenterError, "No Presenter" end end def column(*args, &block) options = args.extract_options! || {} options[:proc] = block if block_given? column_class = options.delete(:using) || Column args.each do |name| add_column(class: column_class, options: options, name: name) end end def columns @columns ||= {} if superclass.respond_to? :columns @columns = superclass.columns.merge(@columns) end @columns end def add_column(options) @columns ||= {} @columns[options[:name]] = options end def config @config ||= if superclass.respond_to?(:config) superclass.config.dup else Configuration.new end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
table_cloth-0.4.2 | lib/table_cloth/base.rb |
table_cloth-0.4.1 | lib/table_cloth/base.rb |