Better ruby terminal coloring library

梦想的初衷 提交于 2020-01-01 12:10:38

问题


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"

回答1:


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



回答2:


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.




回答3:


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



来源:https://stackoverflow.com/questions/4419072/better-ruby-terminal-coloring-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!