我想得到最好的名字,或彩色字符串的代码。
例如:
"Hello".red.color
=> "red" or :red
我可以使用正则表达式,但希望确保没有快速的方法来执行此操作。感谢。
答案 0 :(得分:2)
由于"Hello".colorize(:red)
返回一个字符串,我认为不可能。特定颜色的正则表达式可能是一种很好的方法。
私人函数scan_for_colors
https://github.com/fazibear/colorize/blob/7c0b50a278da01870be4435ec1b5753c2544e8f3/lib/colorize/instance_methods.rb#L108是一个很好的起点...
更新:
此解决方案可以使用某种颜色......
String.colors.find{|x| stringToCheck.colorize(x) === stringToCheck}
答案 1 :(得分:0)
重新进行monkeypatch它!
Colorize::InstanceMethods.prepend(Module.new do # surround colorize
def colorize(params)
super(params).extend(Module.new do # extend the returned string
def __color__
params
end
end)
end
end)
注意:代码未经测试,但应该有效。