2010-12-11 8 views
4

色付きのライブラリ、着色された用語、着色剤がたくさんあります。 しかし、この行うことができます任意のがあります:より良いルビーターミナル着色ライブラリ

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

そしてworld!を太字にする必要があります。

それを明確にするために、私はこれを取得したい:

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

以上であっても、この(だけ短くする):これに代えて

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

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

あなたが提案しているAPIは意味がありません。ライブラリはどのように色/スタイルをリセットするかを知っていますか? – cam

+0

@cam:確かに意味があります。 htmlの hello worldから何を期待していますか? '?私はbashで同じことが欲しいし、私はすでにそのようなライブラリがあるかどうかを知ろうとしていました。 – tig

+0

あなたのHTMLの例は同等ではありません。 '' red#{"green" .green} red ".red'の出力はどれくらいですか? – cam

答えて

8

何も存在しないので、私はブラックジャックと売春婦スマート1で 、私自身が書いた - smart_colored

gem install smart_colored 

、あなたは私が宝石を作ったハイラインを使用している場合は

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

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

いいね。よくできました! – Evolve

0

libはHighline と呼ばれ、colorメソッドを持っています。say("This should be <%= color('bold', BOLD) %>!") String#boldの実装に簡単に使用できます。

+0

もう一度質問を読んでください – tig

+1

@tig、もう一度答えをお読みください。あなたが求めたのはString#boldメソッドです。ダニエルはあなたのための道を提供しました。これはString#redなどにも有効です。 –

+0

@マーク:私は彼らがすべて同じエラーをするので、私は簡単な着色ライブラリ(このような問題のGoogleは喜んで私を助けるだろう)が必要でないことを私の質問で語った - 彼らはネスティングを理解していない。ダニエルのコードを適用すると、私は色付けされたものと同じ結果になりました( 'HighLine.new.color("#{HighLine.new.color( 'hello'、HighLine :: RED)} world、 "HighLine :: BOLD)'): 'world ! 'は太字ではありません – tig