我正在做一组差异并使用 awesome_print gem 打印差异:
ap (a | b ) - (a & b)
这会打印出两个不同的项目。
有没有办法突出或着色两者之间的差异?
我正在做一组差异并使用 awesome_print gem 打印差异:
ap (a | b ) - (a & b)
这会打印出两个不同的项目。
有没有办法突出或着色两者之间的差异?
我不明白你怎么能做你想做的事。您可能知道,Awesome Print 允许您指定不同对象(数组、散列、字符串等)的颜色。Awesome Print 文档在这里。
假设您希望打印一个包含符号 :cat 和字符串 "dog" 的集合,其中集合 "blue"、:cat "purplish" 和 "dog" 呈绿色。您可以按如下方式执行此操作(看起来数组的颜色已应用于集合,这是有道理的):
require 'awesome_print'
require 'set'
set = [:cat, 'dog'].to_set
ap set, options={color: {array: :blue, symbol: :purpleish, string: :greenish}}
并且该集合将显示如下:
但是,当这两个元素属于同一类时,您可以做的最好的事情似乎是分别打印它们,通过ap
为每个元素调用:
set = ['cat', 'dog'].to_set
set.each_with_index { |e,i|
ap e, options = { color: { string: i.zero? ? :greenish : :red } } }
显示:
a
如果您想为and的每个元素分配特定的颜色b
,您可能需要执行以下操作:
set.each { |e| ap e, options = { color: { string: color_map(e) } } }
color_map
你要写的方法在哪里。
您可能需要先将JSON
对象转换为字符串(如果它还不是字符串——我不熟悉JSON
)。