class Rollio::Table

Attributes

key[R]
label[R]
roller[R]
table_set[R]

Public Class Methods

new(table_set:, key:, label:, &block) click to toggle source
# File lib/rollio/table.rb, line 7
def initialize(table_set:, key:, label:, &block)
  @key = key
  @table_set = table_set
  @label = label
  @range_set = RangeSet.new(table: self)
  instance_exec(self, &block)  if block_given?
end

Public Instance Methods

entry(range, result = nil, **kwargs, &inner_table_config) click to toggle source
# File lib/rollio/table.rb, line 34
def entry(range, result = nil, **kwargs, &inner_table_config)
  @range_set.add(
    table: self,
    range: range,
    result: result,
    inner_table_config: inner_table_config,
    **kwargs
  )
end
render() click to toggle source
# File lib/rollio/table.rb, line 15
def render
  header = "Table: #{key}"
  header = "#{header} - #{label}" unless label == key
  puts header
  puts '-' * header.length
  roller.render
  @range_set.render
end
roll(text) click to toggle source
# File lib/rollio/table.rb, line 30
def roll(text)
  @roller = Roller.new(text)
end
roll!(with: roller) click to toggle source
# File lib/rollio/table.rb, line 24
def roll!(with: roller)
  the_roller = with.is_a?(Roller) ? with : Roller.new(with)
  roll = the_roller.roll!
  @range_set.resolve(roll: roll)
end