문제

There are plenty of coloring libraries: colored, term-ansicolor. But is there any which can do this:

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

And world! should be bold.

To make it clear, I want to get this:

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

or better even this (just shorter):

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

instead of this:

"\e[1m\e[31mhello\e[0m world!\e[0m"
도움이 되었습니까?

해결책

As there is none, I wrote my own, with blackjack and hookers smart one — smart_colored

gem install smart_colored

and run

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

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

다른 팁

The lib is called Highline It has a color method: say("This should be <%= color('bold', BOLD) %>!") Which can be easily used to implement String#bold.

In case you are using highline I made a gem that extends colors and provides helpers such as:

say_bold 'this is bold text'

https://github.com/bonzofenix/highline-color

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top