mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
Add Pry::Helpers::Color.
This commit is contained in:
parent
dcc6ce4dbc
commit
b54d907767
6 changed files with 56 additions and 66 deletions
|
@ -25,5 +25,6 @@ class Pry
|
||||||
|
|
||||||
include Pry::Helpers::BaseHelpers
|
include Pry::Helpers::BaseHelpers
|
||||||
include Pry::Helpers::CommandHelpers
|
include Pry::Helpers::CommandHelpers
|
||||||
|
include Pry::Helpers::Color
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Pry
|
||||||
|
|
||||||
history.each_with_index do |element, index|
|
history.each_with_index do |element, index|
|
||||||
if element =~ pattern
|
if element =~ pattern
|
||||||
output.puts "#{colorize index}: #{element}"
|
output.puts "#{blue index}: #{element}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
require "pry/helpers/base_helpers"
|
require "pry/helpers/base_helpers"
|
||||||
require "pry/helpers/command_helpers"
|
require "pry/helpers/command_helpers"
|
||||||
|
require "pry/helpers/color"
|
||||||
|
|
|
@ -18,14 +18,7 @@ class Pry
|
||||||
text.split.drop(1).join(' ')
|
text.split.drop(1).join(' ')
|
||||||
end
|
end
|
||||||
|
|
||||||
# turn off color for duration of block
|
|
||||||
def no_color(&block)
|
|
||||||
old_color_state = Pry.color
|
|
||||||
Pry.color = false
|
|
||||||
yield
|
|
||||||
ensure
|
|
||||||
Pry.color = old_color_state
|
|
||||||
end
|
|
||||||
|
|
||||||
def gem_installed?(gem_name)
|
def gem_installed?(gem_name)
|
||||||
require 'rubygems'
|
require 'rubygems'
|
||||||
|
@ -67,53 +60,6 @@ class Pry
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
#
|
|
||||||
# Color helpers:
|
|
||||||
# gray, red, green, yellow, blue, purple, cyan, white,
|
|
||||||
# and bright_red, bright_green, etc...
|
|
||||||
#
|
|
||||||
# ANSI color codes:
|
|
||||||
# \033 => escape
|
|
||||||
# 30 => color base
|
|
||||||
# 1 => bright
|
|
||||||
# 0 => normal
|
|
||||||
#
|
|
||||||
|
|
||||||
COLORS = {
|
|
||||||
"black" => 0,
|
|
||||||
"red" => 1,
|
|
||||||
"green" => 2,
|
|
||||||
"yellow" => 3,
|
|
||||||
"blue" => 4,
|
|
||||||
"purple" => 5,
|
|
||||||
"magenta" => 5,
|
|
||||||
"cyan" => 6,
|
|
||||||
"white" => 7
|
|
||||||
}
|
|
||||||
|
|
||||||
COLORS.each do |color, i|
|
|
||||||
define_method color do |str|
|
|
||||||
Pry.color ? "\033[0;#{30+i}m#{str}\033[0m" : str
|
|
||||||
end
|
|
||||||
|
|
||||||
define_method "bright_#{color}" do |str|
|
|
||||||
Pry.color ? "\033[1;#{30+i}m#{str}\033[0m" : str
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
alias_method :grey, :bright_black
|
|
||||||
alias_method :gray, :bright_black
|
|
||||||
|
|
||||||
require 'set'
|
|
||||||
VALID_COLORS = Set.new(
|
|
||||||
COLORS.keys +
|
|
||||||
COLORS.keys.map{|k| "bright_#{k}" } +
|
|
||||||
["grey", "gray"]
|
|
||||||
)
|
|
||||||
|
|
||||||
def bold(text)
|
|
||||||
Pry.color ? "\e[1m#{text}\e[0m" : text
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Colorize a string that has "color tags".
|
# Colorize a string that has "color tags".
|
||||||
|
|
51
lib/pry/helpers/color.rb
Normal file
51
lib/pry/helpers/color.rb
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
class Pry
|
||||||
|
module Helpers
|
||||||
|
|
||||||
|
module Color
|
||||||
|
|
||||||
|
extend self
|
||||||
|
|
||||||
|
COLORS =
|
||||||
|
{
|
||||||
|
"black" => 0,
|
||||||
|
"red" => 1,
|
||||||
|
"green" => 2,
|
||||||
|
"yellow" => 3,
|
||||||
|
"blue" => 4,
|
||||||
|
"purple" => 5,
|
||||||
|
"magenta" => 5,
|
||||||
|
"cyan" => 6,
|
||||||
|
"white" => 7
|
||||||
|
}
|
||||||
|
|
||||||
|
COLORS.each_pair do |color, value|
|
||||||
|
define_method color do |text|
|
||||||
|
Pry.color ? "\033[0;#{30+value}m#{text}\033[0m" : text.to_s
|
||||||
|
end
|
||||||
|
|
||||||
|
define_method "bright_#{color}" do |text|
|
||||||
|
Pry.color ? "\033[1;#{30+value}m#{text}\033[0m" : text.to_s
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def strip_color text
|
||||||
|
text.gsub /\e\[.*?(\d)+m/, ''
|
||||||
|
end
|
||||||
|
|
||||||
|
def bold text
|
||||||
|
Pry.color ? "\e[1m#{text}\e[0m" : text.to_s
|
||||||
|
end
|
||||||
|
|
||||||
|
def no_color &block
|
||||||
|
boolean = Pry.color
|
||||||
|
Pry.color = false
|
||||||
|
yield
|
||||||
|
ensure
|
||||||
|
Pry.color = boolean
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -23,15 +23,11 @@ class Pry
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def colorize text
|
|
||||||
Pry.color ? CodeRay.scan(text.to_s, :ruby).term : text
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_line_numbers(lines, start_line)
|
def add_line_numbers(lines, start_line)
|
||||||
line_array = lines.each_line.to_a
|
line_array = lines.each_line.to_a
|
||||||
line_array.each_with_index.map do |line, idx|
|
line_array.each_with_index.map do |line, idx|
|
||||||
adjusted_index = idx + start_line
|
adjusted_index = idx + start_line
|
||||||
"#{colorize adjusted_index}: #{line}"
|
"#{blue adjusted_index}: #{line}"
|
||||||
end.join
|
end.join
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -231,11 +227,6 @@ class Pry
|
||||||
normalized_line_number(end_line, lines_array.size)]
|
normalized_line_number(end_line, lines_array.size)]
|
||||||
end
|
end
|
||||||
|
|
||||||
# documentation related helpers
|
|
||||||
def strip_color_codes(str)
|
|
||||||
str.gsub(/\e\[.*?(\d)+m/, '')
|
|
||||||
end
|
|
||||||
|
|
||||||
def process_rdoc(comment, code_type)
|
def process_rdoc(comment, code_type)
|
||||||
comment = comment.dup
|
comment = comment.dup
|
||||||
comment.gsub(/<code>(?:\s*\n)?(.*?)\s*<\/code>/m) { Pry.color ? CodeRay.scan($1, code_type).term : $1 }.
|
comment.gsub(/<code>(?:\s*\n)?(.*?)\s*<\/code>/m) { Pry.color ? CodeRay.scan($1, code_type).term : $1 }.
|
||||||
|
|
Loading…
Reference in a new issue