Module: Pangrid::ExolveWriter
- Included in:
- ExolveBlank, ExolveFilled
- Defined in:
- lib/pangrid/plugins/exolve.rb
Instance Method Summary collapse
- #format_clues(numbers, clues) ⇒ Object
- #format_headers(xw) ⇒ Object
- #indent(lines) ⇒ Object
- #write(xw) ⇒ Object
Instance Method Details
#format_clues(numbers, clues) ⇒ Object
35 36 37 |
# 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) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/pangrid/plugins/exolve.rb', line 22 def format_headers(xw) headers = [ 'id', 'replace-with-unique-id', 'title', xw.title, 'setter', xw., '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) ⇒ Object
39 40 41 |
# File 'lib/pangrid/plugins/exolve.rb', line 39 def indent(lines) lines.map {|x| " " + x} end |
#write(xw) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# 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 |