Class: Rubygame::Color::Palette
- Inherits:
-
Object
- Object
- Rubygame::Color::Palette
- Defined in:
- lib/rubygame/color/palettes/palette.rb
Overview
– Rubygame – Ruby code and bindings to SDL to facilitate game creation Copyright © 2007 John Croisant
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++
Instance Method Summary collapse
-
#[](name) ⇒ Object
Retrieve a color by name from this palette.
-
#[]=(name, color) ⇒ Object
Store a color by name in this palette.
-
#include(palette) ⇒ Object
Include another palette in this one.
-
#initialize(colors = {}) ⇒ Palette
constructor
Create a new Palette with the given name => color pairs.
-
#uninclude(palette) ⇒ Object
Remove the other palette from this one, so that it won’t be searched for missing colors anymore.
Constructor Details
#initialize(colors = {}) ⇒ Palette
Create a new Palette with the given name => color pairs.
23 24 25 26 27 28 29 30 |
# File 'lib/rubygame/color/palettes/palette.rb', line 23 def initialize( colors = {} ) @includes = [] @colors = {} colors.each_pair do |name, color| @colors[sanitize_name(name)] = color end end |
Instance Method Details
#[](name) ⇒ Object
Retrieve a color by name from this palette.
The name can be a Symbol or String. See #sanitize_name.
If the color cannot be found in this palette, search each of the #included palettes (recursively, depth-first, to a maximum depth of 5 levels).
If the color is not found in this palette or any included palettes, raise IndexError.
43 44 45 46 47 |
# File 'lib/rubygame/color/palettes/palette.rb', line 43 def []( name ) c = lookup( sanitize_name( name ) ) raise IndexError, "unknown color #{name}" unless c return c end |
#[]=(name, color) ⇒ Object
Store a color by name in this palette. See #sanitize_name
50 51 52 53 |
# File 'lib/rubygame/color/palettes/palette.rb', line 50 def []=( name, color ) name = sanitize_name( name ) @colors[name] = color end |
#include(palette) ⇒ Object
Include another palette in this one. If a color cannot be found in this palette, the included palette(s) will be searched. See also #uninclude.
Has no effect if the palette is already included.
60 61 62 |
# File 'lib/rubygame/color/palettes/palette.rb', line 60 def include( palette ) @includes += [palette] unless @includes.include? palette end |
#uninclude(palette) ⇒ Object
Remove the other palette from this one, so that it won’t be searched for missing colors anymore. Has no effect if the other palette hasn’t been #included.
67 68 69 |
# File 'lib/rubygame/color/palettes/palette.rb', line 67 def uninclude( palette ) @includes -= [palette] end |