howzit 2.0.21 → 2.0.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/bin/howzit +9 -7
- data/lib/howzit/buildnote.rb +20 -15
- data/lib/howzit/version.rb +1 -1
- data/lib/howzit.rb +8 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d5ddc7a4ec5cda133517d27dfef17d80299c17a68de2469e9dab66e81dffa33
|
4
|
+
data.tar.gz: 78fed9d51d054f4c39d3bb6b9daed3709e6a7f7644e5a6368bb924bb0b042665
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5427a3f6754462ae1311194407a3c6dfc71b084bb639afa29d961fad758ed554ce40ccdb21ec7b9175289343866da6d1ddb0f9db5fccb12f8224d206f9d53b98
|
7
|
+
data.tar.gz: 6222c4a34783c842fc342a27b2167588578afefa3f45a2fc16637b5d3f266d99d11bbefada5dd4a586902f914566a86efcef4262396133e573cf520923cd468a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
### 2.0.24
|
2
|
+
|
3
|
+
2022-08-09 09:04
|
4
|
+
|
5
|
+
#### FIXED
|
6
|
+
|
7
|
+
- Avoid reading upstream files multiple times
|
8
|
+
|
9
|
+
### 2.0.23
|
10
|
+
|
11
|
+
2022-08-09 05:51
|
12
|
+
|
13
|
+
#### FIXED
|
14
|
+
|
15
|
+
- --grep function regression
|
16
|
+
|
17
|
+
### 2.0.22
|
18
|
+
|
19
|
+
2022-08-08 13:49
|
20
|
+
|
21
|
+
#### IMPROVED
|
22
|
+
|
23
|
+
- Paginate output of --templates
|
24
|
+
|
25
|
+
#### FIXED
|
26
|
+
|
27
|
+
- --templates attempting to create new build note
|
28
|
+
- Fix handling of paths when the same as note_file
|
29
|
+
|
1
30
|
### 2.0.21
|
2
31
|
|
3
32
|
2022-08-08 13:16
|
data/bin/howzit
CHANGED
@@ -64,25 +64,27 @@ OptionParser.new do |opts|
|
|
64
64
|
end
|
65
65
|
|
66
66
|
opts.on('--templates', 'List available templates') do
|
67
|
+
out = []
|
67
68
|
Dir.chdir(Howzit.config.template_folder)
|
68
69
|
Dir.glob('*.md').each do |file|
|
69
70
|
template = File.basename(file, '.md')
|
70
|
-
|
71
|
-
|
71
|
+
out.push(Howzit::Color.template("{Mk}template:{Yk}#{template}{x}"))
|
72
|
+
out.push(Howzit::Color.template('{bk}[{bl}tasks{bk}]──────────────────────────────────────┐{x}'))
|
72
73
|
metadata = file.extract_metadata
|
73
|
-
topics = Howzit.
|
74
|
+
topics = Howzit::BuildNote.new(file: file).topics
|
74
75
|
topics.each do |topic|
|
75
|
-
|
76
|
+
out.push(Howzit::Color.template(" {bk}│{bw}-{x} {bcK}#{template}:#{topic.title.sub(/^.*?:/, '')}{x}"))
|
76
77
|
end
|
77
78
|
unless metadata.empty?
|
78
79
|
meta = []
|
79
80
|
meta << metadata['required'].split(/\s*,\s*/).map { |m| "*{bw}#{m}{xw}" } if metadata.key?('required')
|
80
81
|
meta << metadata['optional'].split(/\s*,\s*/).map(&:to_s) if metadata.key?('optional')
|
81
|
-
|
82
|
-
|
82
|
+
out.push(Howzit::Color.template('{bk}[{bl}meta{bk}]───────────────────────────────────────┤{x}'))
|
83
|
+
out.push(Howzit::Color.template(" {bk}│ {xw}#{meta.join(', ')}{x}"))
|
83
84
|
end
|
84
|
-
|
85
|
+
out.push(Howzit::Color.template(' {bk}└───────────────────────────────────────────┘{x}'))
|
85
86
|
end
|
87
|
+
Howzit::Util.page out.join("\n")
|
86
88
|
Process.exit 0
|
87
89
|
end
|
88
90
|
|
data/lib/howzit/buildnote.rb
CHANGED
@@ -13,11 +13,13 @@ module Howzit
|
|
13
13
|
## @param file [String] The path to the build note file
|
14
14
|
##
|
15
15
|
def initialize(file: nil)
|
16
|
+
file ||= note_file
|
17
|
+
|
16
18
|
@topics = []
|
17
|
-
create_note(prompt: true) if
|
19
|
+
create_note(prompt: true) if file.nil?
|
18
20
|
|
19
|
-
content = Util.read_file(
|
20
|
-
raise "{br}No content found in build note (#{
|
21
|
+
content = Util.read_file(file)
|
22
|
+
raise "{br}No content found in build note (#{file}){x}".c if content.nil? || content.empty?
|
21
23
|
|
22
24
|
@metadata = content.split(/^#/)[0].strip.get_metadata
|
23
25
|
|
@@ -30,7 +32,7 @@ module Howzit
|
|
30
32
|
## @return description
|
31
33
|
##
|
32
34
|
def inspect
|
33
|
-
|
35
|
+
"#<Howzit::BuildNote @topics=[#{@topics.count}]>"
|
34
36
|
end
|
35
37
|
|
36
38
|
##
|
@@ -203,14 +205,14 @@ module Howzit
|
|
203
205
|
if File.exist?(file) && !default
|
204
206
|
file = "{by}#{file}".c
|
205
207
|
unless Prompt.yn("Are you sure you want to overwrite #{file}", default: false)
|
206
|
-
|
208
|
+
Howzit.console.info('Cancelled')
|
207
209
|
Process.exit 0
|
208
210
|
end
|
209
211
|
end
|
210
212
|
|
211
213
|
File.open(file, 'w') do |f|
|
212
214
|
f.puts note
|
213
|
-
|
215
|
+
Howzit.console.info("{by}Template {bw}#{title}{by} written to {bw}#{file}{x}".c)
|
214
216
|
end
|
215
217
|
|
216
218
|
if File.exist?(file) && !default && Prompt.yn("{bg}Do you want to open {bw}#{file} {bg}for editing?{x}".c,
|
@@ -296,14 +298,14 @@ module Howzit
|
|
296
298
|
if File.exist?(fname) && !default
|
297
299
|
file = "{by}#{fname}".c
|
298
300
|
unless Prompt.yn("Are you absolutely sure you want to overwrite #{file}", default: false)
|
299
|
-
|
301
|
+
Howzit.console.info('Canceled')
|
300
302
|
Process.exit 0
|
301
303
|
end
|
302
304
|
end
|
303
305
|
|
304
306
|
File.open(fname, 'w') do |f|
|
305
307
|
f.puts note
|
306
|
-
|
308
|
+
Howzit.console.info("{by}Build notes for {bw}#{title}{by} written to {bw}#{fname}{x}".c)
|
307
309
|
end
|
308
310
|
|
309
311
|
if File.exist?(fname) && !default && Prompt.yn("{bg}Do you want to open {bw}#{fname} {bg}for editing?{x}".c,
|
@@ -530,7 +532,6 @@ module Howzit
|
|
530
532
|
##
|
531
533
|
def read_upstream
|
532
534
|
buildnotes = glob_upstream
|
533
|
-
|
534
535
|
topics_dict = []
|
535
536
|
buildnotes.each do |path|
|
536
537
|
topics_dict.concat(read_help_file(path))
|
@@ -596,7 +597,7 @@ module Howzit
|
|
596
597
|
lines = sect.split(/\n/)
|
597
598
|
title = lines.slice!(0).strip
|
598
599
|
prefix = ''
|
599
|
-
if path
|
600
|
+
if path && path != note_file
|
600
601
|
if path =~ /#{Howzit.config.template_folder}/
|
601
602
|
short_path = File.basename(path, '.md')
|
602
603
|
else
|
@@ -625,12 +626,15 @@ module Howzit
|
|
625
626
|
##
|
626
627
|
def read_help(path = nil)
|
627
628
|
@topics = read_help_file(path)
|
628
|
-
return unless
|
629
|
+
return unless Howzit.options[:include_upstream]
|
629
630
|
|
630
|
-
|
631
|
+
unless Howzit.has_read_upstream
|
632
|
+
upstream_topics = read_upstream
|
631
633
|
|
632
|
-
|
633
|
-
|
634
|
+
upstream_topics.each do |topic|
|
635
|
+
@topics.push(topic) unless find_topic(topic.title.sub(/^.+:/, '')).count.positive?
|
636
|
+
end
|
637
|
+
Howzit.has_read_upstream = true
|
634
638
|
end
|
635
639
|
|
636
640
|
if note_file && @topics.empty?
|
@@ -689,7 +693,7 @@ module Howzit
|
|
689
693
|
## single topic
|
690
694
|
##
|
691
695
|
def process_topic(topic, run, single: false)
|
692
|
-
new_topic = topic.dup
|
696
|
+
new_topic = topic.is_a?(String) ? find_topic(topic)[0] : topic.dup
|
693
697
|
|
694
698
|
# Handle variable replacement
|
695
699
|
new_topic.content = new_topic.content.render_arguments
|
@@ -791,6 +795,7 @@ module Howzit
|
|
791
795
|
|
792
796
|
if !topic_matches.empty?
|
793
797
|
# If we found a match
|
798
|
+
topic_matches.map! { |topic| topic.is_a?(String) ? find_topic(topic)[0] : topic }
|
794
799
|
topic_matches.each { |topic_match| output.push(process_topic(topic_match, Howzit.options[:run], single: true)) }
|
795
800
|
else
|
796
801
|
# If there's no argument or no match found, output all
|
data/lib/howzit/version.rb
CHANGED
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.
|
4
|
+
version: 2.0.24
|
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-
|
11
|
+
date: 2022-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|