ripl-color_result 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gemspec +2 -1
- data/CHANGELOG.rdoc +3 -0
- data/COPYING +1 -3
- data/README.rdoc +6 -10
- data/deps.rip +2 -1
- data/lib/ripl/color_result.rb +61 -53
- metadata +21 -7
- data/lib/ripl/color_result/default_colorizer.rb +0 -193
data/.gemspec
CHANGED
@@ -11,7 +11,8 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = "A ripl plugin to colorize result."
|
12
12
|
s.description = "This ripl plugin colorizes your result."
|
13
13
|
s.required_rubygems_version = ">= 1.3.6"
|
14
|
-
s.add_dependency 'ripl', '>= 0.
|
14
|
+
s.add_dependency 'ripl', '>= 0.3.1'
|
15
|
+
s.add_dependency 'wirb', '>= 0.2.0'
|
15
16
|
s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c} **/deps.rip]) + %w{Rakefile .gemspec}
|
16
17
|
s.extra_rdoc_files = ["README.rdoc", "COPYING"]
|
17
18
|
s.license = 'MIT'
|
data/CHANGELOG.rdoc
CHANGED
data/COPYING
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
Copyright (C)
|
2
|
-
Copyright (C) 2009 Jens Wille <jens.wille@gmail.com>
|
3
|
-
Copyright (C) 2010 Jan Lelis <mail@janlelis.de>
|
1
|
+
Copyright (C) 2010-2011 Jan Lelis <mail@janlelis.de>
|
4
2
|
|
5
3
|
Permission is hereby granted, free of charge, to any person obtaining a
|
6
4
|
copy of this software and associated documentation files (the
|
data/README.rdoc
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
== Description
|
2
|
-
This {ripl}[
|
2
|
+
This {ripl}[https://github.com/cldwalker/ripl] plugin colorizes your results.
|
3
3
|
|
4
4
|
== Install
|
5
5
|
Install the gem with:
|
@@ -12,10 +12,10 @@ Add to your ~/.riplrc
|
|
12
12
|
|
13
13
|
require 'ripl/color_result'
|
14
14
|
|
15
|
-
You can choose a <tt>:color_result_engine</tt>. By default,
|
15
|
+
You can choose a <tt>:color_result_engine</tt>. By default, Wirb[https://github.com/janlelis/wirb]] is used. Possible other values are:
|
16
16
|
|
17
|
-
* <tt>:ap</tt> -
|
18
|
-
* <tt>:coderay</tt> -
|
17
|
+
* <tt>:ap</tt> - use {awesome_print}[https://github.com/michaeldv/awesome_print]
|
18
|
+
* <tt>:coderay</tt> - use {coderay}[http://coderay.rubychan.de/]
|
19
19
|
|
20
20
|
Example (in your ~/.riplrc)
|
21
21
|
|
@@ -24,18 +24,14 @@ Example (in your ~/.riplrc)
|
|
24
24
|
Set it to +nil+ to deactivate result colorization.
|
25
25
|
|
26
26
|
You can change the colors used by the default colorization by editing the <tt>:color_result_default_schema</tt> hash:
|
27
|
-
Ripl.config[:color_result_default_schema][:comma] = :
|
27
|
+
Ripl.config[:color_result_default_schema][:comma] = :blue
|
28
28
|
|
29
29
|
If you use <tt>awesome_print</tt>, you can override default options using <tt>:color_result_ap_options</tt> hash:
|
30
30
|
Ripl.config[:color_result_ap_options] = { :multiline => false }
|
31
31
|
|
32
32
|
== Credits
|
33
33
|
|
34
|
-
|
35
|
-
* Copyright (C) 2006-2009 Paul Duncan <pabs@pablotron.org>
|
36
|
-
* Copyright (C) 2009 Jens Wille <jens.wille@gmail.com>
|
37
|
-
|
38
|
-
Copyright (c) 2010 Jan Lelis <http://code-needs-smileys.com>, see COPYING for details.
|
34
|
+
Copyright (c) 2010 Jan Lelis <http://rbjl.net>, see COPYING for details.
|
39
35
|
|
40
36
|
Plus contributions by cldwalker and DirtYiCE.
|
41
37
|
|
data/deps.rip
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
ripl >=0.
|
1
|
+
ripl >=0.3.1
|
2
|
+
wirb >=0.2.0
|
data/lib/ripl/color_result.rb
CHANGED
@@ -2,26 +2,7 @@ require 'ripl'
|
|
2
2
|
|
3
3
|
module Ripl
|
4
4
|
module ColorResult
|
5
|
-
VERSION = '0.
|
6
|
-
COLORS = {
|
7
|
-
:nothing => '0;0',
|
8
|
-
:black => '0;30',
|
9
|
-
:red => '0;31',
|
10
|
-
:green => '0;32',
|
11
|
-
:brown => '0;33',
|
12
|
-
:blue => '0;34',
|
13
|
-
:purple => '0;35',
|
14
|
-
:cyan => '0;36',
|
15
|
-
:light_gray => '0;37',
|
16
|
-
:dark_gray => '1;30',
|
17
|
-
:light_red => '1;31',
|
18
|
-
:light_green => '1;32',
|
19
|
-
:yellow => '1;33',
|
20
|
-
:light_blue => '1;34',
|
21
|
-
:light_purple => '1;35',
|
22
|
-
:light_cyan => '1;36',
|
23
|
-
:white => '1;37',
|
24
|
-
}
|
5
|
+
VERSION = '0.3.0'
|
25
6
|
|
26
7
|
def format_result(result)
|
27
8
|
return super if !config[:color_result_engine]
|
@@ -34,51 +15,78 @@ module Ripl
|
|
34
15
|
require 'ap'
|
35
16
|
result.awesome_inspect( config[:color_result_ap_options] || {} )
|
36
17
|
else # :default
|
37
|
-
require
|
38
|
-
|
18
|
+
require 'wirb'
|
19
|
+
Wirb.colorize_result result.inspect, Ripl.config[:color_result_default_schema]
|
39
20
|
end
|
40
|
-
|
41
21
|
end
|
42
22
|
end
|
43
23
|
end
|
44
24
|
|
45
|
-
Ripl::Shell.
|
46
|
-
|
25
|
+
Ripl::Shell.include Ripl::ColorResult
|
47
26
|
|
48
27
|
Ripl.config[:color_result_engine] ||= :default
|
49
|
-
#
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
28
|
+
Ripl.config[:color_result_default_schema] ||= { # see Wirb::COLORS for a color list
|
29
|
+
# container
|
30
|
+
:open_hash => :light_green,
|
31
|
+
:close_hash => :light_green,
|
32
|
+
:open_array => :light_green,
|
33
|
+
:close_array => :light_green,
|
34
|
+
|
35
|
+
:open_set => :green,
|
36
|
+
:close_set => :green,
|
37
|
+
:open_enumerator => :green,
|
38
|
+
:close_enumerator => :green,
|
39
|
+
|
40
|
+
# delimiter colors
|
41
|
+
:comma => :green,
|
42
|
+
:refers => :green,
|
43
|
+
|
44
|
+
# class
|
45
|
+
:class => :light_green,
|
46
|
+
:class_separator => :green,
|
47
|
+
:object_class => :light_green,
|
48
|
+
|
49
|
+
# object
|
50
|
+
:open_object => :green,
|
51
|
+
:object_description_prefix => :green,
|
52
|
+
:object_description => :brown,
|
53
|
+
:object_addr_prefix => :brown_underline,
|
54
|
+
:object_addr => :brown_underline,
|
55
|
+
:object_line_prefix => :brown_underline,
|
56
|
+
:object_line => :brown_underline,
|
57
|
+
:object_line_number => :brown_underline,
|
58
|
+
:close_object => :green,
|
54
59
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
+
# symbol
|
61
|
+
:symbol_prefix => :yellow,
|
62
|
+
:symbol => :yellow,
|
63
|
+
:open_symbol_string => :brown,
|
64
|
+
:symbol_string => :yellow,
|
65
|
+
:close_symbol_string => :brown,
|
60
66
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
:object_line_prefix => :blue,
|
66
|
-
:close_object => :light_red,
|
67
|
+
# string
|
68
|
+
:open_string => :light_gray,
|
69
|
+
:string => :dark_gray,
|
70
|
+
:close_string => :light_gray,
|
67
71
|
|
68
|
-
|
69
|
-
|
70
|
-
|
72
|
+
# regexp
|
73
|
+
:open_regexp => :light_blue,
|
74
|
+
:regexp => :dark_gray,
|
75
|
+
:close_regexp => :light_blue,
|
76
|
+
:regexp_flags => :light_red,
|
71
77
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
78
|
+
# number
|
79
|
+
:number => :cyan,
|
80
|
+
:range => :red,
|
81
|
+
:open_rational => :light_cyan,
|
82
|
+
:rational_separator => :light_cyan,
|
83
|
+
:close_rational => :light_cyan,
|
76
84
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
85
|
+
# misc
|
86
|
+
:keyword => nil,
|
87
|
+
:nil => :light_red,
|
88
|
+
:false => :red,
|
89
|
+
:true => :green,
|
82
90
|
}
|
83
91
|
|
84
92
|
# J-_-L
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 3
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.3.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jan Lelis
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-27 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -27,11 +27,26 @@ dependencies:
|
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
segments:
|
29
29
|
- 0
|
30
|
-
-
|
31
|
-
-
|
32
|
-
version: 0.
|
30
|
+
- 3
|
31
|
+
- 1
|
32
|
+
version: 0.3.1
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: wirb
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
- 2
|
46
|
+
- 0
|
47
|
+
version: 0.2.0
|
48
|
+
type: :runtime
|
49
|
+
version_requirements: *id002
|
35
50
|
description: This ripl plugin colorizes your result.
|
36
51
|
email: mail@janlelis.de
|
37
52
|
executables: []
|
@@ -42,7 +57,6 @@ extra_rdoc_files:
|
|
42
57
|
- README.rdoc
|
43
58
|
- COPYING
|
44
59
|
files:
|
45
|
-
- lib/ripl/color_result/default_colorizer.rb
|
46
60
|
- lib/ripl/color_result.rb
|
47
61
|
- README.rdoc
|
48
62
|
- CHANGELOG.rdoc
|
@@ -1,193 +0,0 @@
|
|
1
|
-
# Default colorization module:
|
2
|
-
# Code taken from the (blackwinter) wirble gem, adjusted api. See COPYING for credits.
|
3
|
-
|
4
|
-
class << Ripl::ColorResult::DefaultColorizer = Module.new
|
5
|
-
def tokenize(str)
|
6
|
-
raise 'missing block' unless block_given?
|
7
|
-
chars = str.split(//)
|
8
|
-
|
9
|
-
# $stderr.puts "DEBUG: chars = #{chars.join(',')}"
|
10
|
-
|
11
|
-
state, val, i, lc = [], '', 0, nil
|
12
|
-
while i <= chars.size
|
13
|
-
repeat = false
|
14
|
-
c = chars[i]
|
15
|
-
|
16
|
-
# $stderr.puts "DEBUG: state = #{state}"
|
17
|
-
|
18
|
-
case state[-1]
|
19
|
-
when nil
|
20
|
-
case c
|
21
|
-
when ':'
|
22
|
-
state << :symbol
|
23
|
-
when '"'
|
24
|
-
state << :string
|
25
|
-
when '#'
|
26
|
-
state << :object
|
27
|
-
when /[a-z]/i
|
28
|
-
state << :keyword
|
29
|
-
repeat = true
|
30
|
-
when /[0-9-]/
|
31
|
-
state << :number
|
32
|
-
repeat = true
|
33
|
-
when '{'
|
34
|
-
yield :open_hash, '{'
|
35
|
-
when '['
|
36
|
-
yield :open_array, '['
|
37
|
-
when ']'
|
38
|
-
yield :close_array, ']'
|
39
|
-
when '}'
|
40
|
-
yield :close_hash, '}'
|
41
|
-
when /\s/
|
42
|
-
yield :whitespace, c
|
43
|
-
when ','
|
44
|
-
yield :comma, ','
|
45
|
-
when '>'
|
46
|
-
yield :refers, '=>' if lc == '='
|
47
|
-
when '.'
|
48
|
-
yield :range, '..' if lc == '.'
|
49
|
-
when '='
|
50
|
-
# ignore these, they're used elsewhere
|
51
|
-
nil
|
52
|
-
else
|
53
|
-
# $stderr.puts "DEBUG: ignoring char #{c}"
|
54
|
-
end
|
55
|
-
when :symbol
|
56
|
-
case c
|
57
|
-
# XXX: should have =, but that messes up foo=>bar
|
58
|
-
when /[a-z0-9_!?]/
|
59
|
-
val << c
|
60
|
-
else
|
61
|
-
yield :symbol_prefix, ':'
|
62
|
-
yield state[-1], val
|
63
|
-
state.pop; val = ''
|
64
|
-
repeat = true
|
65
|
-
end
|
66
|
-
when :string
|
67
|
-
case c
|
68
|
-
when '"'
|
69
|
-
if lc == "\\"
|
70
|
-
val[-1] = ?"
|
71
|
-
else
|
72
|
-
yield :open_string, '"'
|
73
|
-
yield state[-1], val
|
74
|
-
state.pop; val = ''
|
75
|
-
yield :close_string, '"'
|
76
|
-
end
|
77
|
-
else
|
78
|
-
val << c
|
79
|
-
end
|
80
|
-
when :keyword
|
81
|
-
case c
|
82
|
-
when /[a-z0-9_]/i
|
83
|
-
val << c
|
84
|
-
else
|
85
|
-
# is this a class?
|
86
|
-
st = val =~ /^[A-Z]/ ? :class : state[-1]
|
87
|
-
|
88
|
-
yield st, val
|
89
|
-
state.pop; val = ''
|
90
|
-
repeat = true
|
91
|
-
end
|
92
|
-
when :number
|
93
|
-
case c
|
94
|
-
when /[0-9e-]/
|
95
|
-
val << c
|
96
|
-
when '.'
|
97
|
-
if lc == '.'
|
98
|
-
val[/\.$/] = ''
|
99
|
-
yield state[-1], val
|
100
|
-
state.pop; val = ''
|
101
|
-
yield :range, '..'
|
102
|
-
else
|
103
|
-
val << c
|
104
|
-
end
|
105
|
-
else
|
106
|
-
yield state[-1], val
|
107
|
-
state.pop; val = ''
|
108
|
-
repeat = true
|
109
|
-
end
|
110
|
-
when :object
|
111
|
-
case c
|
112
|
-
when '<'
|
113
|
-
yield :open_object, '#<'
|
114
|
-
state << :object_class
|
115
|
-
when ':'
|
116
|
-
state << :object_addr
|
117
|
-
when '@'
|
118
|
-
state << :object_line
|
119
|
-
when '>'
|
120
|
-
yield :close_object, '>'
|
121
|
-
state.pop; val = ''
|
122
|
-
end
|
123
|
-
when :object_class
|
124
|
-
case c
|
125
|
-
when ':'
|
126
|
-
yield state[-1], val
|
127
|
-
state.pop; val = ''
|
128
|
-
repeat = true
|
129
|
-
else
|
130
|
-
val << c
|
131
|
-
end
|
132
|
-
when :object_addr
|
133
|
-
case c
|
134
|
-
when '>'
|
135
|
-
when '@'
|
136
|
-
yield :object_addr_prefix, ':'
|
137
|
-
yield state[-1], val
|
138
|
-
state.pop; val = ''
|
139
|
-
repeat = true
|
140
|
-
else
|
141
|
-
val << c
|
142
|
-
end
|
143
|
-
when :object_line
|
144
|
-
case c
|
145
|
-
when '>'
|
146
|
-
yield :object_line_prefix, '@'
|
147
|
-
yield state[-1], val
|
148
|
-
state.pop; val = ''
|
149
|
-
repeat = true
|
150
|
-
else
|
151
|
-
val << c
|
152
|
-
end
|
153
|
-
else
|
154
|
-
raise "unknown state #{state}"
|
155
|
-
end
|
156
|
-
|
157
|
-
unless repeat
|
158
|
-
i += 1
|
159
|
-
lc = c
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
#
|
165
|
-
# Return the escape code for a given color.
|
166
|
-
#
|
167
|
-
def get_color(key)
|
168
|
-
Ripl::ColorResult::COLORS.key?(key) && "\033[#{Ripl::ColorResult::COLORS[key]}m"
|
169
|
-
end
|
170
|
-
|
171
|
-
#
|
172
|
-
# Return a string with the given color.
|
173
|
-
#
|
174
|
-
def colorize_string(str, color)
|
175
|
-
col, nocol = [color, :nothing].map { |key| get_color(key) }
|
176
|
-
col ? "#{col}#{str}#{nocol}" : str
|
177
|
-
end
|
178
|
-
|
179
|
-
#
|
180
|
-
# Colorize the results of inspect
|
181
|
-
#
|
182
|
-
def colorize_code(str)
|
183
|
-
ret, nocol = '', get_color(:nothing)
|
184
|
-
tokenize(str) do |tok, val|
|
185
|
-
ret << colorize_string(val, Ripl.config[:color_result_default_schema][tok])
|
186
|
-
end
|
187
|
-
ret
|
188
|
-
rescue # catch any errors from the tokenizer (just in case)
|
189
|
-
str
|
190
|
-
end
|
191
|
-
end
|
192
|
-
|
193
|
-
# J-_-L
|