class Fbe::Award::Bylaw
A bylaw.
def initialize
def initialize @lines = [] @intro = '' @lets = {} end
def intro(text)
def intro(text) @intro = text end
def let(key, value)
def let(key, value) @lets[key] = value end
def line(line)
def line(line) line = line.gsub(/\$\{([a-z_0-9]+)\}/) { |_x| "**#{@lets[Regexp.last_match[1].to_sym]}**" } @lines << line end
def markdown
def markdown pars = [] pars << "#{@intro}." unless @intro.empty? pars << 'Here is how it\'s calculated:' if @lines.size == 1 pars << "Just #{@lines.first}." else pars += @lines.each_with_index.map { |t, i| "#{i.zero? ? 'First' : 'Then'}, #{t}." } end pars.join(' ').gsub('. Then, award ', ', and award ').gsub(/\s{2,}/, ' ') end
def revert(num)
def revert(num) @lines.slice!(-num, num) end