ターミナル(Bash)のウィンドウサイズが知りたい - Ruby

irbからだとENV['LINES']に行数、ENV['COLUMNS']に列数が入ってるんだけど、普通にrubyから実行するとnilになってる。
んで、何となくReadline.readline()したらENVにLINESとCOLUMNSが追加されてた。
何がしたいかっていうと、この画像の点線部分があるじゃん。
こんな風にウィンドウサイズぴったりに文字を出力するためにターミナルの横幅が知りたいわけなのですよ。
横幅っていうか正確には文字数なんだけども。

ソース

require 'readline'

def getEnv()
    lines = ENV['LINES']
    columns = ENV['COLUMNS']
    return lines, columns
end
def checkEnv()
    lines, columns = getEnv()
    print "ENV['LINES'] => ", lines
    puts
    print "ENV['COLUMNS'] => ", columns
    puts
end
def putLine()
    lines, columns = getEnv()
    columns.to_i.times do |t|
        print '-'
    end
    puts
end

checkEnv()
puts

Readline.readline('Readline>')
checkEnv()

putLine()
checkEnv()