Class: Pry::Output

Inherits:
Object show all
Defined in:
lib/pry/output.rb

Constant Summary collapse

DEFAULT_SIZE =

Returns default terminal screen size [rows, cols].

Returns:

  • (Array<Integer>)

    default terminal screen size [rows, cols]

[27, 80].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pry_instance) ⇒ Output

Returns a new instance of Output.



10
11
12
13
# File 'lib/pry/output.rb', line 10

def initialize(pry_instance)
  @output = pry_instance.config.output
  @color = pry_instance.config.color
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args, &block) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/pry/output.rb', line 41

def method_missing(method_name, *args, &block)
  if @output.respond_to?(method_name)
    @output.__send__(method_name, *args, &block)
  else
    super
  end
end

Instance Attribute Details

#pry_instanceObject (readonly)

Returns the value of attribute pry_instance.



8
9
10
# File 'lib/pry/output.rb', line 8

def pry_instance
  @pry_instance
end

Instance Method Details

#decolorize_maybe(str) ⇒ Object



53
54
55
56
57
# File 'lib/pry/output.rb', line 53

def decolorize_maybe(str)
  return str if @color

  Pry::Helpers::Text.strip_color(str)
end

#heightObject

Return a screen height or the default if that fails.



74
75
76
# File 'lib/pry/output.rb', line 74

def height
  size.first
end


28
29
30
31
32
33
# File 'lib/pry/output.rb', line 28

def print(*objs)
  objs.each do |obj|
    @output.print decolorize_maybe(obj.to_s)
  end
  nil
end

#puts(*objs) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/pry/output.rb', line 15

def puts(*objs)
  return print "\n" if objs.empty?

  objs.each do |obj|
    if (ary = Array.try_convert(obj))
      puts(*ary)
    else
      print "#{obj.to_s.chomp}\n"
    end
  end
  nil
end

#respond_to_missing?(method_name, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/pry/output.rb', line 49

def respond_to_missing?(method_name, include_private = false)
  @output.respond_to?(method_name, include_private)
end

#sizeArray<Integer>

Returns a pair of [rows, columns] which gives the size of the window. If the window size cannot be determined, the default value.

Returns:

  • (Array<Integer>)

    a pair of [rows, columns] which gives the size of the window. If the window size cannot be determined, the default value.



61
62
63
64
65
66
# File 'lib/pry/output.rb', line 61

def size
  rows, cols = actual_screen_size
  return [rows.to_i, cols.to_i] if rows.to_i != 0 && cols.to_i != 0

  DEFAULT_SIZE
end

#tty?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/pry/output.rb', line 37

def tty?
  @output.respond_to?(:tty?) && @output.tty?
end

#widthObject

Return a screen width or the default if that fails.



69
70
71
# File 'lib/pry/output.rb', line 69

def width
  size.last
end