class Daru::View::DataTable

Attributes

data[RW]
element_id[RW]
html_options[RW]
options[RW]

Public Class Methods

new(data=[], options={}) click to toggle source

@param data [Array, Daru::DataFrame, Daru::Vector] The data provided

by the user to generate the datatable

@param options [Hash] Various options provided by the user to

incorporate in datatable

@return Initializes the Daru::DataTables::DataTable object @example

vec = Daru::Vector.new([1, 2, 3], name: :a)
opts = {searching: false}
table = Daru::DataTables::DataTable.new(vec, opts)
# File lib/daru/data_tables/data_table.rb, line 15
def initialize(data=[], options={})
  @element_id = options.delete(:element_id) unless options[:element_id].nil?
  @html_options = options.delete(:html_options) unless options[:html_options].nil?
  @html_options ||= default_html_options
  @data = data
  @options = options
  @options[:data] = to_data_array(data)
  row_number = 0
  @options[:data].each do |array|
    array.unshift(row_number)
    row_number += 1
  end
end

Private Instance Methods

convert_to_array_of_array(rows) click to toggle source
# File lib/daru/data_tables/data_table.rb, line 64
def convert_to_array_of_array(rows)
  if rows.all? { |row| row.class==Array }
    rows
  else
    tuples = []
    rows.each { |row| tuples << [row] }
    tuples
  end
end
default_html_options() click to toggle source
# File lib/daru/data_tables/data_table.rb, line 31
def default_html_options
  table_opts = {
    class: 'display',
    cellspacing: '0',
    width: '100%'
  }
  html_options = {
    table_options: table_opts
  }
  html_options
end
to_data_array(data_set) click to toggle source

DataTables accept the data as Array of array.

TODO : I didn't find use case for Daru::MultiIndex.

# File lib/daru/data_tables/data_table.rb, line 46
def to_data_array(data_set)
  case
  when data_set.is_a?(Daru::DataFrame)
    return ArgumentError unless data_set.index.is_a?(Daru::Index)

    rows = data_set.access_row_tuples_by_indexs(*data_set.index.to_a)
    convert_to_array_of_array(rows)
  when data_set.is_a?(Daru::Vector)
    rows = []
    data_set.to_a.each { |a| rows << [a] }
    rows
  when data_set.is_a?(Array)
    convert_to_array_of_array(data_set)
  else
    raise ArgumentError, 'Invalid Argument Passed!'
  end
end