color_echo 1.3.0 → 2.0.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.
- 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/lib/display.rb
CHANGED
@@ -1,15 +1,26 @@
|
|
1
|
-
@explain_v
|
2
|
-
@explain_s
|
3
|
-
@explain_l
|
4
|
-
@explain_p
|
5
|
-
@
|
6
|
-
@
|
7
|
-
@
|
8
|
-
@
|
9
|
-
@
|
10
|
-
@
|
11
|
-
@
|
12
|
-
@
|
1
|
+
@explain_v = %(Show version of color_echo.)
|
2
|
+
@explain_s = %(Show symbol list that can to specify.)
|
3
|
+
@explain_l = %(Show color index list that can to specify.)
|
4
|
+
@explain_p = %(Decorate your specified wrods. You can use this option any number of times.)
|
5
|
+
@explain_H = %(Highlight the match lines by -p options word. format -H "fg_color, bg_color, text_attribute[,...]")
|
6
|
+
@explain_f = %(Specify the foreground color.)
|
7
|
+
@explain_b = %(Specify the background color.)
|
8
|
+
@explain_t = %(Specify the text attributes.)
|
9
|
+
@explain_w = %(Interactive mode. Break word is -> exit, quit, bye; Or Ctl + c)
|
10
|
+
@explain_n = %(Do not output the trailing newline.)
|
11
|
+
@explain_e = %(Enable interpretation of line feed.)
|
12
|
+
@explain_h = %(Show help message with example.)
|
13
|
+
@explain_r = %(Try to remove the sequence code from the given before matching pickups.)
|
14
|
+
@explain_R = %(Try to remove the sequence code from the given.)
|
15
|
+
@explain_stripe = %(Decorate on every other line. pickup option is ignored.)
|
16
|
+
@padding = " " * 4
|
17
|
+
@explain_usage = @padding * 2 + %(colorecho [options] message) + $/
|
18
|
+
@explain_usage += @padding * 2 + %(colorecho [options] < /path/to/file) + $/
|
19
|
+
@explain_usage += @padding * 2 + %(echo "message" | colorecho [options]) + $/
|
20
|
+
@explain_usage += @padding * 2 + %(colorecho -v) + $/
|
21
|
+
@explain_usage += @padding * 2 + %(colorecho -s) + $/
|
22
|
+
@explain_usage += @padding * 2 + %(colorecho -l) + $/
|
23
|
+
@explain_usage += @padding * 2 + %(colorecho -h)
|
13
24
|
|
14
25
|
def version
|
15
26
|
require_color_echo
|
@@ -23,140 +34,151 @@ def usage
|
|
23
34
|
|
24
35
|
CE.once.ch :yellow
|
25
36
|
puts <<-EOS
|
26
|
-
|
27
37
|
#{CE::LIBS_NAME} - #{CE::SUMMARY}
|
28
38
|
VERSION: #{CE::VERSION}
|
29
39
|
README: #{CE::DOCS_PAGE}
|
30
40
|
|
31
41
|
EOS
|
32
42
|
|
33
|
-
padding = " " * 4
|
34
43
|
headers = ["* Usage", "* Options", "* Example"]
|
35
44
|
headers_op = [
|
36
|
-
|
37
|
-
|
45
|
+
"-v:", "--symbol-list:", "--index-list:", "--pickup word [--pickup word ...]:", "--fg color_name:", "--bg color_name:",
|
46
|
+
"--tx text_attribute[,...]:", "--watch:", "--stripe:", %(--hightlight "foreground_color[,background_color[,text_attribute]]:"),
|
47
|
+
"--refresh:", "--refresh-pre-match:", "--help:", "-n:", "-e:"
|
38
48
|
]
|
39
49
|
CE.pickup(headers, :h_green)
|
40
50
|
CE.pickup(headers_op, :cyan)
|
41
51
|
|
42
|
-
puts padding + "* Usage"
|
52
|
+
puts @padding + "* Usage"
|
43
53
|
|
44
54
|
CE.ch :h_blue
|
45
|
-
puts
|
46
|
-
puts padding * 2 + "color_echo [options] < /path/to/file"
|
47
|
-
puts padding * 2 + "echo text | color_echo [options]"
|
48
|
-
puts padding * 2 + "color_echo -v"
|
49
|
-
puts padding * 2 + "color_echo -s"
|
50
|
-
puts padding * 2 + "color_echo -l"
|
51
|
-
puts padding * 2 + "color_echo -h" + $/ + $/
|
55
|
+
puts @explain_usage + $/ + $/
|
52
56
|
CE.off :fg
|
53
57
|
|
54
|
-
puts padding + "* Options"
|
55
|
-
|
56
|
-
puts padding * 2 + "-v:"
|
57
|
-
puts padding * 3 + @explain_v + $/ + $/
|
58
|
+
puts @padding + "* Options"
|
58
59
|
|
59
|
-
puts padding * 2 + "--symbol-list:"
|
60
|
-
puts padding * 3 + @explain_s
|
61
|
-
puts padding * 3 + "short option is -s." + $/ + $/
|
60
|
+
puts @padding * 2 + "--symbol-list:"
|
61
|
+
puts @padding * 3 + @explain_s
|
62
|
+
puts @padding * 3 + "short option is -s." + $/ + $/
|
62
63
|
|
63
|
-
puts padding * 2 + "--index-list:"
|
64
|
-
puts padding * 3 + @explain_l
|
65
|
-
puts padding * 3 + "short option is -l." + $/ + $/
|
64
|
+
puts @padding * 2 + "--index-list:"
|
65
|
+
puts @padding * 3 + @explain_l
|
66
|
+
puts @padding * 3 + "short option is -l." + $/ + $/
|
67
|
+
|
68
|
+
puts @padding * 2 + "--pickup word [--pickup word ...]:"
|
69
|
+
puts @padding * 3 + @explain_p
|
70
|
+
puts @padding * 3 + "Regular expressions can be used; like that -> /^foo/i"
|
71
|
+
puts @padding * 3 + "short option is -p." + $/ + $/
|
72
|
+
|
73
|
+
puts @padding * 2 + %(--hightlight "foreground_color[,background_color[,text_attribute]]:")
|
74
|
+
puts @padding * 3 + @explain_H
|
75
|
+
puts @padding * 3 + %(example -> echo "some message" | colorecho -H "nil,gray" -p /some patturn/ -f h_yellow)
|
76
|
+
puts @padding * 3 + "short option is -H." + $/ + $/
|
77
|
+
|
78
|
+
puts @padding * 2 + "--fg color_name:"
|
79
|
+
puts @padding * 3 + @explain_f
|
80
|
+
puts @padding * 3 + "short option is -f." + $/ + $/
|
81
|
+
|
82
|
+
puts @padding * 2 + "--bg color_name:"
|
83
|
+
puts @padding * 3 + @explain_b
|
84
|
+
puts @padding * 3 + "short option is -b." + $/ + $/
|
66
85
|
|
67
|
-
puts padding * 2 + "--
|
68
|
-
puts padding * 3 + @
|
69
|
-
puts padding * 3 + "
|
70
|
-
puts padding * 3 + "short option is -p." + $/ + $/
|
86
|
+
puts @padding * 2 + "--tx text_attribute[,...]:"
|
87
|
+
puts @padding * 3 + @explain_t
|
88
|
+
puts @padding * 3 + "short option is -t." + $/ + $/
|
71
89
|
|
72
|
-
puts padding * 2 + "--
|
73
|
-
puts padding * 3 + @
|
74
|
-
puts padding * 3 + "short option is -
|
90
|
+
puts @padding * 2 + "--watch:"
|
91
|
+
puts @padding * 3 + @explain_w
|
92
|
+
puts @padding * 3 + "short option is -w." + $/ + $/
|
75
93
|
|
76
|
-
puts padding * 2 + "--
|
77
|
-
puts padding * 3 + @
|
78
|
-
puts padding * 3 + "short option is -b." + $/ + $/
|
94
|
+
puts @padding * 2 + "--stripe:"
|
95
|
+
puts @padding * 3 + @explain_stripe + $/ + $/
|
79
96
|
|
80
|
-
puts padding * 2 + "--
|
81
|
-
puts padding * 3 + @
|
82
|
-
puts padding * 3 + "
|
97
|
+
puts @padding * 2 + "--refresh-pre-match:"
|
98
|
+
puts @padding * 3 + @explain_r
|
99
|
+
puts @padding * 3 + "If it matches, Try to remove sequence code from it."
|
100
|
+
puts @padding * 3 + "short option is -r." + $/ + $/
|
83
101
|
|
84
|
-
puts padding * 2 + "--
|
85
|
-
puts padding * 3 + @
|
86
|
-
puts padding * 3 + "short option is -
|
102
|
+
puts @padding * 2 + "--refresh:"
|
103
|
+
puts @padding * 3 + @explain_R
|
104
|
+
puts @padding * 3 + "short option is -R." + $/ + $/
|
87
105
|
|
88
|
-
puts padding * 2 + "
|
89
|
-
puts padding * 3 + @
|
106
|
+
puts @padding * 2 + "-n:"
|
107
|
+
puts @padding * 3 + @explain_n + $/ + $/
|
90
108
|
|
91
|
-
puts padding * 2 + "-
|
92
|
-
puts padding * 3 + @
|
109
|
+
puts @padding * 2 + "-e:"
|
110
|
+
puts @padding * 3 + @explain_e + $/ + $/
|
93
111
|
|
94
|
-
puts padding * 2 + "-
|
95
|
-
puts padding * 3 + @
|
112
|
+
puts @padding * 2 + "-v:"
|
113
|
+
puts @padding * 3 + @explain_v + $/ + $/
|
96
114
|
|
97
|
-
puts padding * 2 + "
|
98
|
-
puts padding * 3 + @explain_h
|
115
|
+
puts @padding * 2 + "--help:"
|
116
|
+
puts @padding * 3 + @explain_h
|
117
|
+
puts @padding * 3 + "short option is -h." + $/ + $/
|
99
118
|
|
100
|
-
puts padding + "* Example"
|
119
|
+
puts @padding + "* Example"
|
101
120
|
|
102
121
|
CE.once.ch :h_magenta
|
103
|
-
puts padding * 2 + %(* color_echo can to highlight even when you following the log file by tailf, tail -f.)
|
104
|
-
puts padding * 3 + %(tailf /var/log/httpd/access_log |
|
105
|
-
puts padding * 3 + %(tailf /var/log/php/php_error.log |
|
122
|
+
puts @padding * 2 + %(* color_echo can to highlight even when you following the log file by tailf, tail -f.)
|
123
|
+
puts @padding * 3 + %(tailf /var/log/httpd/access_log | colorecho -w -p "127.0.0.1" -t bold)
|
124
|
+
puts @padding * 3 + %(tailf /var/log/php/php_error.log | colorecho -w -p "foo.php" -p "Fatal error:" -f h_blue) + $/ + $/
|
106
125
|
|
107
126
|
CE.once.ch :h_magenta
|
108
|
-
puts padding * 2 + %(* color_echo is useful to read the access log, etc.)
|
109
|
-
puts padding * 3 + %(cat /var/log/httpd/access_log |
|
110
|
-
puts padding * 3 + %(
|
111
|
-
puts padding * 3 + %((
|
112
|
-
puts padding * 3 + %(sed -n 1,1000p /var/log/httpd/access_log |
|
127
|
+
puts @padding * 2 + %(* color_echo is useful to read the access log, etc.)
|
128
|
+
puts @padding * 3 + %(cat /var/log/httpd/access_log | colorecho -p "Sun Jan 18" -f h_cyan -t underscore | less -R)
|
129
|
+
puts @padding * 3 + %(colorecho -p "Sun Jan 18" -f h_cyan -t underscore < /var/log/httpd/access_log | less -R)
|
130
|
+
puts @padding * 3 + %((colorecho -f cyan -p /\\\\s2..\\\\s/ | colorecho -f h_red -p /\\\\s5..\\\\s/ | less -R) < /var/log/httpd/access_log)
|
131
|
+
puts @padding * 3 + %(sed -n 1,1000p /var/log/httpd/access_log | colorecho -f cyan -p /\\\\s2..\\\\s/ | colorecho -f h_red -p /\\\\s5..\\\\s/ | less -R) + $/ + $/
|
113
132
|
|
114
133
|
CE.once.ch :h_magenta
|
115
|
-
puts padding * 2 + %(* It is a simple to use.)
|
116
|
-
puts padding * 3 + %(
|
117
|
-
puts padding * 3 + %(
|
134
|
+
puts @padding * 2 + %(* It is a simple to use.)
|
135
|
+
puts @padding * 3 + %(colorecho Hello\\!\\! -f h_white -b index199)
|
136
|
+
puts @padding * 3 + %(colorecho Hello\\!\\! -t blink,bold -f magenta) + $/ + $/
|
118
137
|
|
119
138
|
CE.once.ch :h_magenta
|
120
|
-
puts padding * 2 + %(* color_echo can to receive the standard input.)
|
121
|
-
puts padding * 3 + %(echo FooFoOfOO |
|
122
|
-
puts padding * 3 + %(echo FooFoOfOO |
|
123
|
-
puts padding * 3 + %(netstat -na |
|
139
|
+
puts @padding * 2 + %(* color_echo can to receive the standard input.)
|
140
|
+
puts @padding * 3 + %(echo FooFoOfOO | colorecho -t reverse_video)
|
141
|
+
puts @padding * 3 + %(echo FooFoOfOO | colorecho -f index130 -p /foo$/i | colorecho -f index180 -p /^foo/i)
|
142
|
+
puts @padding * 3 + %(netstat -na | colorecho -p ":80" | colorecho -p "127.0.0.1" -f h_cyan) + $/ + $/
|
124
143
|
|
125
144
|
CE.once.ch :h_magenta
|
126
|
-
puts padding * 2 + %(* color_echo can to decorate on every other line.)
|
127
|
-
puts padding * 3 + %(
|
128
|
-
puts padding * 3 + %(tailf /var/log/httpd/access_log |
|
145
|
+
puts @padding * 2 + %(* color_echo can to decorate on every other line.)
|
146
|
+
puts @padding * 3 + %(colorecho -f gray -t bold --stripe < /path/to/file)
|
147
|
+
puts @padding * 3 + %(tailf /var/log/httpd/access_log | colorecho -w -f black -b index150 -t bold --stripe) + $/ + $/
|
148
|
+
|
149
|
+
CE.once.rainbow
|
150
|
+
puts @padding * 2 + %(* Enjoy colors!!)
|
151
|
+
puts @padding * 3 + %(tailf /var/log/httpd/access_log | colorecho -w -f index235 -r | colorecho -w -p "pattern1" -f index3 -t underscore,bold -H index85 -r | colorecho -w -p "pattern2" -f index28,nil -t underscore,bold -H index46 -r | colorecho -w -p "pattern3" -t bold,underscore -f index198 -H index178 -r) + $/ + $/
|
129
152
|
|
130
153
|
exit 0
|
131
154
|
end
|
132
155
|
|
156
|
+
# TODO need pager like 'less'?
|
133
157
|
def display_color_index
|
134
|
-
|
158
|
+
require_color_echo_get
|
135
159
|
|
136
160
|
CE.rainbow
|
137
|
-
cnt
|
138
|
-
padding = " " * 2
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
161
|
+
cnt = 134
|
162
|
+
@padding = " " * 2
|
163
|
+
|
164
|
+
header = "OK, Let me check color index list... :)"
|
165
|
+
mes = CE.rainbow.get(@padding + "-" * cnt) + $/
|
166
|
+
mes += @padding + " " * ((cnt - header.size)/2) + CE.rainbow.get(header) + $/
|
167
|
+
mes += CE.rainbow.get(@padding + "-" * cnt) + $/
|
168
|
+
|
169
|
+
mes += @padding
|
145
170
|
256.times do |i|
|
146
171
|
num = i + 1
|
147
|
-
CE.fg
|
148
|
-
|
149
|
-
|
150
|
-
print " " * 5
|
151
|
-
CE.off
|
152
|
-
print " " * 3
|
172
|
+
mes += CE.fg("index#{num}".intern).get("index#{num}" + " " * (4 - num.to_s.size))
|
173
|
+
mes += CE.bg("index#{num}".intern).get(" " * 5)
|
174
|
+
mes += " " * 3
|
153
175
|
|
154
176
|
if num % 8 == 0
|
155
|
-
|
156
|
-
|
177
|
+
mes += $/ + $/
|
178
|
+
mes += @padding if num != 256
|
157
179
|
end
|
158
180
|
end
|
159
|
-
|
181
|
+
print mes
|
160
182
|
|
161
183
|
exit 0
|
162
184
|
end
|
@@ -192,20 +214,20 @@ def display_symbol_list
|
|
192
214
|
|
193
215
|
CE.times(3).rainbow
|
194
216
|
cnt = 60
|
195
|
-
padding = " " * 2
|
217
|
+
@padding = " " * 2
|
196
218
|
mes = "OK, Let me check color name list... :)"
|
197
|
-
puts padding + "-" * cnt
|
198
|
-
puts padding + " " * ((cnt - mes.size)/2) + mes
|
199
|
-
puts padding + "-" * cnt
|
219
|
+
puts @padding + "-" * cnt
|
220
|
+
puts @padding + " " * ((cnt - mes.size)/2) + mes
|
221
|
+
puts @padding + "-" * cnt
|
200
222
|
|
201
223
|
header_colors = "* foreground or background colors"
|
202
224
|
header_text_attrs = "* text attributes"
|
203
225
|
CE.pickup([header_colors, header_text_attrs], :cyan, nil, [:underscore, :bold])
|
204
226
|
|
205
|
-
puts padding + header_colors
|
227
|
+
puts @padding + header_colors
|
206
228
|
symbols_color.each do |color_name|
|
207
229
|
CE.off(:bg).fg color_name
|
208
|
-
print "#{padding*2}:#{color_name}" + " " * (11 - color_name.to_s.size)
|
230
|
+
print "#{@padding*2}:#{color_name}" + " " * (11 - color_name.to_s.size)
|
209
231
|
CE.bg color_name
|
210
232
|
puts color_name.to_s + " " * (30 - color_name.to_s.size)
|
211
233
|
end
|
@@ -213,15 +235,14 @@ def display_symbol_list
|
|
213
235
|
CE.off [:bg, :fg]
|
214
236
|
print $/ + $/
|
215
237
|
|
216
|
-
puts padding + header_text_attrs
|
238
|
+
puts @padding + header_text_attrs
|
217
239
|
symbols_text_attr.each do |tx_name|
|
218
240
|
CE.off(:tx)
|
219
241
|
CE.tx tx_name if tx_name != :concealed
|
220
|
-
puts "#{padding*2}:#{tx_name}" + " " * (30 - tx_name.to_s.size)
|
242
|
+
puts "#{@padding*2}:#{tx_name}" + " " * (30 - tx_name.to_s.size)
|
221
243
|
end
|
222
244
|
|
223
245
|
print $/
|
224
246
|
|
225
247
|
exit 0
|
226
248
|
end
|
227
|
-
|
data/lib/color_echo/const.rb
CHANGED
data/lib/color_echo/functions.rb
CHANGED
@@ -22,6 +22,7 @@ module CE
|
|
22
22
|
reset_bg
|
23
23
|
reset_tx
|
24
24
|
reset_pickup
|
25
|
+
reset_hitline
|
25
26
|
reset_rainbow
|
26
27
|
when :fg
|
27
28
|
reset_fg
|
@@ -31,6 +32,8 @@ module CE
|
|
31
32
|
reset_tx
|
32
33
|
when :pickup
|
33
34
|
reset_pickup
|
35
|
+
when :hitline
|
36
|
+
reset_hitline
|
34
37
|
when :rainbow
|
35
38
|
reset_rainbow
|
36
39
|
end
|
@@ -150,6 +153,38 @@ module CE
|
|
150
153
|
return self
|
151
154
|
end
|
152
155
|
|
156
|
+
# change hit lines decoration
|
157
|
+
# @return void
|
158
|
+
def hitline(fg=nil, bg=nil, *txs)
|
159
|
+
if fg.instance_of?(Symbol)
|
160
|
+
@@code_hitline_fg_color = convert_to_code("ForeGround", fg)
|
161
|
+
else
|
162
|
+
@@code_hitline_fg_color = ""
|
163
|
+
end
|
164
|
+
|
165
|
+
if bg.instance_of?(Symbol)
|
166
|
+
@@code_hitline_bg_color = convert_to_code("BackGround", bg)
|
167
|
+
else
|
168
|
+
@@code_hitline_bg_color = ""
|
169
|
+
end
|
170
|
+
|
171
|
+
if txs.size > 0
|
172
|
+
txs = txs[0] if txs[0].instance_of?(Array)
|
173
|
+
txs.each do |name|
|
174
|
+
next if !name.is_a?(Symbol)
|
175
|
+
@@code_hitline_text_attr += convert_to_code("TextAttr", name)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
return self
|
180
|
+
end
|
181
|
+
|
182
|
+
# get escape sequence code of that hit record line
|
183
|
+
# @return string
|
184
|
+
def get_hitline_code
|
185
|
+
return @@code_hitline_fg_color + @@code_hitline_bg_color + @@code_hitline_text_attr
|
186
|
+
end
|
187
|
+
|
153
188
|
# get decorated text
|
154
189
|
# require "color_echo/get"
|
155
190
|
# @param string text
|
@@ -166,6 +201,26 @@ module CE
|
|
166
201
|
@@task.call(text)
|
167
202
|
end
|
168
203
|
|
204
|
+
# Enable refresh flag
|
205
|
+
# @return self
|
206
|
+
def enable_refresh(scope=:all)
|
207
|
+
if scope == :all
|
208
|
+
@@refresh = true
|
209
|
+
elsif scope == :prematch
|
210
|
+
@@refresh_pre_match = true
|
211
|
+
end
|
212
|
+
|
213
|
+
return self
|
214
|
+
end
|
215
|
+
|
216
|
+
# Disable refresh flag
|
217
|
+
# @return self
|
218
|
+
def disable_refresh
|
219
|
+
@@refresh = false
|
220
|
+
@@refresh_pre_match = false
|
221
|
+
return self
|
222
|
+
end
|
223
|
+
|
169
224
|
# method alias
|
170
225
|
alias_method :off, :reset
|
171
226
|
alias_method :disable, :reset
|
data/lib/color_echo/internal.rb
CHANGED
@@ -45,6 +45,15 @@ module CE
|
|
45
45
|
return self
|
46
46
|
end
|
47
47
|
|
48
|
+
# reset hitline code
|
49
|
+
# @return self
|
50
|
+
def reset_hitline
|
51
|
+
@@code_hitline_bg_color = ""
|
52
|
+
@@code_hitline_fg_color = ""
|
53
|
+
@@code_hitline_text_attr = ""
|
54
|
+
return self
|
55
|
+
end
|
56
|
+
|
48
57
|
# reset and off raubow mode
|
49
58
|
# @return self
|
50
59
|
def reset_rainbow
|
@@ -66,9 +75,11 @@ module CE
|
|
66
75
|
|
67
76
|
# return start escape sequence code
|
68
77
|
# @return string
|
69
|
-
def get_start_code
|
78
|
+
def get_start_code(type=nil)
|
70
79
|
if @@rainbow
|
71
80
|
return @@code_rainbow
|
81
|
+
elsif type == :hitline
|
82
|
+
return @@code_hitline_fg_color + @@code_hitline_bg_color + @@code_hitline_text_attr
|
72
83
|
else
|
73
84
|
return @@code_fg_color + @@code_bg_color + @@code_text_attr
|
74
85
|
end
|
@@ -82,6 +93,7 @@ module CE
|
|
82
93
|
# add reset & start code to line feed code
|
83
94
|
# @param string input
|
84
95
|
def add_reset_line_feed(input)
|
96
|
+
input = input.unpack("C*").pack("U*") if !input.valid_encoding?
|
85
97
|
input.gsub!(/#{$/}/, get_reset_code + $/ + get_start_code)
|
86
98
|
input += get_reset_code
|
87
99
|
return input
|
@@ -100,6 +112,7 @@ module CE
|
|
100
112
|
next
|
101
113
|
end
|
102
114
|
|
115
|
+
# TODO This way so lame...
|
103
116
|
case cnt
|
104
117
|
when 0
|
105
118
|
output += ForeGround::RED + char + Off::ALL + get_start_code
|
@@ -129,9 +142,16 @@ module CE
|
|
129
142
|
# @param string text
|
130
143
|
# @return string
|
131
144
|
def add_pickup_code(text)
|
145
|
+
if @@refresh_pre_match
|
146
|
+
# remove sequence code from given If it matches pickups
|
147
|
+
orgtext = text.clone
|
148
|
+
text = cleanup_text(text)
|
149
|
+
end
|
150
|
+
|
151
|
+
is_match = false
|
132
152
|
@@pickup_list.each_pair do |key, hash|
|
133
|
-
patterns
|
134
|
-
|
153
|
+
patterns = hash[:patterns]
|
154
|
+
code_pickup = hash[:code]
|
135
155
|
|
136
156
|
# repeat to each specified pickup pattern
|
137
157
|
patterns.each do |pattern|
|
@@ -141,18 +161,26 @@ module CE
|
|
141
161
|
# global match
|
142
162
|
(text.scan(pattern)).size.times do
|
143
163
|
pattern =~ text
|
144
|
-
after_text += $` +
|
164
|
+
after_text += $` + get_reset_code + code_pickup + $& + get_reset_code + get_start_code + get_start_code(:hitline)
|
145
165
|
text = $'
|
146
166
|
end
|
147
|
-
text
|
167
|
+
text = after_text + text
|
168
|
+
is_match = ($& != nil) if (!is_match)
|
148
169
|
|
149
170
|
# pattern is String
|
150
171
|
else
|
151
|
-
text.gsub!(pattern,
|
172
|
+
res = text.gsub!(pattern, get_reset_code + code_pickup + pattern + get_reset_code + get_start_code + get_start_code(:hitline))
|
173
|
+
is_match = (res != nil) if (!is_match)
|
152
174
|
end
|
153
175
|
end
|
154
176
|
end
|
155
177
|
|
178
|
+
if is_match
|
179
|
+
text = get_start_code(:hitline) + text + get_reset_code
|
180
|
+
elsif @@refresh_pre_match
|
181
|
+
text = orgtext
|
182
|
+
end
|
183
|
+
|
156
184
|
return text
|
157
185
|
end
|
158
186
|
|
@@ -183,4 +211,12 @@ module CE
|
|
183
211
|
def task
|
184
212
|
return @@task
|
185
213
|
end
|
214
|
+
|
215
|
+
# try to remove escape sequence code
|
216
|
+
# @param string text
|
217
|
+
# @return texgt
|
218
|
+
def cleanup_text(text)
|
219
|
+
text.gsub!(/\e\[[0-9;]+[mK]/, "")
|
220
|
+
return text
|
221
|
+
end
|
186
222
|
end
|