lib/cli/ui/frame/frame_style/box.rb in cli-ui-1.5.1 vs lib/cli/ui/frame/frame_style/box.rb in cli-ui-2.0.0

- old
+ new

@@ -1,5 +1,7 @@ +# typed: true + module CLI module UI module Frame module FrameStyle module Box @@ -10,14 +12,18 @@ DIVIDER = '┣' TOP_LEFT = '┏' BOTTOM_LEFT = '┗' class << self - def name - 'box' + extend T::Sig + + sig { override.returns(Symbol) } + def style_name + :box end + sig { override.returns(String) } def prefix VERTICAL end # Draws the "Open" line for this frame style @@ -32,11 +38,12 @@ # # ==== Output: # # ┏━━ Open ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # - def open(text, color:) + sig { override.params(text: String, color: CLI::UI::Color).returns(String) } + def start(text, color:) edge(text, color: color, first: TOP_LEFT) end # Draws a "divider" line for the current frame style # @@ -50,10 +57,11 @@ # # ==== Output: # # ┣━━ Divider ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # + sig { override.params(text: String, color: CLI::UI::Color).returns(String) } def divider(text, color:) edge(text, color: color, first: DIVIDER) end # Draws the "Close" line for this frame style @@ -69,23 +77,26 @@ # # ==== Output: # # ┗━━ Close ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # + sig { override.params(text: String, color: CLI::UI::Color, right_text: T.nilable(String)).returns(String) } def close(text, color:, right_text: nil) edge(text, color: color, right_text: right_text, first: BOTTOM_LEFT) end private + sig do + params(text: String, color: CLI::UI::Color, first: String, right_text: T.nilable(String)).returns(String) + end def edge(text, color:, first:, right_text: nil) color = CLI::UI.resolve_color(color) preamble = +'' preamble << color.code << first << (HORIZONTAL * 2) - text ||= '' unless text.empty? preamble << ' ' << CLI::UI.resolve_text("{{#{color.name}:#{text}}}") << ' ' end termwidth = CLI::UI::Terminal.width