Κρυμμένα διαμάντια του CLI::UI 💎

Ανακάλυψε τα κρυμμένα διαμάντια του CLI::UI: προσθήκη συνδέσμων, εκτύπωση πινάκων και διαχωρισμός frames για καλύτερη εμπειρία στη γραμμή εντολών.

Δημοσιεύτηκε · Αναθεωρήθηκε · 97 λέξεις · Προβολή ως Markdown


Περιεχόμενα
  1. Προσθήκη συνδέσμων 🔗
  2. Εκτύπωση πινάκων
  3. Διαχωρισμός frames

Το CLI::UI είναι ένα Ruby gem που σχεδιάστηκε για να βελτιώνει τα command-line interfaces (CLIs), προσφέροντας ένα framework για τη μορφοποίηση και το styling του κειμένου εξόδου. Ενσωματώνεται άψογα με άλλα Ruby gems όπως το Thor, επεκτείνοντας ακόμα περισσότερο τις δυνατότητές του.

Υπάρχουν μερικά ωραία χαρακτηριστικά που δεν τεκμηριώνονται πουθενά. Ορίστε κάποια από αυτά 👇

Προσθήκη συνδέσμων 🔗#

CLI::UI.link
Ruby
puts CLI::UI.link('https://logs.panos.codes', 'My blog')

Εκτύπωση πινάκων#

Thor CLI print_table

Η μορφοποίηση του CLI::UI μπορεί να συνδυαστεί με το gem Thor, που μας δίνει πρόσβαση στη μέθοδο print_table

Ruby
   row_1 = [
    CLI::UI.fmt("{{red:Header}}"),
    CLI::UI.fmt("{{red:Value}}"),
  ]

  row_2 = [
    CLI::UI.fmt('{{info:Accept-Encoding:}} '),  
    CLI::UI.fmt('{{white:gzip, deflate, br, zstd}}')
  ]

  row_3 = [
    CLI::UI.fmt('{{info:Accept:}} '),  
    CLI::UI.fmt('{{white:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8}}')
  ]

  row_4 = [
    CLI::UI.fmt('{{info:Cache-Control:}} '),  
    CLI::UI.fmt('{{white:no-cache}}')
  ]

  Thor::Shell::Basic.new.print_table([ row_1, row_2, row_3, row_4]) 

Διαχωρισμός frames#

CLI::UI Frame seperation

Το CLI::UI.Frame μας δίνει την πρακτική μέθοδο .divider

Ruby
CLI::UI::Frame.open(CLI::UI.link('https://logs.panos.codes', 'My blog'), timing: false) do
  CLI::UI::Frame.divider('Headers', frame_style: :bracket)
  Thor::Shell::Basic.new.print_table([ row_1, row_2, row_3, row_4]) 

  CLI::UI::Frame.divider('Response')
  puts "<html>...</html>"
end