class ToAscii::Visitor

Public Class Methods

columns(*args) click to toggle source
# File lib/to_ascii/visitor.rb, line 40
def columns(*args)
  @columns ||= []
  return @columns if args.length == 0

  @columns += args
end
for_class(clazz) click to toggle source
# File lib/to_ascii/visitor.rb, line 36
def for_class(clazz)
  "#{clazz.name}ToAscii".constantize
end
new() click to toggle source
# File lib/to_ascii/visitor.rb, line 50
def initialize
  @columns = self.class.columns.dup
end

Public Instance Methods

cell_border() click to toggle source
# File lib/to_ascii/visitor.rb, line 60
def cell_border
  @cell_border ||= "|#{columns.map { |c| '-' * c[1] }.join('|')}|"
end
columns(*args) click to toggle source
# File lib/to_ascii/visitor.rb, line 54
def columns(*args)
  return @columns if args.length == 0

  @columns += args
end
headers(io) click to toggle source
# File lib/to_ascii/visitor.rb, line 64
def headers(io)
  io.puts cell_border
  io.puts "|#{columns.map { |c| c[0].to_s.center(c[1]) }.join('|')}|"
  io.puts cell_border
end
visit(o) click to toggle source
# File lib/to_ascii/visitor.rb, line 70
def visit(o)
  "|#{columns.map { |c| o.send(c[0]).to_s.center(c[1]) }.join('|')}|"
end