class Tabl::DerefColumn

Attributes

column[R]

Public Class Methods

new(column, deref) click to toggle source
# File lib/tabl/deref_column.rb, line 5
def initialize(column, deref)
  @column = column
  @callback = deref
  @callback = lambda { |record| record.send(deref) } if Symbol === deref
  @format_dsl = Column::FormatDsl.new(self)
end

Public Instance Methods

clone() click to toggle source
# File lib/tabl/deref_column.rb, line 33
def clone
  DerefColumn.new(@column.clone, @callback.clone)
end
deref(record) click to toggle source
# File lib/tabl/deref_column.rb, line 25
def deref(record)
  @callback.call(record)
end
format(format = nil, value = nil, record = nil, context = nil) click to toggle source
# File lib/tabl/deref_column.rb, line 16
def format(format = nil, value = nil, record = nil, context = nil)
  if format.nil?
    @format_dsl
  else
    record = deref(record) if record
    @column.format(format, value, record, context)
  end
end
method_missing(name, *args) click to toggle source
# File lib/tabl/deref_column.rb, line 29
def method_missing(name, *args)
  @column.send(name, *args)
end
value(record) click to toggle source
# File lib/tabl/deref_column.rb, line 12
def value(record)
  @column.value(deref(record))
end