class Term::ANSIColor::Attribute
def self.[](name, true_coloring: false)
def self.[](name, true_coloring: false) true_coloring ||= Term::ANSIColor.true_coloring? if true_coloring case when self === name then name when Array === name then true_color name when name.respond_to?(:to_rgb_triple) then true_color(name.to_rgb_triple.to_a) when name.to_s =~ /\A(on_)?(\d+)\z/ then get "#$1color#$2" when name.to_s =~ /\A#([0-9a-f]{3}){1,2}\z/i then true_color name when name.to_s =~ /\Aon_#([0-9a-f]{3}){1,2}\z/i then on_true_color name else get name end else case when self === name then name when Array === name then nearest_rgb_color name when name.respond_to?(:to_rgb_triple) then nearest_rgb_color(name.to_rgb_triple.to_a) when name.to_s =~ /\A(on_)?(\d+)\z/ then get "#$1color#$2" when name.to_s =~ /\A#([0-9a-f]{3}){1,2}\z/i then nearest_rgb_color name when name.to_s =~ /\Aon_#([0-9a-f]{3}){1,2}\z/i then nearest_rgb_on_color name else get name end end end