class Term::ANSIColor::Attribute

def self.[](name)

def self.[](name)
  case
  when self === name                              then name
  when Array === name                             then nearest_rgb_color name
  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