class Tabl::Definition

Attributes

columns[R]
default_format[RW]
default_value[RW]
format[R]
labels[R]
values[R]

Public Class Methods

new(values_override = nil, &block) click to toggle source
# File lib/tabl/definition.rb, line 11
def initialize(values_override = nil, &block)
  @columns = []
  @labels = {}
  @values = {}
  @format = {}
  @values_override = values_override
  @default_format = lambda { |v| v }
  @default_value = nil
  configure(&block)
  format = Hash.new { Format.new }
end

Public Instance Methods

clone() click to toggle source
Calls superclass method
# File lib/tabl/definition.rb, line 35
def clone
  other = super
  other.instance_variable_set(:@columns, @columns.clone)
  other.instance_variable_set(:@labels, @labels.clone)
  other.instance_variable_set(:@values, @values.clone)
  other.instance_variable_set(:@format, @format.clone)
  other
end
columns=(columns) click to toggle source
# File lib/tabl/definition.rb, line 27
def columns=(columns)
  @columns = columns.clone
  @columns.each do |key|
    @values[key] ||= default_value_proc(key)
    @labels[key] ||= key.to_s.titleize
  end
end
configure() { |self| ... } click to toggle source
# File lib/tabl/definition.rb, line 23
def configure(&block)
  yield(self) if block_given?
end

Private Instance Methods

default_value_proc(key) click to toggle source
# File lib/tabl/definition.rb, line 46
def default_value_proc(key)
  if @values_override && @values_override.respond_to?(key)
    @values_override.method(key)
  else
    lambda { |row| row.send(key) }
  end
end