0

私はset differenceを行い、awesome_print gemを使用して違いを印刷しています:

 ap (a | b ) - (a & b)

これにより、異なる 2 つの項目が出力されます。

2つの違いを強調または色付けする方法はありますか?

4

1 に答える 1

0

達成したいことをどのように行うことができるかわかりません。ご存知かもしれませんが、Awesome Print ではさまざまなオブジェクト (配列、ハッシュ、文字列など) の色を指定できます。Awesome Print のドキュメントはこちらです。

シンボル :cat と文字列 "dog" を含むセットを、セット "blue"、:cat "purplish"、および "dog" greenish で印刷したいとします。次のように行うことができます (配列の色がセットに適用されているように見えますが、これは理にかなっています)。

require 'awesome_print'
require 'set'

set = [:cat, 'dog'].to_set
ap set, options={color: {array: :blue, symbol: :purpleish, string: :greenish}}

セットは次のように表示されます。

ただし、2 つの要素が同じクラスの場合は、apそれぞれに対して次のコマンドを呼び出して、それらを個別に出力するのが最善の方法のようです。

set = ['cat', 'dog'].to_set
set.each_with_index { |e,i|
  ap e, options = { color: { string: i.zero? ? :greenish : :red } } }

以下が表示されます。

aとの各要素に特定の色を割り当てたい場合は、次のbようにするとよいでしょう。

set.each { |e| ap e, options = { color: { string: color_map(e) } } }

wherecolor_mapはあなたが書くメソッドです。

最初にオブジェクトを文字列に変換する必要があるかもしれJSONません (まだ文字列でない場合--私は に慣れていませんJSON)。

于 2014-04-02T07:23:04.333 に答える