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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 28505fefd411902ebd75d786f31e6967822aaff975dbb1f55bb13994e583b792
4
- data.tar.gz: 105e760d5595f4b8664969b6258240d17fb16ede995d3698e2d7bb4a36276824
3
+ metadata.gz: d34bc56b28033e3f708225b2706bca8d0c2ccaa3d727f9193855412940071e68
4
+ data.tar.gz: 0f78cefe615f34c31590e206081c01d3b7229da6e1045ea215872fc71ba2942c
5
5
  SHA512:
6
- metadata.gz: 338ad20ebae27dc9d504671df84789be608fd73b123b1a7966ae5cd6c160c7543d21596df6c6b4268fb827f732d80f581d8cb15520f02b19cb27014f4903ff51
7
- data.tar.gz: 6283e6c567425ea667e399ca338ccdea86023157b9b58709d1f006fd94f8b71286eba18f6c170a25d2cae4bbc571f79b0a667936ec162967115b7cdb8b374684
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
- color =
307
+
308
308
  "\e[#{is_bg ? '48' : '38'};2;#{t.join(';')}m"
309
309
  end
310
310
 
@@ -242,25 +242,25 @@ module Howzit
242
242
  ##
243
243
  def render_arguments
244
244
  str = dup
245
- str.gsub!(/\$\{(?<name>[A-Z0-9_]+(?::.*?)?)\}/i) do |mtch|
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
- str.gsub!(/\$\{?(\d+)\}?/) do
252
- m = Regexp.last_match
253
- arg, default = m[1].split(/:/)
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
- if Howzit.arguments.length > idx
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
  ##
@@ -3,5 +3,5 @@
3
3
  # Primary module for this gem.
4
4
  module Howzit
5
5
  # Current Howzit version.
6
- VERSION = '2.1.1'
6
+ VERSION = '2.1.3'
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: howzit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra