module RatatuiRuby::TUI::WidgetFactories
Widget factory methods for Session.
Provides convenient access to all Widgets::* classes without fully qualifying the class names. This is the largest mixin, covering all renderable UI components.
All factories use DWIM hash coercion: both ‘tui.table(hash)` and `tui.table(**hash)` work correctly.
Public Instance Methods
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 142 def axis(first = nil, **kwargs) Widgets::Axis.coerce_args(first, kwargs) end
Creates a Widgets::Axis. @return [Widgets::Axis]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 106 def bar(first = nil, **kwargs) Widgets::BarChart::Bar.coerce_args(first, kwargs) end
Creates a Widgets::BarChart::Bar. @return [Widgets::BarChart::Bar]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 100 def bar_chart(first = nil, **kwargs) Widgets::BarChart.coerce_args(first, kwargs) end
Creates a Widgets::BarChart. @return [Widgets::BarChart]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 118 def bar_chart_bar(first = nil, **kwargs) Widgets::BarChart::Bar.coerce_args(first, kwargs) end
Creates a Widgets::BarChart::Bar (alias). @return [Widgets::BarChart::Bar]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 124 def bar_chart_bar_group(first = nil, **kwargs) Widgets::BarChart::BarGroup.coerce_args(first, kwargs) end
Creates a Widgets::BarChart::BarGroup (alias). @return [Widgets::BarChart::BarGroup]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 112 def bar_group(first = nil, **kwargs) Widgets::BarChart::BarGroup.coerce_args(first, kwargs) end
Creates a Widgets::BarChart::BarGroup. @return [Widgets::BarChart::BarGroup]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 21 def block(first = nil, **kwargs) Widgets::Block.coerce_args(first, kwargs) end
Creates a Widgets::Block. @return [Widgets::Block]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 154 def calendar(first = nil, **kwargs) Widgets::Calendar.coerce_args(first, kwargs) end
Creates a Widgets::Calendar. @return [Widgets::Calendar]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 160 def canvas(first = nil, **kwargs) Widgets::Canvas.coerce_args(first, kwargs) end
Creates a Widgets::Canvas. @return [Widgets::Canvas]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 184 def center(first = nil, **kwargs) Widgets::Center.coerce_args(first, kwargs) end
Creates a Widgets::Center. @return [Widgets::Center]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 130 def chart(first = nil, **kwargs) Widgets::Chart.coerce_args(first, kwargs) end
Creates a Widgets::Chart. @return [Widgets::Chart]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 166 def clear(first = nil, **kwargs) Widgets::Clear.coerce_args(first, kwargs) end
Creates a Widgets::Clear. @return [Widgets::Clear]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 172 def cursor(first = nil, **kwargs) Widgets::Cursor.coerce_args(first, kwargs) end
Creates a Widgets::Cursor. @return [Widgets::Cursor]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 136 def dataset(first = nil, **kwargs) Widgets::Dataset.coerce_args(first, kwargs) end
Creates a Widgets::Dataset. @return [Widgets::Dataset]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 82 def gauge(first = nil, **kwargs) Widgets::Gauge.coerce_args(first, kwargs) end
Creates a Widgets::Gauge. @return [Widgets::Gauge]
Creates a Widgets::ListItem (DWIM alias).
Terse alias for list_item. Clear in list context.
@return [Widgets::ListItem]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 88 def line_gauge(first = nil, **kwargs) Widgets::LineGauge.coerce_args(first, kwargs) end
Creates a Widgets::LineGauge. @return [Widgets::LineGauge]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 33 def list(first = nil, **kwargs) Widgets::List.coerce_args(first, kwargs) end
Creates a Widgets::List. @return [Widgets::List]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 39 def list_item(first = nil, **kwargs) Widgets::ListItem.coerce_args(first, kwargs) end
Creates a Widgets::ListItem. @return [Widgets::ListItem]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 178 def overlay(first = nil, **kwargs) Widgets::Overlay.coerce_args(first, kwargs) end
Creates a Widgets::Overlay. @return [Widgets::Overlay]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 27 def paragraph(first = nil, **kwargs) Widgets::Paragraph.coerce_args(first, kwargs) end
Creates a Widgets::Paragraph. @return [Widgets::Paragraph]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 190 def ratatui_logo(first = nil, **kwargs) Widgets::RatatuiLogo.coerce_args(first, kwargs) end
Creates a Widgets::RatatuiLogo. @return [Widgets::RatatuiLogo]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 196 def ratatui_mascot(first = nil, **kwargs) Widgets::RatatuiMascot.coerce_args(first, kwargs) end
Creates a Widgets::RatatuiMascot. @return [Widgets::RatatuiMascot]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 58 def row(first = nil, **kwargs) Widgets::Row.coerce_args(first, kwargs) end
Creates a Widgets::Row (for Table rows). @return [Widgets::Row]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 148 def scrollbar(first = nil, **kwargs) Widgets::Scrollbar.coerce_args(first, kwargs) end
Creates a Widgets::Scrollbar. @return [Widgets::Scrollbar]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 202 def shape_label(first = nil, **kwargs) Widgets::Shape::Label.coerce_args(first, kwargs) end
Creates a Widgets::Shape::Label. @return [Widgets::Shape::Label]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 94 def sparkline(first = nil, **kwargs) Widgets::Sparkline.coerce_args(first, kwargs) end
Creates a Widgets::Sparkline. @return [Widgets::Sparkline]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 52 def table(first = nil, **kwargs) Widgets::Table.coerce_args(first, kwargs) end
Creates a Widgets::Table. @return [Widgets::Table]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 70 def table_cell(first = nil, **kwargs) Widgets::Cell.coerce_args(first, kwargs) end
Creates a Widgets::Cell (for Table cells). @return [Widgets::Cell]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 64 def table_row(first = nil, **kwargs) Widgets::Row.coerce_args(first, kwargs) end
Creates a Widgets::Row (alias for table row). @return [Widgets::Row]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 76 def tabs(first = nil, **kwargs) Widgets::Tabs.coerce_args(first, kwargs) end
Creates a Widgets::Tabs. @return [Widgets::Tabs]
Source
# File lib/ratatui_ruby/tui/widget_factories.rb, line 242 def widget(type, first = nil, **) case type when :block then block(first, **) when :paragraph then paragraph(first, **) when :list then list(first, **) when :table then table(first, **) when :tabs then tabs(first, **) when :gauge then gauge(first, **) when :line_gauge then line_gauge(first, **) when :sparkline then sparkline(first, **) when :bar_chart then bar_chart(first, **) when :chart then chart(first, **) when :scrollbar then scrollbar(first, **) when :calendar then calendar(first, **) when :canvas then canvas(first, **) when :clear then clear(first, **) when :cursor then cursor(first, **) when :overlay then overlay(first, **) when :center then center(first, **) when :ratatui_logo then ratatui_logo(first, **) when :ratatui_mascot then ratatui_mascot(first, **) else raise ArgumentError, "Unknown widget type: #{type.inspect}. " \ "Valid types: :block, :paragraph, :list, :table, :tabs, :gauge, :line_gauge, " \ ":sparkline, :bar_chart, :chart, :scrollbar, :calendar, :canvas, :clear, " \ ":cursor, :overlay, :center, :ratatui_logo, :ratatui_mascot" end end
Creates a widget by type symbol.
Plugin systems and config-driven UIs need to instantiate widgets by name. Without a dispatcher, you need tedious case statements or reflection.
This method routes widget creation through a single entry point. Pass the type as a symbol and the remaining parameters as kwargs.
Use it for dynamic UI generation, dashboard builders, or plugin architectures.
Also available as: tui.paragraph, tui.list, etc.
Examples
tui.widget(:paragraph, text: "Hello World") tui.widget(:list, items: %w[One Two Three]) # Config-driven widget creation widgets_config.each do |cfg| frame.render_widget(tui.widget(cfg[:type], **cfg[:options]), area) end
@param type [Symbol] Widget type (see error message for full list) @return [Widgets::*]