class ProgressBar::Calculators::Length
Attributes
Public Class Methods
Source
# File lib/ruby-progressbar/calculators/length.rb, line 8 def initialize(options = {}) self.length_override = options[:length] self.output = options[:output] self.current_length = nil end
Public Instance Methods
Source
# File lib/ruby-progressbar/calculators/length.rb, line 25 def calculate_length length_override || terminal_width || 80 end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 14 def length current_length || reset_length end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 18 def length_changed? previous_length = current_length self.current_length = calculate_length previous_length != current_length end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 33 def length_override=(other) @length_override ||= ENV['RUBY_PROGRESS_BAR_LENGTH'] || other @length_override = @length_override.to_i if @length_override end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 29 def reset_length self.current_length = calculate_length end
Private Instance Methods
Source
# File lib/ruby-progressbar/calculators/length.rb, line 56 def dynamic_width if output && output.tty? && output.respond_to?(:winsize) dynamic_width_via_output_stream_object elsif IO.console dynamic_width_via_io_object else dynamic_width_via_system_calls end end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 85 def dynamic_width_stty `stty size 2>/dev/null`.split[1].to_i end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 89 def dynamic_width_tput `tput cols 2>/dev/null`.to_i end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 76 def dynamic_width_via_io_object _rows, columns = IO.console.winsize columns end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 71 def dynamic_width_via_output_stream_object _rows, columns = output.winsize columns end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 81 def dynamic_width_via_system_calls dynamic_width_stty.nonzero? || dynamic_width_tput end
Source
# File lib/ruby-progressbar/calculators/length.rb, line 43 def terminal_width return 80 unless unix? result = dynamic_width (result < 20) ? 80 : result rescue 80 end
This code was copied and modified from Rake, available under MIT-LICENSE Copyright © 2003, 2004 Jim Weirich rubocop:disable Style/RescueStandardError
Source
# File lib/ruby-progressbar/calculators/length.rb, line 93 def unix? RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i end