Class: Array
Overview
String Formatting
Direct Known Subclasses
Constant Summary collapse
- SingleLength =
50
Instance Method Summary collapse
- #align(ellipsis_limit = nil) ⇒ Object
- #common_affix ⇒ Object
- #common_prefix ⇒ Object
- #inspect ⇒ Object
- #original_inspect ⇒ Object
Instance Method Details
#align(ellipsis_limit = nil) ⇒ Object
297 298 299 300 301 302 303 304 305 |
# File 'lib/pretty_debug.rb', line 297 def align ellipsis_limit = nil transpose.map do |col| just = case col.first; when Numeric then :rjust; else :ljust end width = col.map{|cell| cell.to_s.length}.max max = ellipsis_limit || width col.map{|cell| cell.to_s.ellipsis(max).__send__(just, width > max ? max : width)} end.transpose end |
#common_affix ⇒ Object
315 316 317 318 319 320 321 |
# File 'lib/pretty_debug.rb', line 315 def common_affix each{|e| class_check(String, e){"All elements must be a String".freeze}} first, *others = self i = - 1 i -= 1 while first[i] and others.all?{|s| first[i] == s[i]} first[i + 1, -(i + 1)] end |
#common_prefix ⇒ Object
306 307 308 309 310 311 312 313 314 |
# File 'lib/pretty_debug.rb', line 306 def common_prefix each{|e| class_check(String, e){"All elements must be a String".freeze}} first, *others = self i = 0 i += 1 while first[i] and others.all?{|s| first[i] == s[i]} first[0, i] # This is more elegant, but cannot be generalized to `common_affix`. ## first[0, (0...first.length).find{|i| first[i].! or others.any?{|s| first[i] != s[i]}}.to_i] end |
#inspect ⇒ Object
243 244 245 246 247 248 |
# File 'lib/pretty_debug.rb', line 243 def inspect return original_inspect if recursive? s = map(&:inspect) length < 2 || s.map(&:length).inject(:+) < SingleLength ? "[#{s.join(", ".freeze)}]" : "[#$/#{s.join(",#$/".freeze).indent}#$/]" end |
#original_inspect ⇒ Object
242 |
# File 'lib/pretty_debug.rb', line 242 alias original_inspect inspect |