Class: TermUtils::Tab::Holder
- Inherits:
-
Object
- Object
- TermUtils::Tab::Holder
- Defined in:
- lib/term_utils/tab.rb
Overview
Represents a Holder of Table(s).
Instance Attribute Summary collapse
-
#column_defaults ⇒ Hash
‘:width`, `:align`, `:fixed`, `:ellipsis`, `:format`.
-
#table_defaults ⇒ Hash
‘:offset`, `:column_separator_width`.
- #tables ⇒ Hash<Symbol, Tab::Table>
Instance Method Summary collapse
-
#create_table(opts = {}, &block) ⇒ Tab::Table
Creates a new table, using default properties, without registering it.
-
#define_table(id, opts = {}, &block) ⇒ Tab::Table
Defines a table, using default properties.
-
#find_table(id) ⇒ Tab::Table?
Finds a table.
-
#initialize ⇒ Holder
constructor
Creates a new Holder.
-
#printer(id, io, opts = {}, &block) ⇒ Tab::Printer
Creates a new table printer.
-
#set_column_defaults(opts = {}) ⇒ Object
Sets column default properties.
-
#set_table_defaults(opts = {}) ⇒ Object
Sets table default properties.
Constructor Details
#initialize ⇒ Holder
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_defaults ⇒ Hash
Returns ‘:width`, `:align`, `:fixed`, `:ellipsis`, `:format`.
448 449 450 |
# File 'lib/term_utils/tab.rb', line 448 def column_defaults @column_defaults end |
#table_defaults ⇒ Hash
Returns ‘:offset`, `:column_separator_width`.
446 447 448 |
# File 'lib/term_utils/tab.rb', line 446 def table_defaults @table_defaults end |
#tables ⇒ Hash<Symbol, Tab::Table>
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.
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.
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.
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.
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.
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.
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 |