Ruby Colorize gem - 有没有一种方法可以从彩色字符串中获取颜色名称?

时间:2018-04-08 13:57:40

标签: ruby rubygems colorize

我想得到最好的名字,或彩色字符串的代码。

例如:

"Hello".red.color => "red" or :red

我可以使用正则表达式,但希望确保没有快速的方法来执行此操作。感谢。

2 个答案:

答案 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)

注意:代码未经测试,但应该有效。