2016-05-16 6 views
-3

テキストを色付けしようとしています。私は青いテキストがほしいと言う。カラーコードと文字列の補間

"\e[34mThis is blue text.\e[0m" 

私は(各色ごとに1)複数のメソッドを作成するdefine_methodを使用しています:これは私がそれを得る方法です。私は配列の各色のカラーコードを保持します。私は、色配列とカラーコードの両方を反復処理し、次の操作を行います。

"\e#{code}m[#{self}\e[0m" 

私はそれを実行すると、私が代わりに色付きテキストの"m[test"を取得します。

どのような考えですか? #{code}の代わりに、私は実際のコードを入れて、それは動作しますが、それは20 ifのように、色ごとに1つで、DRYにはなりません。

+0

あなたの問題は、rubygemsとは関係ありません。 – sawa

+0

タグを追加すると思いますので、作成しています。 –

答えて

3

あなたはおそらくコピー&ペーストの被害者です:)

#    ⇓ incorrect 
puts "\e#{code}m[#{self}\e[0m" 

#  ⇓ correct 
puts "\e[#{code}m#{self}\e[0m" 

開く角括弧はm\eに従うべきではありません。

+0

私はあなたに十分に感謝することはできません:) –