howzit 2.1.1 → 2.1.3

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 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