class Blab::Formatter
Constants
- DEFAULT_MAX_LENGTH
- ELLIPSIS
Attributes
max_length[R]
Public Class Methods
new(max_length = DEFAULT_MAX_LENGTH)
click to toggle source
# File lib/blab/formatter.rb, line 10 def initialize(max_length = DEFAULT_MAX_LENGTH) @max_length = max_length end
Public Instance Methods
format(object)
click to toggle source
# File lib/blab/formatter.rb, line 14 def format(object) formatted = prepare_for_inspection(object).inspect return formatted if formatted.length < max_length beginning = truncate(formatted, 0, max_length / 2) ending = truncate(formatted, -max_length / 2, -1) "#{beginning}#{ELLIPSIS}#{ending}" end
prepare_array(array)
click to toggle source
# File lib/blab/formatter.rb, line 34 def prepare_array(array) array.map { |element| prepare_for_inspection(element) } end
prepare_for_inspection(object)
click to toggle source
# File lib/blab/formatter.rb, line 23 def prepare_for_inspection(object) case object when Array prepare_array(object) when Hash prepare_hash(object) else object end end
prepare_hash(input_hash)
click to toggle source
# File lib/blab/formatter.rb, line 38 def prepare_hash(input_hash) input_hash.inject({}) do |output_hash, key_and_value| key, value = key_and_value.map { |element| prepare_for_inspection(element) } output_hash[key] = value output_hash end end
Private Instance Methods
truncate(str, start_ind, end_ind)
click to toggle source
# File lib/blab/formatter.rb, line 48 def truncate(str, start_ind, end_ind) str[start_ind..end_ind].sub(/\e\[\d+$/, '') end