module CF::Spacing
Public Instance Methods
indented() { || ... }
click to toggle source
# File lib/cf/spacing.rb, line 5 def indented @@indentation += 1 yield ensure @@indentation -= 1 end
justify(str, width)
click to toggle source
# File lib/cf/spacing.rb, line 84 def justify(str, width) trimmed = trim_escapes(str) str.ljust(width + (str.size - trimmed.size)) end
line(msg = "")
click to toggle source
# File lib/cf/spacing.rb, line 12 def line(msg = "") return puts "" if msg.empty? start_line(msg) puts "" end
lines(blob)
click to toggle source
# File lib/cf/spacing.rb, line 24 def lines(blob) blob.each_line do |line| start_line(line) end line end
quiet?()
click to toggle source
# File lib/cf/spacing.rb, line 32 def quiet? false end
spaced(vals) { |val| ... }
click to toggle source
# File lib/cf/spacing.rb, line 36 def spaced(vals) num = 0 vals.each do |val| line unless quiet? || num == 0 yield val num += 1 end end
start_line(msg)
click to toggle source
# File lib/cf/spacing.rb, line 19 def start_line(msg) print " " * @@indentation unless quiet? print msg end
tabular(*rows)
click to toggle source
# File lib/cf/spacing.rb, line 45 def tabular(*rows) spacings = [] rows.each do |row| next unless row row.each.with_index do |col, i| next unless col width = text_width(col) if !spacings[i] || width > spacings[i] spacings[i] = width end end end columns = spacings.size rows.each do |row| next unless row row.each.with_index do |col, i| next unless col start_line justify(col, spacings[i]) print " " unless i + 1 == columns end line end end
text_width(str)
click to toggle source
# File lib/cf/spacing.rb, line 80 def text_width(str) trim_escapes(str).size end
trim_escapes(str)
click to toggle source
# File lib/cf/spacing.rb, line 76 def trim_escapes(str) str.gsub(/\e\[\d+m/, "") end