class DTK::Client::Render::Table

Constants

TableDefinition

Public Class Methods

new(render_type, opts = {}) click to toggle source

opts can have keys

:semantic_datatype (required)
Calls superclass method
# File lib/client/render/view/table.rb, line 26
def initialize(render_type, opts = {})
  unless semantic_datatype = opts[:semantic_datatype]
    raise Error, 'Missing opts[:semantic_datatype] value'
  end
  super(render_type, semantic_datatype)
  @table_definition = get_table_definition?(semantic_datatype)
end

Public Instance Methods

render(data, opts = {}) click to toggle source

opts can have keys

:print_error_table - Boolean (default: false)
:table_definition - if set overrides the one associated with the object
# File lib/client/render/view/table.rb, line 37
def render(data, opts = {})
  unless table_definition = opts[:table_definition] || @table_definition
    raise Error, 'Missing table definition'
  end
  if data.empty?
    render_text("Table is empty\n")
  else
    Processor.render(data, table_definition, opts)
  end
end

Private Instance Methods

get_table_definition?(semantic_datatype) click to toggle source
# File lib/client/render/view/table.rb, line 51
def get_table_definition?(semantic_datatype)
  if table_def_hash = (table_definitions || {})[table_def_index_from_semantic_datatype(semantic_datatype)]
    TableDefinition.new(table_def_hash['mapping'], table_def_hash['order'])
  end
end
get_table_definitions() click to toggle source

get all table definitions from json file

# File lib/client/render/view/table.rb, line 68
def get_table_definitions
  content = DiskCacher.new.fetch('table_metadata', Config[:meta_table_ttl])
  raise Error, 'Table metadata is empty' if content.empty?
  JSON.parse(content)
end
table_def_index_from_semantic_datatype(semantic_datatype) click to toggle source
# File lib/client/render/view/table.rb, line 57
def table_def_index_from_semantic_datatype(semantic_datatype)
  semantic_datatype.to_s
end
table_definitions() click to toggle source
# File lib/client/render/view/table.rb, line 61
def table_definitions
  # TODO: put back in caching after take into account :meta_table_ttl
  # @@table_definitions_metadata ||= get_table_definitions_metadata
  get_table_definitions
end