Class: UI::ColorFader
- Inherits:
-
Object
- Object
- UI::ColorFader
- Defined in:
- lib/ektoplayer/ui/colors.rb
Class Method Summary collapse
Instance Method Summary collapse
- #fade(size) ⇒ Object
- #fade2(size) ⇒ Object
-
#initialize(colors) ⇒ ColorFader
constructor
A new instance of ColorFader.
Constructor Details
#initialize(colors) ⇒ ColorFader
Returns a new instance of ColorFader.
5 6 7 |
# File 'lib/ektoplayer/ui/colors.rb', line 5 def initialize(colors) @colors = colors.map { |attrs| UI::Colors.set(nil, *attrs) } end |
Class Method Details
._fade(colors, size) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/ektoplayer/ui/colors.rb', line 12 def ColorFader._fade(colors, size) return [] if size < 1 return [colors[0]] * size if colors.size == 1 part_len = (size / colors.size) diff = size - part_len * colors.size (colors.size - 1).times.map do |color_i| [colors[color_i]] * part_len end.flatten.concat( [colors[-1]] * (part_len + diff) ) end |
._fade2(colors, size) ⇒ Object
24 25 26 27 |
# File 'lib/ektoplayer/ui/colors.rb', line 24 def ColorFader._fade2(colors, size) half = size / 2 ColorFader._fade(colors, half) + ColorFader._fade(colors.reverse, size - half) end |
Instance Method Details
#fade(size) ⇒ Object
9 |
# File 'lib/ektoplayer/ui/colors.rb', line 9 def fade(size) ColorFader._fade(@colors, size) end |
#fade2(size) ⇒ Object
10 |
# File 'lib/ektoplayer/ui/colors.rb', line 10 def fade2(size) ColorFader._fade2(@colors, size) end |