私はset differenceを行い、awesome_print gemを使用して違いを印刷しています:
ap (a | b ) - (a & b)
これにより、異なる 2 つの項目が出力されます。
2つの違いを強調または色付けする方法はありますか?
私はset differenceを行い、awesome_print gemを使用して違いを印刷しています:
ap (a | b ) - (a & b)
これにより、異なる 2 つの項目が出力されます。
2つの違いを強調または色付けする方法はありますか?
達成したいことをどのように行うことができるかわかりません。ご存知かもしれませんが、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
)。