module Pry::Helpers::Text
The methods defined on {Text} are available to custom commands via {Pry::Command#text}.
Constants
- COLORS
Public Instance Methods
bold(text)
click to toggle source
Returns text as bold text for use on a terminal.
@param [String, to_s] text @return [String] text
# File lib/pry/helpers/text.rb, line 54 def bold(text) "\e[1m#{text}\e[0m" end
default(text)
click to toggle source
Returns `text` in the default foreground colour. Use this instead of “black” or “white” when you mean absence of colour.
@param [String, to_s] text @return [String]
# File lib/pry/helpers/text.rb, line 63 def default(text) text.to_s end
indent(text, chars)
click to toggle source
Returns text indented by chars spaces.
@param [String] text @param [Fixnum] chars
# File lib/pry/helpers/text.rb, line 113 def indent(text, chars) text.lines.map { |l| "#{' ' * chars}#{l}" }.join end
no_color() { || ... }
click to toggle source
@yield
Yields a block with color turned off.
@return [void]
# File lib/pry/helpers/text.rb, line 73 def no_color boolean = Pry.config.color Pry.config.color = false yield ensure Pry.config.color = boolean end
no_pager() { || ... }
click to toggle source
@yield
Yields a block with paging turned off.
@return [void]
# File lib/pry/helpers/text.rb, line 87 def no_pager boolean = Pry.config.pager Pry.config.pager = false yield ensure Pry.config.pager = boolean end
strip_color(text)
click to toggle source
Remove any color codes from text.
@param [String, to_s] text @return [String] text stripped of any color codes.
# File lib/pry/helpers/text.rb, line 46 def strip_color(text) text.to_s.gsub(/(\001)?\e\[.*?(\d)+m(\002)?/, '') end
with_line_numbers(text, offset, color = :blue)
click to toggle source
Returns text in a numbered list, beginning at offset.
@param [#each_line] text @param [Fixnum] offset @return [String]
# File lib/pry/helpers/text.rb, line 100 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) "#{send(color, adjusted_index)}: #{line}" end.join end