2010-12-11 4 views
4

Il existe de nombreuses bibliothèques de coloriage: colorées, terme-ansicolor. Mais est-il qui peut le faire:Mieux bibliothèque de coloriage terminale ruby ​​

puts "#{'hello'.red} world!".bold 

Et world! doit être en gras.

Pour être clair, je veux ceci:

"\e[1m\e[31mhello\e[0m\e[1m world!\e[0m" 

ou mieux encore ce (juste plus court):

"\e[1;31mhello\e[0;1m world!\e[0m" 

au lieu de ceci:

"\e[1m\e[31mhello\e[0m world!\e[0m" 
+2

L'API que vous proposez n'a aucun sens. Comment la bibliothèque sait-elle quand réinitialiser les couleurs/styles? – cam

+0

@cam: Cela a certainement du sens. Qu'attendez-vous de html ' bonjour monde! '? Je veux la même chose à bash et j'essayais juste de savoir s'il y a déjà une telle bibliothèque et sinon je vais écrire la mienne. – tig

+0

votre exemple HTML n'est pas équivalent. Quelle est la sortie attendue de '" red # {"green" .green} red ".red'? – cam

Répondre

8

Comme il n'y en a pas, je l'ai écrit moi-même, avec blackjack et des putes smart one - smart_colored

gem install smart_colored 

et exécuter

require 'smart_colored/extend' 
# without extend you'll need to use 'string'.colored.red 

puts "#{'hello'.red} world!".bold 
+0

Ça a l'air sympa. Bon travail! – Evolve

0

Le lib est appelé Highline Il a une méthode color: say("This should be <%= color('bold', BOLD) %>!") Qui peut être facilement utilisé pour implémenter String#bold.

+0

S'il vous plaît, lisez la question une fois de plus – tig

+1

@tig, lisez la réponse une fois de plus. Ce que vous avez demandé est une méthode en gras. Daniel a fourni un moyen pour vous d'en faire un. Cela fonctionnerait pour String # red, etc, aussi. –

+0

@Mark: J'ai dit dans ma question que je n'ai pas besoin de bibliothèque de coloriage simple (avec un tel problème, google m'aiderait avec plaisir) car ils font tous la même erreur - ils ne comprennent pas l'imbrication. L'adaptation du code de Daniel m'a donné le même résultat que la couleur ('HighLine.new.color (" # {HighLine.new.color ('bonjour', HighLine :: RED)} monde! ", HighLine :: BOLD)'): 'monde ! 'n'est pas gras – tig