module Chamomile::ViewDSL
Instance methods for building layout trees from view. Included by Application β all methods run in the modelβs own context, so @ivars, quit, tick, etc. work naturally.
Public Instance Methods
Source
# File lib/chamomile/view_dsl.rb, line 19 def horizontal(align: :top, &block) layout = Layout::Horizontal.new(align: align) _layout_stack.push(layout) yield _layout_stack.pop _layout_stack.empty? ? layout : (_layout_stack.last.add(layout) && nil) rescue StandardError _layout_stack.pop raise end
Source
# File lib/chamomile/view_dsl.rb, line 46 def list(items, **opts) _add_to_stack(Layout::List.new(items, **opts)) end
Source
# File lib/chamomile/view_dsl.rb, line 30 def panel(title: nil, width: nil, border: :rounded, color: nil, focused: false, &block) widget = Layout::Panel.new(title: title, width: width, border: border, color: color, focused: focused) _layout_stack.push(widget) block.call if block_given? _layout_stack.pop _layout_stack.empty? ? widget : (_layout_stack.last.add(widget) && nil) rescue StandardError _layout_stack.pop raise end
Source
# File lib/chamomile/view_dsl.rb, line 62 def raw(string) _add_to_stack(Layout::Raw.new(string)) end
Source
# File lib/chamomile/view_dsl.rb, line 58 def spinner(**opts) _add_to_stack(Layout::Spinner.new(**opts)) end
Source
# File lib/chamomile/view_dsl.rb, line 54 def status_bar(content, **opts) _add_to_stack(Layout::StatusBar.new(content, **opts)) end
Source
# File lib/chamomile/view_dsl.rb, line 50 def table(data, **opts) _add_to_stack(Layout::Table.new(data, **opts)) end
Source
# File lib/chamomile/view_dsl.rb, line 42 def text(content, **opts) _add_to_stack(Layout::Text.new(content, **opts)) end
Source
# File lib/chamomile/view_dsl.rb, line 8 def vertical(align: :left, &block) layout = Layout::Vertical.new(align: align) _layout_stack.push(layout) yield _layout_stack.pop _layout_stack.empty? ? layout : (_layout_stack.last.add(layout) && nil) rescue StandardError _layout_stack.pop raise end