module Pangrid::ExolveWriter

Public Instance Methods

format_clues(numbers, clues) click to toggle source
# File lib/pangrid/plugins/exolve.rb, line 35
def format_clues(numbers, clues)
  numbers.zip(clues).map {|n, c| "#{n.to_s.rjust(2)} #{c}"}
end
format_headers(xw) click to toggle source
# File lib/pangrid/plugins/exolve.rb, line 22
def format_headers(xw)
  headers = [
    'id', 'replace-with-unique-id',
    'title', xw.title,
    'setter', xw.author,
    'width', xw.width,
    'height', xw.height,
    'copyright', xw.copyright,
    'prelude', xw.preamble
  ]
  headers.each_slice(2).select {|k, v| v}.map {|k, v| "exolve-#{k}: #{v}"}
end
indent(lines) click to toggle source
# File lib/pangrid/plugins/exolve.rb, line 39
def indent(lines)
  lines.map {|x| "  " + x}
end
write(xw) click to toggle source
# File lib/pangrid/plugins/exolve.rb, line 8
def write(xw)
  headers = format_headers(xw)
  across, down = xw.number
  grid = format_grid(xw)
  ac = format_clues(across, xw.across_clues)
  dn = format_clues(down, xw.down_clues)
  across = ["exolve-across:"] + indent(ac)
  down = ["exolve-down:"] + indent(dn)
  grid = ["exolve-grid:"] + indent(grid)
  body = headers + grid + across + down
  out = ["exolve-begin"] + indent(body) + ["exolve-end"]
  out.join("\n")
end