color_echo 1.3.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.ja.md +395 -0
- data/README.md +38 -6
- data/bin/color_echo +142 -48
- data/bin/colorecho +142 -48
- data/bin/lib/display.rb +125 -104
- data/lib/color_echo/const.rb +1 -1
- data/lib/color_echo/functions.rb +55 -0
- data/lib/color_echo/internal.rb +42 -6
- data/lib/color_echo/variables.rb +20 -11
- metadata +3 -2
data/bin/color_echo
CHANGED
@@ -1,39 +1,78 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
require_relative "./lib/display"
|
3
|
+
def dump(target)
|
4
|
+
require "pp"
|
5
|
+
require "stringio"
|
6
|
+
|
7
|
+
File.open("/tmp/ruby.log", "a+") do |f|
|
8
|
+
$stdout = StringIO.new
|
9
|
+
pp target
|
10
|
+
strio = $stdout
|
11
|
+
$stdout = STDOUT
|
12
|
+
f.print strio.string
|
13
|
+
end
|
14
|
+
end
|
2
15
|
|
16
|
+
#
|
17
|
+
# Load color_echo
|
18
|
+
# @return void
|
19
|
+
#
|
3
20
|
def require_color_echo
|
4
21
|
require "color_echo"
|
5
22
|
#require_relative "../lib/color_echo"
|
6
23
|
end
|
7
24
|
|
25
|
+
#
|
26
|
+
# Load color_echo/get
|
27
|
+
# @return void
|
28
|
+
#
|
8
29
|
def require_color_echo_get
|
9
30
|
require "color_echo/get"
|
10
31
|
#require_relative "../lib/color_echo/get"
|
11
32
|
end
|
12
33
|
|
13
|
-
|
14
|
-
|
34
|
+
#
|
35
|
+
# output in interactive
|
36
|
+
# @return void
|
37
|
+
#
|
15
38
|
def output_interactive
|
16
39
|
output_stripe_interactive if @is_stripe
|
17
40
|
|
18
|
-
|
19
|
-
input.
|
20
|
-
|
21
|
-
|
22
|
-
|
41
|
+
begin
|
42
|
+
while input = STDIN.gets
|
43
|
+
input.chomp!
|
44
|
+
exit 0 if @exit_words.index(input)
|
45
|
+
eval(@code_decorate)
|
46
|
+
$stdout.flush.puts CE.get(input)
|
47
|
+
end
|
48
|
+
rescue Interrupt
|
49
|
+
exit 1
|
23
50
|
end
|
24
51
|
end
|
25
52
|
|
53
|
+
#
|
54
|
+
# output like stripe in interactive
|
55
|
+
# @return void
|
56
|
+
#
|
26
57
|
def output_stripe_interactive
|
27
58
|
cnt = 0
|
28
|
-
|
29
|
-
input.
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
59
|
+
begin
|
60
|
+
while input = STDIN.gets
|
61
|
+
input.chomp!
|
62
|
+
exit 0 if @exit_words.index(input)
|
63
|
+
eval(@code_decorate) if cnt % 2 == 0
|
64
|
+
puts CE.get(input)
|
65
|
+
cnt += 1
|
66
|
+
end
|
67
|
+
rescue Interrupt
|
68
|
+
exit 1
|
34
69
|
end
|
35
70
|
end
|
36
71
|
|
72
|
+
#
|
73
|
+
# output
|
74
|
+
# @return void
|
75
|
+
#
|
37
76
|
def output(target)
|
38
77
|
output_stripe(target) if @is_stripe
|
39
78
|
|
@@ -45,6 +84,10 @@ def output(target)
|
|
45
84
|
exit 0
|
46
85
|
end
|
47
86
|
|
87
|
+
#
|
88
|
+
# output like stripe
|
89
|
+
# @return void
|
90
|
+
#
|
48
91
|
def output_stripe(target)
|
49
92
|
cnt = 0
|
50
93
|
target.split($/).each do |record|
|
@@ -55,44 +98,33 @@ def output_stripe(target)
|
|
55
98
|
exit 0
|
56
99
|
end
|
57
100
|
|
101
|
+
#
|
102
|
+
# parse the options
|
103
|
+
# @return void
|
104
|
+
#
|
58
105
|
def parse_options
|
59
|
-
@fg
|
60
|
-
@bg
|
61
|
-
@tx
|
62
|
-
@
|
63
|
-
@
|
64
|
-
@
|
65
|
-
@
|
66
|
-
@
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
opt.on("-h", @explain_h) { usage }
|
72
|
-
opt.on("-v", @explain_v) { version }
|
73
|
-
opt.on("-s", "--symbol-list", @explain_s) { display_symbol_list }
|
74
|
-
opt.on("-l", "--index-list", @explain_l) { display_color_index }
|
75
|
-
opt.on("--fg val", "-f val", @explain_f) { |val| @fg = val }
|
76
|
-
opt.on("--bg val", "-b val", @explain_b) { |val| @bg = val }
|
77
|
-
opt.on("--tx val", "-t val", @explain_t) { |val| @tx = val }
|
78
|
-
opt.on("--pickup val", "-p val", @explain_p) { |val| @pickups << val }
|
79
|
-
opt.on("-w", "--watch", @explain_w) { @is_watch = true }
|
80
|
-
opt.on("-n", @explain_n) { @last_lb = false }
|
81
|
-
opt.on("-e", @explain_e) { @enable_lf = true }
|
82
|
-
opt.on("--stripe", @explain_stripe) { @is_stripe = true }
|
83
|
-
|
84
|
-
opt.on("--symbol_list", @explain_s + " - [compatibility]" ) { display_symbol_list }
|
85
|
-
opt.on("--index_list", @explain_l + " - [compatibility]") { display_color_index }
|
106
|
+
@fg = "yellow"
|
107
|
+
@bg = nil
|
108
|
+
@tx = nil
|
109
|
+
@highlight = nil
|
110
|
+
@pickups = []
|
111
|
+
@is_watch = false
|
112
|
+
@last_lb = true
|
113
|
+
@enable_lf = false
|
114
|
+
@is_stripe = false
|
115
|
+
@refresh_pre_match = false
|
116
|
+
@refresh = false
|
86
117
|
|
87
118
|
begin
|
88
|
-
opt.parse!(ARGV)
|
119
|
+
@opt.parse!(ARGV)
|
89
120
|
|
90
121
|
rescue => err
|
91
|
-
warn
|
92
|
-
|
122
|
+
warn %(Parse Error! Please check usage!) + $/ + $/
|
123
|
+
puts @opt.help
|
124
|
+
warn $/ + %(Do you want to read example to use?)
|
125
|
+
warn %( -> Please execute: 'colorecho -h')
|
93
126
|
end
|
94
127
|
|
95
|
-
@fg = "yellow" if @fg == nil && @bg == nil && @tx == nil
|
96
128
|
@fg = @fg.intern if @fg != nil
|
97
129
|
@bg = @bg.intern if @bg != nil
|
98
130
|
|
@@ -121,13 +153,64 @@ def parse_options
|
|
121
153
|
code_pickup += %(.pickup(@pickups[#{index}], @fg, @bg, @tx))
|
122
154
|
end
|
123
155
|
@code_decorate = "CE" + code_pickup
|
156
|
+
|
157
|
+
# highlight
|
158
|
+
if @highlight != nil
|
159
|
+
params = []
|
160
|
+
@highlight.split(",").each do |el|
|
161
|
+
el.strip!
|
162
|
+
if el != "nil"
|
163
|
+
params << ":#{el}"
|
164
|
+
else
|
165
|
+
params << "nil"
|
166
|
+
end
|
167
|
+
end
|
168
|
+
code_highlight = %(CE.hitline(#{params.join(",")}))
|
169
|
+
end
|
170
|
+
@code_decorate = code_highlight + ";" + @code_decorate if code_highlight != nil
|
124
171
|
else
|
125
172
|
@code_decorate = %(CE.ch(@fg, @bg, @tx))
|
126
173
|
end
|
127
174
|
end
|
128
175
|
|
176
|
+
# -----------
|
177
|
+
# top level
|
178
|
+
# -----------
|
179
|
+
require "optparse"
|
180
|
+
@opt = OptionParser.new
|
181
|
+
|
182
|
+
@opt.on("-s", "--symbol-list", @explain_s) { display_symbol_list }
|
183
|
+
@opt.on("-l", "--index-list", @explain_l) { display_color_index }
|
184
|
+
@opt.on("-f val", "--fg val", @explain_f) { |val| @fg = val }
|
185
|
+
@opt.on("-b val", "--bg val", @explain_b) { |val| @bg = val }
|
186
|
+
@opt.on("-t val", "--tx val", @explain_t) { |val| @tx = val }
|
187
|
+
@opt.on("-p val", "--pickup val", @explain_p) { |val| @pickups << val }
|
188
|
+
@opt.on("-H", "--highlight val", @explain_H) { |val| @highlight = val}
|
189
|
+
@opt.on("-w", "--watch", @explain_w) { @is_watch = true }
|
190
|
+
@opt.on("-n", @explain_n) { @last_lb = false }
|
191
|
+
@opt.on("-e", @explain_e) { @enable_lf = true }
|
192
|
+
@opt.on("--stripe", @explain_stripe) { @is_stripe = true }
|
193
|
+
@opt.on("-r", "--refresh-pre-match", @explain_r) { @refresh_pre_match = true }
|
194
|
+
@opt.on("-R", "--refresh", @explain_R) { @refresh = true }
|
195
|
+
@opt.on("-v", @explain_v) { version }
|
196
|
+
@opt.on("-h", "--help", @explain_h) { usage }
|
197
|
+
|
198
|
+
@opt.on("--symbol_list", @explain_s + " - [compatibility]" ) { display_symbol_list }
|
199
|
+
@opt.on("--index_list", @explain_l + " - [compatibility]") { display_color_index }
|
200
|
+
|
201
|
+
@opt.banner = <<EOS
|
202
|
+
Usage:
|
203
|
+
#{@explain_usage}
|
204
|
+
Options:
|
205
|
+
EOS
|
206
|
+
|
207
|
+
# has stdin?
|
129
208
|
has_stdin = select([STDIN], [], [], 0) != nil || FileTest.pipe?(STDIN)
|
130
|
-
|
209
|
+
|
210
|
+
# argv error
|
211
|
+
if !has_stdin && ARGV.size == 0
|
212
|
+
puts @opt.help
|
213
|
+
end
|
131
214
|
|
132
215
|
require_color_echo_get
|
133
216
|
Version = CE::VERSION
|
@@ -135,22 +218,33 @@ Version = CE::VERSION
|
|
135
218
|
# parse options and set the decorate code that execute by eval
|
136
219
|
parse_options
|
137
220
|
|
221
|
+
# need refresh?
|
222
|
+
if @refresh
|
223
|
+
CE.enable_refresh
|
224
|
+
elsif @refresh_pre_match
|
225
|
+
CE.enable_refresh(:prematch)
|
226
|
+
end
|
227
|
+
|
138
228
|
if @is_watch
|
139
229
|
# Interactive mode
|
140
230
|
@exit_words = ["quit", "exit", "bye"]
|
141
231
|
output_interactive
|
142
232
|
else
|
143
233
|
if has_stdin
|
144
|
-
|
234
|
+
begin
|
235
|
+
target = STDIN.read
|
236
|
+
rescue Interrupt
|
237
|
+
puts $/ + %(No STDIN, Try to use -w option if you need Interactive mode.)
|
238
|
+
end
|
145
239
|
|
146
240
|
if ARGV.size > 0
|
147
241
|
print target
|
148
|
-
argv
|
242
|
+
argv = ARGV.join(" ")
|
149
243
|
argv += $/ if @last_lb
|
150
244
|
output(argv)
|
151
245
|
end
|
152
246
|
else
|
153
|
-
target
|
247
|
+
target = ARGV.join(" ")
|
154
248
|
target += $/ if @last_lb
|
155
249
|
end
|
156
250
|
|
data/bin/colorecho
CHANGED
@@ -1,39 +1,78 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
require_relative "./lib/display"
|
3
|
+
def dump(target)
|
4
|
+
require "pp"
|
5
|
+
require "stringio"
|
6
|
+
|
7
|
+
File.open("/tmp/ruby.log", "a+") do |f|
|
8
|
+
$stdout = StringIO.new
|
9
|
+
pp target
|
10
|
+
strio = $stdout
|
11
|
+
$stdout = STDOUT
|
12
|
+
f.print strio.string
|
13
|
+
end
|
14
|
+
end
|
2
15
|
|
16
|
+
#
|
17
|
+
# Load color_echo
|
18
|
+
# @return void
|
19
|
+
#
|
3
20
|
def require_color_echo
|
4
21
|
require "color_echo"
|
5
22
|
#require_relative "../lib/color_echo"
|
6
23
|
end
|
7
24
|
|
25
|
+
#
|
26
|
+
# Load color_echo/get
|
27
|
+
# @return void
|
28
|
+
#
|
8
29
|
def require_color_echo_get
|
9
30
|
require "color_echo/get"
|
10
31
|
#require_relative "../lib/color_echo/get"
|
11
32
|
end
|
12
33
|
|
13
|
-
|
14
|
-
|
34
|
+
#
|
35
|
+
# output in interactive
|
36
|
+
# @return void
|
37
|
+
#
|
15
38
|
def output_interactive
|
16
39
|
output_stripe_interactive if @is_stripe
|
17
40
|
|
18
|
-
|
19
|
-
input.
|
20
|
-
|
21
|
-
|
22
|
-
|
41
|
+
begin
|
42
|
+
while input = STDIN.gets
|
43
|
+
input.chomp!
|
44
|
+
exit 0 if @exit_words.index(input)
|
45
|
+
eval(@code_decorate)
|
46
|
+
$stdout.flush.puts CE.get(input)
|
47
|
+
end
|
48
|
+
rescue Interrupt
|
49
|
+
exit 1
|
23
50
|
end
|
24
51
|
end
|
25
52
|
|
53
|
+
#
|
54
|
+
# output like stripe in interactive
|
55
|
+
# @return void
|
56
|
+
#
|
26
57
|
def output_stripe_interactive
|
27
58
|
cnt = 0
|
28
|
-
|
29
|
-
input.
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
59
|
+
begin
|
60
|
+
while input = STDIN.gets
|
61
|
+
input.chomp!
|
62
|
+
exit 0 if @exit_words.index(input)
|
63
|
+
eval(@code_decorate) if cnt % 2 == 0
|
64
|
+
puts CE.get(input)
|
65
|
+
cnt += 1
|
66
|
+
end
|
67
|
+
rescue Interrupt
|
68
|
+
exit 1
|
34
69
|
end
|
35
70
|
end
|
36
71
|
|
72
|
+
#
|
73
|
+
# output
|
74
|
+
# @return void
|
75
|
+
#
|
37
76
|
def output(target)
|
38
77
|
output_stripe(target) if @is_stripe
|
39
78
|
|
@@ -45,6 +84,10 @@ def output(target)
|
|
45
84
|
exit 0
|
46
85
|
end
|
47
86
|
|
87
|
+
#
|
88
|
+
# output like stripe
|
89
|
+
# @return void
|
90
|
+
#
|
48
91
|
def output_stripe(target)
|
49
92
|
cnt = 0
|
50
93
|
target.split($/).each do |record|
|
@@ -55,44 +98,33 @@ def output_stripe(target)
|
|
55
98
|
exit 0
|
56
99
|
end
|
57
100
|
|
101
|
+
#
|
102
|
+
# parse the options
|
103
|
+
# @return void
|
104
|
+
#
|
58
105
|
def parse_options
|
59
|
-
@fg
|
60
|
-
@bg
|
61
|
-
@tx
|
62
|
-
@
|
63
|
-
@
|
64
|
-
@
|
65
|
-
@
|
66
|
-
@
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
opt.on("-h", @explain_h) { usage }
|
72
|
-
opt.on("-v", @explain_v) { version }
|
73
|
-
opt.on("-s", "--symbol-list", @explain_s) { display_symbol_list }
|
74
|
-
opt.on("-l", "--index-list", @explain_l) { display_color_index }
|
75
|
-
opt.on("--fg val", "-f val", @explain_f) { |val| @fg = val }
|
76
|
-
opt.on("--bg val", "-b val", @explain_b) { |val| @bg = val }
|
77
|
-
opt.on("--tx val", "-t val", @explain_t) { |val| @tx = val }
|
78
|
-
opt.on("--pickup val", "-p val", @explain_p) { |val| @pickups << val }
|
79
|
-
opt.on("-w", "--watch", @explain_w) { @is_watch = true }
|
80
|
-
opt.on("-n", @explain_n) { @last_lb = false }
|
81
|
-
opt.on("-e", @explain_e) { @enable_lf = true }
|
82
|
-
opt.on("--stripe", @explain_stripe) { @is_stripe = true }
|
83
|
-
|
84
|
-
opt.on("--symbol_list", @explain_s + " - [compatibility]" ) { display_symbol_list }
|
85
|
-
opt.on("--index_list", @explain_l + " - [compatibility]") { display_color_index }
|
106
|
+
@fg = "yellow"
|
107
|
+
@bg = nil
|
108
|
+
@tx = nil
|
109
|
+
@highlight = nil
|
110
|
+
@pickups = []
|
111
|
+
@is_watch = false
|
112
|
+
@last_lb = true
|
113
|
+
@enable_lf = false
|
114
|
+
@is_stripe = false
|
115
|
+
@refresh_pre_match = false
|
116
|
+
@refresh = false
|
86
117
|
|
87
118
|
begin
|
88
|
-
opt.parse!(ARGV)
|
119
|
+
@opt.parse!(ARGV)
|
89
120
|
|
90
121
|
rescue => err
|
91
|
-
warn
|
92
|
-
|
122
|
+
warn %(Parse Error! Please check usage!) + $/ + $/
|
123
|
+
puts @opt.help
|
124
|
+
warn $/ + %(Do you want to read example to use?)
|
125
|
+
warn %( -> Please execute: 'colorecho -h')
|
93
126
|
end
|
94
127
|
|
95
|
-
@fg = "yellow" if @fg == nil && @bg == nil && @tx == nil
|
96
128
|
@fg = @fg.intern if @fg != nil
|
97
129
|
@bg = @bg.intern if @bg != nil
|
98
130
|
|
@@ -121,13 +153,64 @@ def parse_options
|
|
121
153
|
code_pickup += %(.pickup(@pickups[#{index}], @fg, @bg, @tx))
|
122
154
|
end
|
123
155
|
@code_decorate = "CE" + code_pickup
|
156
|
+
|
157
|
+
# highlight
|
158
|
+
if @highlight != nil
|
159
|
+
params = []
|
160
|
+
@highlight.split(",").each do |el|
|
161
|
+
el.strip!
|
162
|
+
if el != "nil"
|
163
|
+
params << ":#{el}"
|
164
|
+
else
|
165
|
+
params << "nil"
|
166
|
+
end
|
167
|
+
end
|
168
|
+
code_highlight = %(CE.hitline(#{params.join(",")}))
|
169
|
+
end
|
170
|
+
@code_decorate = code_highlight + ";" + @code_decorate if code_highlight != nil
|
124
171
|
else
|
125
172
|
@code_decorate = %(CE.ch(@fg, @bg, @tx))
|
126
173
|
end
|
127
174
|
end
|
128
175
|
|
176
|
+
# -----------
|
177
|
+
# top level
|
178
|
+
# -----------
|
179
|
+
require "optparse"
|
180
|
+
@opt = OptionParser.new
|
181
|
+
|
182
|
+
@opt.on("-s", "--symbol-list", @explain_s) { display_symbol_list }
|
183
|
+
@opt.on("-l", "--index-list", @explain_l) { display_color_index }
|
184
|
+
@opt.on("-f val", "--fg val", @explain_f) { |val| @fg = val }
|
185
|
+
@opt.on("-b val", "--bg val", @explain_b) { |val| @bg = val }
|
186
|
+
@opt.on("-t val", "--tx val", @explain_t) { |val| @tx = val }
|
187
|
+
@opt.on("-p val", "--pickup val", @explain_p) { |val| @pickups << val }
|
188
|
+
@opt.on("-H", "--highlight val", @explain_H) { |val| @highlight = val}
|
189
|
+
@opt.on("-w", "--watch", @explain_w) { @is_watch = true }
|
190
|
+
@opt.on("-n", @explain_n) { @last_lb = false }
|
191
|
+
@opt.on("-e", @explain_e) { @enable_lf = true }
|
192
|
+
@opt.on("--stripe", @explain_stripe) { @is_stripe = true }
|
193
|
+
@opt.on("-r", "--refresh-pre-match", @explain_r) { @refresh_pre_match = true }
|
194
|
+
@opt.on("-R", "--refresh", @explain_R) { @refresh = true }
|
195
|
+
@opt.on("-v", @explain_v) { version }
|
196
|
+
@opt.on("-h", "--help", @explain_h) { usage }
|
197
|
+
|
198
|
+
@opt.on("--symbol_list", @explain_s + " - [compatibility]" ) { display_symbol_list }
|
199
|
+
@opt.on("--index_list", @explain_l + " - [compatibility]") { display_color_index }
|
200
|
+
|
201
|
+
@opt.banner = <<EOS
|
202
|
+
Usage:
|
203
|
+
#{@explain_usage}
|
204
|
+
Options:
|
205
|
+
EOS
|
206
|
+
|
207
|
+
# has stdin?
|
129
208
|
has_stdin = select([STDIN], [], [], 0) != nil || FileTest.pipe?(STDIN)
|
130
|
-
|
209
|
+
|
210
|
+
# argv error
|
211
|
+
if !has_stdin && ARGV.size == 0
|
212
|
+
puts @opt.help
|
213
|
+
end
|
131
214
|
|
132
215
|
require_color_echo_get
|
133
216
|
Version = CE::VERSION
|
@@ -135,22 +218,33 @@ Version = CE::VERSION
|
|
135
218
|
# parse options and set the decorate code that execute by eval
|
136
219
|
parse_options
|
137
220
|
|
221
|
+
# need refresh?
|
222
|
+
if @refresh
|
223
|
+
CE.enable_refresh
|
224
|
+
elsif @refresh_pre_match
|
225
|
+
CE.enable_refresh(:prematch)
|
226
|
+
end
|
227
|
+
|
138
228
|
if @is_watch
|
139
229
|
# Interactive mode
|
140
230
|
@exit_words = ["quit", "exit", "bye"]
|
141
231
|
output_interactive
|
142
232
|
else
|
143
233
|
if has_stdin
|
144
|
-
|
234
|
+
begin
|
235
|
+
target = STDIN.read
|
236
|
+
rescue Interrupt
|
237
|
+
puts $/ + %(No STDIN, Try to use -w option if you need Interactive mode.)
|
238
|
+
end
|
145
239
|
|
146
240
|
if ARGV.size > 0
|
147
241
|
print target
|
148
|
-
argv
|
242
|
+
argv = ARGV.join(" ")
|
149
243
|
argv += $/ if @last_lb
|
150
244
|
output(argv)
|
151
245
|
end
|
152
246
|
else
|
153
|
-
target
|
247
|
+
target = ARGV.join(" ")
|
154
248
|
target += $/ if @last_lb
|
155
249
|
end
|
156
250
|
|