howzit 2.0.22 → 2.0.25

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: 7e00517a83b13075c8af7884b3a5afd683f62008f6ccc8b50015044e7625a6b7
4
- data.tar.gz: 1918ceb4965f7a5fe127581c1dd602dfa387d8e310654f5ac7ca643ab5dd4c8d
3
+ metadata.gz: 29f72dd5e915f1fbec378cc4210902fb6e3b9ce376de4f4e962c08b40dc5bbca
4
+ data.tar.gz: bdc554ae8533b3a86360c82a41d4ea55677a5a271fab218db5b1057814aac490
5
5
  SHA512:
6
- metadata.gz: 549952e3e175d9fcd5df9d85400a8abc3279ff76862e172029e974920ba85aa8ef1dfb84fcdbaff94a260a5630f49c462cd58d5a97f359735978c074b9742c2d
7
- data.tar.gz: acb315d65c7cb1f9cf3e1ee6ef9044a1f7584b23f4bc1a7d58b39acda4851a62e58d55fe53fa227807c84f01093f3f07c6ad18070ceffda92ba05fe72f137573
6
+ metadata.gz: b49e67762ea36e7e792decb239a8d35f100f28be2992f70a2fb9b2d6ed13ba809db11aa4ea075244be6b263c1c464430b0e57db73ecf444a61f79fcdad812a91
7
+ data.tar.gz: 7d2d9b973f4798dc4ce0082ccdaad308748a4a39fe505f384f928cdf1fe73a23f751928907e2418a602e26f0de46bafb874d9f0917017d39a0c6feedcfb99990
data/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ ### 2.0.25
2
+
3
+ 2022-08-09 12:46
4
+
5
+ #### FIXED
6
+
7
+ - Template metadata inheritence
8
+
9
+ ### 2.0.24
10
+
11
+ 2022-08-09 09:04
12
+
13
+ #### FIXED
14
+
15
+ - Avoid reading upstream files multiple times
16
+
17
+ ### 2.0.23
18
+
19
+ 2022-08-09 05:51
20
+
21
+ #### FIXED
22
+
23
+ - --grep function regression
24
+
1
25
  ### 2.0.22
2
26
 
3
27
  2022-08-08 13:49
@@ -12,7 +12,7 @@ module Howzit
12
12
  ##
13
13
  ## @param file [String] The path to the build note file
14
14
  ##
15
- def initialize(file: nil)
15
+ def initialize(file: nil, meta: nil)
16
16
  file ||= note_file
17
17
 
18
18
  @topics = []
@@ -21,7 +21,9 @@ module Howzit
21
21
  content = Util.read_file(file)
22
22
  raise "{br}No content found in build note (#{file}){x}".c if content.nil? || content.empty?
23
23
 
24
- @metadata = content.split(/^#/)[0].strip.get_metadata
24
+ this_meta = content.split(/^#/)[0].strip.get_metadata
25
+
26
+ @metadata = meta.nil? ? this_meta : meta.merge(this_meta)
25
27
 
26
28
  read_help(file)
27
29
  end
@@ -32,7 +34,7 @@ module Howzit
32
34
  ## @return description
33
35
  ##
34
36
  def inspect
35
- puts "#<Howzit::BuildNote @topics=[#{@topics.count}]>"
37
+ "#<Howzit::BuildNote @topics=[#{@topics.count}]>"
36
38
  end
37
39
 
38
40
  ##
@@ -205,14 +207,14 @@ module Howzit
205
207
  if File.exist?(file) && !default
206
208
  file = "{by}#{file}".c
207
209
  unless Prompt.yn("Are you sure you want to overwrite #{file}", default: false)
208
- puts 'Cancelled'
210
+ Howzit.console.info('Cancelled')
209
211
  Process.exit 0
210
212
  end
211
213
  end
212
214
 
213
215
  File.open(file, 'w') do |f|
214
216
  f.puts note
215
- puts "{by}Template {bw}#{title}{by} written to {bw}#{file}{x}".c
217
+ Howzit.console.info("{by}Template {bw}#{title}{by} written to {bw}#{file}{x}".c)
216
218
  end
217
219
 
218
220
  if File.exist?(file) && !default && Prompt.yn("{bg}Do you want to open {bw}#{file} {bg}for editing?{x}".c,
@@ -298,14 +300,14 @@ module Howzit
298
300
  if File.exist?(fname) && !default
299
301
  file = "{by}#{fname}".c
300
302
  unless Prompt.yn("Are you absolutely sure you want to overwrite #{file}", default: false)
301
- puts 'Canceled'
303
+ Howzit.console.info('Canceled')
302
304
  Process.exit 0
303
305
  end
304
306
  end
305
307
 
306
308
  File.open(fname, 'w') do |f|
307
309
  f.puts note
308
- puts "{by}Build notes for {bw}#{title}{by} written to {bw}#{fname}{x}".c
310
+ Howzit.console.info("{by}Build notes for {bw}#{title}{by} written to {bw}#{fname}{x}".c)
309
311
  end
310
312
 
311
313
  if File.exist?(fname) && !default && Prompt.yn("{bg}Do you want to open {bw}#{fname} {bg}for editing?{x}".c,
@@ -451,11 +453,12 @@ module Howzit
451
453
  ## @return [Array] extracted topics
452
454
  ##
453
455
  def read_template(template, file, subtopics = nil)
454
- note = BuildNote.new(file: file)
456
+ note = BuildNote.new(file: file, meta: @metadata)
455
457
 
456
458
  template_topics = subtopics.nil? ? note.topics : extract_subtopics(note, subtopics)
457
459
  template_topics.map do |topic|
458
460
  topic.parent = template
461
+ topic.content = topic.content.render_template(@metadata)
459
462
  topic
460
463
  end
461
464
  end
@@ -532,7 +535,6 @@ module Howzit
532
535
  ##
533
536
  def read_upstream
534
537
  buildnotes = glob_upstream
535
-
536
538
  topics_dict = []
537
539
  buildnotes.each do |path|
538
540
  topics_dict.concat(read_help_file(path))
@@ -608,6 +610,7 @@ module Howzit
608
610
  end
609
611
  title = "#{short_path}:#{title}"
610
612
  end
613
+
611
614
  topic = Topic.new(title, prefix + lines.join("\n").strip.render_template(@metadata))
612
615
 
613
616
  topics.push(topic)
@@ -627,12 +630,15 @@ module Howzit
627
630
  ##
628
631
  def read_help(path = nil)
629
632
  @topics = read_help_file(path)
630
- return unless path.nil? && Howzit.options[:include_upstream]
633
+ return unless Howzit.options[:include_upstream]
631
634
 
632
- upstream_topics = read_upstream
635
+ unless Howzit.has_read_upstream
636
+ upstream_topics = read_upstream
633
637
 
634
- upstream_topics.each do |topic|
635
- @topics.push(topic) unless find_topic(title.sub(/^.+:/, '')).count.positive?
638
+ upstream_topics.each do |topic|
639
+ @topics.push(topic) unless find_topic(topic.title.sub(/^.+:/, '')).count.positive?
640
+ end
641
+ Howzit.has_read_upstream = true
636
642
  end
637
643
 
638
644
  if note_file && @topics.empty?
@@ -691,7 +697,7 @@ module Howzit
691
697
  ## single topic
692
698
  ##
693
699
  def process_topic(topic, run, single: false)
694
- new_topic = topic.dup
700
+ new_topic = topic.is_a?(String) ? find_topic(topic)[0] : topic.dup
695
701
 
696
702
  # Handle variable replacement
697
703
  new_topic.content = new_topic.content.render_arguments
@@ -793,6 +799,7 @@ module Howzit
793
799
 
794
800
  if !topic_matches.empty?
795
801
  # If we found a match
802
+ topic_matches.map! { |topic| topic.is_a?(String) ? find_topic(topic)[0] : topic }
796
803
  topic_matches.each { |topic_match| output.push(process_topic(topic_match, Howzit.options[:run], single: true)) }
797
804
  else
798
805
  # If there's no argument or no match found, output all
@@ -3,5 +3,5 @@
3
3
  # Primary module for this gem.
4
4
  module Howzit
5
5
  # Current Howzit version.
6
- VERSION = '2.0.22'
6
+ VERSION = '2.0.25'
7
7
  end
data/lib/howzit.rb CHANGED
@@ -82,5 +82,13 @@ module Howzit
82
82
  def console
83
83
  @console ||= Howzit::ConsoleLogger.new(options[:log_level])
84
84
  end
85
+
86
+ def has_read_upstream
87
+ @has_read_upstream ||= false
88
+ end
89
+
90
+ def has_read_upstream=(has_read)
91
+ @has_read_upstream = has_read
92
+ end
85
93
  end
86
94
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: howzit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.22
4
+ version: 2.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-08 00:00:00.000000000 Z
11
+ date: 2022-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler