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