Class: Unmagic::Color::RGB::Named
- Inherits:
-
Object
- Object
- Unmagic::Color::RGB::Named
- Defined in:
- lib/unmagic/color/rgb/named.rb
Overview
Named colors support for RGB colors with X11 and CSS/W3C databases.
Provides access to named colors from two databases:
-
X11 database (658 colors) - default
-
CSS/W3C database (148 colors) - accessible via prefix
Five colors have different values between databases: gray/grey (#bebebe X11 vs #808080 CSS), green (#00ff00 X11 vs #008000 CSS), maroon (#b03060 X11 vs #800000 CSS), purple (#a020f0 X11 vs #800080 CSS)
Defined Under Namespace
Classes: Database, ParseError
Constant Summary collapse
- X11 =
X11 color database (658 colors)
Database.new( path: File.join(Color::DATA_PATH, "x11.jsonc"), name: "x11", )
- CSS =
CSS/W3C color database (148 colors)
Database.new( path: File.join(Color::DATA_PATH, "css.jsonc"), name: "css", aliases: ["w3c"], )
Class Method Summary collapse
-
.databases ⇒ Array<Database>
Get all available color databases.
-
.find_by_name(search) ⇒ Database?
Find a database by name or alias.
-
.parse(name) ⇒ RGB
Parse a named color and return its RGB representation.
-
.valid?(name) ⇒ Boolean
Check if a color name is valid.
Class Method Details
.databases ⇒ Array<Database>
Get all available color databases.
219 220 221 |
# File 'lib/unmagic/color/rgb/named.rb', line 219 def databases [X11, CSS] end |
.find_by_name(search) ⇒ Database?
Find a database by name or alias.
235 236 237 238 239 240 |
# File 'lib/unmagic/color/rgb/named.rb', line 235 def find_by_name(search) normalized = search.strip.downcase all_by_name.fetch(normalized) rescue KeyError nil end |
.parse(name) ⇒ RGB
Parse a named color and return its RGB representation.
Supports database prefixes (css:, w3c:, x11:) to select specific database. Without prefix, uses X11 database by default.
180 181 182 183 184 185 186 187 |
# File 'lib/unmagic/color/rgb/named.rb', line 180 def parse(name) database, color_name = resolve_database(name) color = database[color_name] raise ParseError, "Unknown color name in #{database.name} database: #{color_name.inspect}" unless color color end |
.valid?(name) ⇒ Boolean
Check if a color name is valid.
Supports database prefixes to check specific database.
203 204 205 206 |
# File 'lib/unmagic/color/rgb/named.rb', line 203 def valid?(name) database, color_name = resolve_database(name) database.valid?(color_name) end |