| module Liquid |
| class TablerowloopDrop < Drop |
| def initialize(length, cols) |
| @length = length |
| @row = 1 |
| @col = 1 |
| @cols = cols |
| @index = 0 |
| end |
| |
| attr_reader :length, :col, :row |
| |
| def index |
| @index + 1 |
| end |
| |
| def index0 |
| @index |
| end |
| |
| def col0 |
| @col - 1 |
| end |
| |
| def rindex |
| @length - @index |
| end |
| |
| def rindex0 |
| @length - @index - 1 |
| end |
| |
| def first |
| @index == 0 |
| end |
| |
| def last |
| @index == @length - 1 |
| end |
| |
| def col_first |
| @col == 1 |
| end |
| |
| def col_last |
| @col == @cols |
| end |
| |
| protected |
| |
| def increment! |
| @index += 1 |
| |
| if @col == @cols |
| @col = 1 |
| @row += 1 |
| else |
| @col += 1 |
| end |
| end |
| end |
| end |