Module: StoryTeller::Terminal

Defined in:
lib/story_teller/terminal.rb

Overview

module Terminal

Constant Summary collapse

MINIMUM_WORD_WRAP =
1

Class Method Summary collapse

Class Method Details

.columns(output = $stdout) ⇒ Object



45
46
47
48
49
50
51
52
53
54
# File 'lib/story_teller/terminal.rb', line 45

def columns(output = $stdout)
  return output.winsize[1] if output.respond_to?(:winsize) && output.tty?

  console = ::IO.console
  return console.winsize[1] if console.respond_to?(:winsize)

  nil
rescue IOError, SystemCallError
  nil
end

.default_word_wrapObject



41
42
43
# File 'lib/story_teller/terminal.rb', line 41

def default_word_wrap
  StoryTeller::Config.defaults[:default_word_wrap]
end

.word_wrap(output = $stdout) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/story_teller/terminal.rb', line 32

def word_wrap(output = $stdout)
  terminal_columns = columns(output)
  return default_word_wrap if terminal_columns.nil? || terminal_columns.to_i <= 0

  [terminal_columns.to_i - 1, MINIMUM_WORD_WRAP].max.tap do |n|
    log.debug "word_wrap: #{n}"
  end
end