class Flico::Grid

Constants

CANV_HEIGHT
CANV_WIDTH
GRID

Public Instance Methods

canv_height() click to toggle source
# File lib/flico/grid.rb, line 15
def canv_height
        CANV_HEIGHT
end
canv_width() click to toggle source
# File lib/flico/grid.rb, line 11
def canv_width
        CANV_WIDTH
end
cell_height(name) click to toggle source
# File lib/flico/grid.rb, line 39
def cell_height(name)
        cell_size(CANV_HEIGHT, rows, size_multiplier(column_cells, name))
end
cell_rectangle(name) click to toggle source
# File lib/flico/grid.rb, line 65
def cell_rectangle(name)
        row, column = row_cells.find_index {|row| row.include? name }, column_cells.find_index {|row| row.include? name }
        Cell.new(column * (CANV_WIDTH / columns), row * (CANV_HEIGHT / rows), cell_width(name), cell_height(name))
end
cell_width(name) click to toggle source
# File lib/flico/grid.rb, line 35
def cell_width(name)
        cell_size(CANV_WIDTH, columns, size_multiplier(row_cells, name))
end
column_cells() click to toggle source
# File lib/flico/grid.rb, line 23
def column_cells
        GRID.transpose
end
columns() click to toggle source
# File lib/flico/grid.rb, line 19
def columns
        GRID.max_by(&:size).size
end
crop_rectangle(cell_name, image_width, image_height) click to toggle source
# File lib/flico/grid.rb, line 43
def crop_rectangle(cell_name, image_width, image_height)
        x, y = 0, 0
        image = Cell.new(image_width, image_height)
        cell = cell_rectangle(cell_name)

        unless image.aspect_ratio >= cell.aspect_ratio
                final_width = image.width
                final_height = image.height - (image.height - (image.width / cell.aspect_ratio))
        else
                final_width = image_width - (image.width - (image.height * cell.aspect_ratio))
                final_height = image.height
        end

        crop_rectangle = Cell.new(x, y, final_width, final_height)
        crop_rectangle
end
resize_rectangle(cell_name, image_width, image_height) click to toggle source
# File lib/flico/grid.rb, line 60
def resize_rectangle(cell_name, image_width, image_height)
        image = Cell.new(image_width, image_height)
        cell_rectangle(cell_name)
end
row_cells() click to toggle source
# File lib/flico/grid.rb, line 31
def row_cells
        GRID
end
rows() click to toggle source
# File lib/flico/grid.rb, line 27
def rows
        GRID.size
end

Private Instance Methods

cell_size(total, divisions, multiplier) click to toggle source
# File lib/flico/grid.rb, line 76
def cell_size(total, divisions, multiplier)
        (multiplier == 0) ? 0 : ((total / divisions) * multiplier)
end
size_multiplier(table, name) click to toggle source
# File lib/flico/grid.rb, line 72
def size_multiplier(table, name)
        table.map {|row| row.count(name)}.max
end