Class: RubySvgImageGenerator::Theme

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/ruby_svg_image_generator/part.rb,
lib/ruby_svg_image_generator/theme.rb,
lib/ruby_svg_image_generator/color_part.rb

Defined Under Namespace

Classes: ColorPart, Part

Instance Method Summary collapse

Constructor Details

#initialize(name, n_cols, n_rows) ⇒ Theme

Returns a new instance of Theme.



6
7
8
9
10
11
12
# File 'lib/ruby_svg_image_generator/theme.rb', line 6

def initialize(name, n_cols, n_rows)
  @name = name
  @n_cols = n_cols
  @n_rows = n_rows
  @parts = []
  @matrix = [[]]
end

Instance Method Details

#[](index) ⇒ Object



18
19
20
# File 'lib/ruby_svg_image_generator/theme.rb', line 18

def [](index)
  return @parts[index]
end

#each(&block) ⇒ Object



14
15
16
# File 'lib/ruby_svg_image_generator/theme.rb', line 14

def each &block
  @parts.each{|part| yield part}
end

#get_matrix(parts) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/ruby_svg_image_generator/theme.rb', line 22

def get_matrix parts
  l_parts = []
  parts.each_with_index  do |part, index|
    l_parts << self[index].get_matrix(part)
  end
  merge_parts(l_parts)
end

#get_random_matrixObject



30
31
32
33
34
35
36
37
# File 'lib/ruby_svg_image_generator/theme.rb', line 30

def get_random_matrix
  temp_parts = []
  @parts.each do |part|
    temp_parts << part.get_random_matrix
  end

  merge_parts(temp_parts)
end

#merge_parts(parts) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/ruby_svg_image_generator/theme.rb', line 39

def merge_parts(parts)
  matrix = []
  parts.each do |part|
    n_rows.times do |col|
      matrix[col] ||= Array.new(n_cols, "#ffffff")
      n_cols.times do |row|
        if part[col][row]!= 0
          matrix[col][row] = part[col][row]
        end
      end
    end
  end
  matrix
end

#n_colsObject



58
59
60
# File 'lib/ruby_svg_image_generator/theme.rb', line 58

def n_cols
  @n_cols
end

#n_rowsObject



62
63
64
# File 'lib/ruby_svg_image_generator/theme.rb', line 62

def n_rows
  @n_rows
end

#nameObject



54
55
56
# File 'lib/ruby_svg_image_generator/theme.rb', line 54

def name
  @name
end