howzit 2.1.1 → 2.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/lib/howzit/colors.rb +3 -3
- data/lib/howzit/stringutils.rb +16 -13
- data/lib/howzit/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d34bc56b28033e3f708225b2706bca8d0c2ccaa3d727f9193855412940071e68
|
4
|
+
data.tar.gz: 0f78cefe615f34c31590e206081c01d3b7229da6e1045ea215872fc71ba2942c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e22946b9e257c6d13ce3d950584049f31c570aa618e047e6041ea1ef5b3a9ca85322124ef6fcc04a41dac4860b3441045265a4080886df13d31322b7bd88ad80
|
7
|
+
data.tar.gz: 120350fb80cea5353cc79dbe8f63e5adec7d14b45fa6df526cc3de349a8d54a797bf283467d4d45f4156a34b3ea2d06c8915f9b66b7e1eff6cf0d95fd6f777a7
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
### 2.1.3
|
2
|
+
|
3
|
+
2023-03-07 11:21
|
4
|
+
|
5
|
+
#### FIXED
|
6
|
+
|
7
|
+
- Annoying warning about color template format string having too many arguments
|
8
|
+
|
9
|
+
### 2.1.2
|
10
|
+
|
11
|
+
2023-03-07 10:24
|
12
|
+
|
13
|
+
#### IMPROVED
|
14
|
+
|
15
|
+
- Merge metadata into named variables so they're also available as ${NAME}
|
16
|
+
|
1
17
|
### 2.1.1
|
2
18
|
|
3
19
|
2023-03-07 09:47
|
data/lib/howzit/colors.rb
CHANGED
@@ -227,7 +227,7 @@ module Howzit
|
|
227
227
|
def template(input)
|
228
228
|
input = input.join(' ') if input.is_a? Array
|
229
229
|
fmt = input.gsub(/%/, '%%')
|
230
|
-
fmt = fmt.gsub(/(?<!\\u)\{(\w+)\}/i) do
|
230
|
+
fmt = fmt.gsub(/(?<!\\u|\$)\{(\w+)\}/i) do
|
231
231
|
Regexp.last_match(1).split('').map { |c| "%<#{c}>s" }.join('')
|
232
232
|
end
|
233
233
|
|
@@ -237,7 +237,7 @@ module Howzit
|
|
237
237
|
Y: bgyellow, C: bgcyan, M: bgmagenta, R: bgred,
|
238
238
|
d: dark, b: bold, u: underline, i: italic, x: reset }
|
239
239
|
|
240
|
-
format(fmt, colors)
|
240
|
+
fmt.empty? ? input : format(fmt, colors)
|
241
241
|
end
|
242
242
|
end
|
243
243
|
|
@@ -304,7 +304,7 @@ module Howzit
|
|
304
304
|
%w[r g b].each do |e|
|
305
305
|
t << parts[e].hex
|
306
306
|
end
|
307
|
-
|
307
|
+
|
308
308
|
"\e[#{is_bg ? '48' : '38'};2;#{t.join(';')}m"
|
309
309
|
end
|
310
310
|
|
data/lib/howzit/stringutils.rb
CHANGED
@@ -242,25 +242,25 @@ module Howzit
|
|
242
242
|
##
|
243
243
|
def render_arguments
|
244
244
|
str = dup
|
245
|
-
str.
|
245
|
+
str.render_named_placeholders
|
246
|
+
str.render_numeric_placeholders
|
247
|
+
Howzit.arguments.nil? ? str : str.gsub(/\$[@*]/, Shellwords.join(Howzit.arguments))
|
248
|
+
end
|
249
|
+
|
250
|
+
def render_named_placeholders
|
251
|
+
gsub!(/\$\{(?<name>[A-Z0-9_]+(?::.*?)?)\}/i) do
|
246
252
|
m = Regexp.last_match
|
247
253
|
arg, default = m['name'].split(/:/).map(&:strip)
|
248
254
|
Howzit.named_arguments.key?(arg) && !Howzit.named_arguments[arg].nil? ? Howzit.named_arguments[arg] : default
|
249
255
|
end
|
256
|
+
end
|
250
257
|
|
251
|
-
|
252
|
-
|
253
|
-
arg, default =
|
258
|
+
def render_numeric_placeholders
|
259
|
+
gsub!(/\$\{?(\d+)\}?/) do
|
260
|
+
arg, default = Regexp.last_match(1).split(/:/)
|
254
261
|
idx = arg.to_i - 1
|
255
|
-
|
256
|
-
Howzit.arguments[idx]
|
257
|
-
elsif default
|
258
|
-
default
|
259
|
-
else
|
260
|
-
m[0]
|
261
|
-
end
|
262
|
+
Howzit.arguments.length > idx ? Howzit.arguments[idx] : default || Regexp.last_match(0)
|
262
263
|
end
|
263
|
-
Howzit.arguments.nil? ? str : str.gsub(/\$[@*]/, Shellwords.join(Howzit.arguments))
|
264
264
|
end
|
265
265
|
|
266
266
|
##
|
@@ -289,7 +289,10 @@ module Howzit
|
|
289
289
|
scan(/(?mi)^(\S[\s\S]+?): ([\s\S]*?)(?=\n\S[\s\S]*?:|\Z)/).each do |m|
|
290
290
|
data[m[0].strip.downcase] = m[1]
|
291
291
|
end
|
292
|
-
normalize_metadata(data)
|
292
|
+
out = normalize_metadata(data)
|
293
|
+
Howzit.named_arguments ||= {}
|
294
|
+
Howzit.named_arguments = out.merge(Howzit.named_arguments)
|
295
|
+
out
|
293
296
|
end
|
294
297
|
|
295
298
|
##
|
data/lib/howzit/version.rb
CHANGED