module RatatuiRuby::Widgets::CoerceableWidget::ClassMethods
Class methods extended onto widget classes.
Public Instance Methods
Source
# File lib/ratatui_ruby/widgets/coerceable_widget.rb, line 63 def coerce_args(first, kwargs) if first.is_a?(Hash) && kwargs.empty? unknown = first.keys - self::KNOWN_KEYS if unknown.any? && RatatuiRuby::Debug.enabled? raise ArgumentError, "#{name}: unknown keys #{unknown.inspect}" end new(**first.slice(*self::KNOWN_KEYS)) else new(**kwargs) end end
Coerces a bare Hash argument into keyword arguments.
@param first [Hash, nil] First positional argument (bare hash case) @param kwargs [Hash] Keyword arguments (normal splatted case) @return [Object] New instance of the widget class @raise [ArgumentError] In debug mode, if unknown keys are present