Class: UI::ColorFader

Inherits:
Object
  • Object
show all
Defined in:
lib/ektoplayer/ui/colors.rb

Class Method Summary collapse

Instance Method Summary collapse

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