Class: TermUtils::Tab::Holder

Inherits:
Object
  • Object
show all
Defined in:
lib/term_utils/tab.rb

Overview

Represents a Holder of Table(s).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeHolder

Creates a new Holder.



453
454
455
456
457
# File 'lib/term_utils/tab.rb', line 453

def initialize
  @table_defaults = TermUtils::Tab.init_table_props
  @column_defaults = TermUtils::Tab.init_column_props
  @tables = {}
end

Instance Attribute Details

#column_defaultsHash

Returns ‘:width`, `:align`, `:fixed`, `:ellipsis`, `:format`.

Returns:

  • (Hash)

    ‘:width`, `:align`, `:fixed`, `:ellipsis`, `:format`.



448
449
450
# File 'lib/term_utils/tab.rb', line 448

def column_defaults
  @column_defaults
end

#table_defaultsHash

Returns ‘:offset`, `:column_separator_width`.

Returns:

  • (Hash)

    ‘:offset`, `:column_separator_width`.



446
447
448
# File 'lib/term_utils/tab.rb', line 446

def table_defaults
  @table_defaults
end

#tablesHash<Symbol, Tab::Table>

Returns:



450
451
452
# File 'lib/term_utils/tab.rb', line 450

def tables
  @tables
end

Instance Method Details

#create_table(opts = {}, &block) ⇒ Tab::Table

Creates a new table, using default properties, without registering it.

Parameters:

  • opts (Hash) (defaults to: {})

Returns:



481
482
483
484
485
486
487
488
# File 'lib/term_utils/tab.rb', line 481

def create_table(opts = {}, &block)
  opts[:offset] = @table_defaults.fetch(:offset)
  opts[:column_separator_width] = @table_defaults.fetch(:column_separator_width)
  opts[:column_defaults] = @column_defaults.dup
  new_tab = Table.new(opts)
  block&.call(new_tab)
  new_tab
end

#define_table(id, opts = {}, &block) ⇒ Tab::Table

Defines a table, using default properties.

Parameters:

  • id (Symbol)
  • opts (Hash) (defaults to: {})

Returns:



494
495
496
497
498
499
500
501
502
503
504
505
506
507
# File 'lib/term_utils/tab.rb', line 494

def define_table(id, opts = {}, &block)
  if @tables.key? id
    block&.call(@tables[id])
  else
    opts[:id] = id
    opts[:offset] = @table_defaults.fetch(:offset)
    opts[:column_separator_width] = @table_defaults.fetch(:column_separator_width)
    opts[:column_defaults] = @column_defaults.dup
    new_tab = Table.new(opts)
    block&.call(new_tab)
    @tables[id] = new_tab
  end
  @tables[id]
end

#find_table(id) ⇒ Tab::Table?

Finds a table.

Parameters:

  • id (Symbol)

Returns:



512
513
514
# File 'lib/term_utils/tab.rb', line 512

def find_table(id)
  @tables[id]
end

#printer(id, io, opts = {}, &block) ⇒ Tab::Printer

Creates a new table printer.

Parameters:

  • id (Symbol)
  • io (IO)
  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :offset (Integer)
  • :column_separator_width (Integer)

Returns:



523
524
525
# File 'lib/term_utils/tab.rb', line 523

def printer(id, io, opts = {}, &block)
  find_table(id).printer(io, opts, &block)
end

#set_column_defaults(opts = {}) ⇒ Object

Sets column default properties.

Parameters:

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :width (Integer)
  • :align (Symbol)
  • :fixed (Boolean)
  • :ellipsis (String)
  • :format (Proc, String, nil)


474
475
476
# File 'lib/term_utils/tab.rb', line 474

def set_column_defaults(opts = {})
  TermUtils::Tab.assign_column_props(@column_defaults, opts)
end

#set_table_defaults(opts = {}) ⇒ Object

Sets table default properties.

Parameters:

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :offset (Integer)
  • :column_separator_width (Symbol)


463
464
465
# File 'lib/term_utils/tab.rb', line 463

def set_table_defaults(opts = {})
  TermUtils::Tab.assign_table_props(@table_defaults, opts)
end