Module: Pry::Helpers::Text

Defined in:
lib/pry/helpers/text.rb

Overview

The methods defined on Text are available to custom commands via Command#text.

Constant Summary

COLORS =
{
  "black"   => 0,
  "red"     => 1,
  "green"   => 2,
  "yellow"  => 3,
  "blue"    => 4,
  "purple"  => 5,
  "magenta" => 5,
  "cyan"    => 6,
  "white"   => 7
}

Class Method Summary (collapse)

Class Method Details

+ (String) bold(text) Also known as: bright_default

Returns text as bold text for use on a terminal. Pry.color must be true for this method to perform any transformations.

Parameters:

  • text (String, #to_s)

Returns:

  • (String)

    text



45
46
47
# File 'lib/pry/helpers/text.rb', line 45

def bold text
  Pry.color ? "\e[1m#{text}\e[0m" : text.to_s
end

+ (String) default(text)

Returns text in the default foreground colour. Use this instead of "black" or "white" when you mean absence of colour.

Parameters:

  • (String, #to_s)

Returns:

  • (String)

    text



54
55
56
# File 'lib/pry/helpers/text.rb', line 54

def default(text)
  text.to_s
end

+ (Object) indent(text, chars)

Returns text indented by chars spaces.

Parameters:

  • text (String)
  • chars (Fixnum)


101
102
103
# File 'lib/pry/helpers/text.rb', line 101

def indent(text, chars)
  text.lines.map { |l| "#{' ' * chars}#{l}" }.join
end

+ (void) no_color(&block)

This method returns an undefined value.

Executes block with Pry.color set to false.

Parameters:

  • (Proc)


63
64
65
66
67
68
69
# File 'lib/pry/helpers/text.rb', line 63

def no_color &block
  boolean = Pry.config.color
  Pry.config.color = false
  yield
ensure
  Pry.config.color = boolean
end

+ (void) no_pager(&block)

This method returns an undefined value.

Executes block with Pry.config.pager set to false.

Parameters:

  • (Proc)


75
76
77
78
79
80
81
# File 'lib/pry/helpers/text.rb', line 75

def no_pager &block
  boolean = Pry.config.pager
  Pry.config.pager = false
  yield
ensure
  Pry.config.pager = boolean
end

+ (String) strip_color(text)

Remove any color codes from text.

Parameters:

  • text (String, #to_s)

Returns:

  • (String)

    text stripped of any color codes.



36
37
38
# File 'lib/pry/helpers/text.rb', line 36

def strip_color text
  text.to_s.gsub(/\e\[.*?(\d)+m/ , '')
end

+ (String) with_line_numbers(text, offset, color = :blue)

Returns text in a numbered list, beginning at offset.

Parameters:

  • text (#each_line)
  • offset (Fixnum)

Returns:

  • (String)


88
89
90
91
92
93
94
95
# File 'lib/pry/helpers/text.rb', line 88

def with_line_numbers(text, offset, color=:blue)
  lines = text.each_line.to_a
  max_width = (offset + lines.count).to_s.length
  lines.each_with_index.map do |line, index|
    adjusted_index = (index + offset).to_s.rjust(max_width)
    "#{self.send(color, adjusted_index)}: #{line}"
  end.join
end