class Tablecloth::Transformer
Public Class Methods
new(definition, *args)
click to toggle source
# File lib/tablecloth/transformer.rb, line 5 def initialize(definition, *args) @definition = definition @args = args end
Public Instance Methods
call(value)
click to toggle source
# File lib/tablecloth/transformer.rb, line 10 def call(value) previous_values = {} value.map do |row| row.each_with_object({}) do |(key, value), hash| column = @definition[key] previous_value = previous_values[key] result = if previous_value && value == "" previous_value else visit(column).call(value) end previous_values[key] = result if column.retain_previous_value? hash[key] = result end end end
Private Instance Methods
visit(column)
click to toggle source
# File lib/tablecloth/transformer.rb, line 31 def visit(column) Transproc(:"to_#{column.type}", *@args) end