Module: CLI::UI::Widgets

Defined in:
lib/cli/ui/widgets.rb,
lib/cli/ui/widgets/base.rb,
lib/cli/ui/widgets/status.rb

Overview

Widgets are formatter objects with more custom implementations than the other features, which all center around formatting text with colours, etc.

If you want to extend CLI::UI with your own widgets, you may want to do something like this:

require('cli/ui')
class MyWidget < CLI::UI::Widgets::Base
  # ...
end
CLI::UI::Widgets.register('my-widget') { MyWidget }
puts(CLI::UI.fmt("{{@widget/my-widget:args}}"))

Defined Under Namespace

Classes: Base, InvalidWidgetArguments, InvalidWidgetHandle, Status

Constant Summary collapse

MAP =
{}

Class Method Summary collapse

Class Method Details

.availableObject

All available widgets by name


46
47
48
# File 'lib/cli/ui/widgets.rb', line 46

def self.available
  MAP.keys
end

.lookup(handle) ⇒ Object

Looks up a widget by handle

Raises

Raises InvalidWidgetHandle if the widget is not available.

Returns

A callable widget, to be invoked like `.call(argstring)`


38
39
40
41
42
# File 'lib/cli/ui/widgets.rb', line 38

def self.lookup(handle)
  MAP.fetch(handle.to_s).call
rescue KeyError, NameError
  raise(InvalidWidgetHandle, handle)
end

.register(name, &cb) ⇒ Object


23
24
25
# File 'lib/cli/ui/widgets.rb', line 23

def self.register(name, &cb)
  MAP[name] = cb
end