A new FrameStyle for Shopify/cli-ui gem
require 'cli/ui'
require_relative 'fancy_box'
CLI::UI::StdoutRouter.enable
# The original default :box
CLI::UI::Frame.open('{{i}} Initializing', color: :cyan) do
puts "Testing Box"
end
puts
# Enable FancyBox as our framestyle
CLI::UI.frame_style = FancyBox
CLI::UI::Frame.open('{{i}} Initializing', color: :cyan) do
puts "Testing FancyBox"
end
puts
# Trim FancyBox down
FancyBox.width = 80
CLI::UI::Frame.open('{{i}} Initializing', color: :cyan) do
puts "Testing FancyBox 80 wide"
CLI::UI::Frame.divider("{{i}} Let's do a divider too")
puts "More information"
end
puts
# But what about the missing bar on other lines?
CLI::UI::Frame.open('{{i}} Initializing', color: :cyan) do
puts "Testing FancyBox 80 wide with lineterm" << FancyBox.lineterm
CLI::UI::Frame.divider("{{i}} Let's do a divider too")
puts "More information" << FancyBox.lineterm
end
![Screenshot 2025-02-03 at 1 51 24 PM](https://private-user-images.githubusercontent.com/320303/409240293-3a425dbc-13a4-4ee9-8a7d-ad91b080ce79.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzMzAxNDcsIm5iZiI6MTczOTMyOTg0NywicGF0aCI6Ii8zMjAzMDMvNDA5MjQwMjkzLTNhNDI1ZGJjLTEzYTQtNGVlOS04YTdkLWFkOTFiMDgwY2U3OS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQwMzEwNDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MzZhZTc5YTUwNGMyNjY3YzFjODIxMDUzMTEwNmU1YWM5YzBkNzJhOTAzM2JhMmQ2YWI4OThkMTc2ZTI1OTFkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.TOioceZkx0R085RbQSAxZZ1BfAnce-Ngn5VzHWW2fWA)