Sha256: 1c3dcd3956d5dda377819ab73fef58995bf9ae2518819bda1135e9b9103483af
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
module Colors module ColormapRegistry @registry = {} def self.[](name) return name if name.is_a?(Colormap) name = String.try_convert(name) if @registry.key?(name) return @registry[name] else raise ArgumentError, "Unknown colormap name: %p" % name end end def self.register(cmap, name: nil, override_builtin: false) case name when String, Symbol name = name.to_s when nil name = cmap.name if name.nil? raise ArgumentError, "`name` cannot be omitted for unnamed colormaps" end else name = String.try_convert(name) if name.nil? raise ArgumentError, "`name` must be convertible to a String by to_str" end end if @registry.key?(name) if BUILTIN_COLORMAPS.key?(name) unless override_builtin raise ArgumentError, "Trying to re-register a builtin colormap: %p" % name end end warn "Trying to re-register the colormap %p which already exists" % name end unless cmap.is_a?(Colormap) raise ArgumentError, "Invalid value for registering a colormap (%p for a Colormap)" % cmap end @registry[name] = cmap end def self.unregister(name) if @registry.key?(name) if BUILTIN_COLORMAPS.key?(name) raise ArgumentError, "Unable to unregister the colormap %p which is a builtin colormap" % name end else @registry.delete(name) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
red-colors-0.4.0 | lib/colors/colormap_registry.rb |