howzit 1.2.15 → 1.2.16
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 +4 -4
- data/CHANGELOG.md +12 -0
- data/bin/howzit +193 -2
- data/lib/howzit/buildnote.rb +543 -0
- data/lib/howzit/buildnotes.rb +0 -1
- data/lib/howzit/colors.rb +2 -2
- data/lib/howzit/config.rb +128 -0
- data/lib/howzit/hash.rb +35 -0
- data/lib/howzit/prompt.rb +84 -11
- data/lib/howzit/stringutils.rb +54 -8
- data/lib/howzit/task.rb +22 -0
- data/lib/howzit/topic.rb +233 -0
- data/lib/howzit/util.rb +149 -0
- data/lib/howzit/version.rb +1 -1
- data/lib/howzit.rb +40 -5
- data/spec/ruby_gem_spec.rb +87 -17
- metadata +8 -2
data/spec/ruby_gem_spec.rb
CHANGED
@@ -1,40 +1,110 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Howzit::
|
4
|
-
subject(:
|
3
|
+
describe Howzit::BuildNote do
|
4
|
+
subject(:buildnote) { Howzit.buildnote }
|
5
5
|
|
6
6
|
describe ".new" do
|
7
7
|
it "makes a new instance" do
|
8
|
-
expect(
|
8
|
+
expect(buildnote).to be_a Howzit::BuildNote
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
describe Howzit::
|
13
|
+
describe Howzit::Task do
|
14
|
+
subject(:task) { Howzit::Task.new(:run, 'List Directory', 'ls') }
|
15
|
+
|
16
|
+
describe ".new" do
|
17
|
+
it "makes a new task instance" do
|
18
|
+
expect(task).to be_a Howzit::Task
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe Howzit::Topic do
|
24
|
+
title = 'Test Title'
|
25
|
+
content = 'Test Content'
|
26
|
+
subject(:topic) { Howzit::Topic.new(title, content) }
|
27
|
+
|
28
|
+
describe ".new" do
|
29
|
+
it "makes a new topic instance" do
|
30
|
+
expect(topic).to be_a Howzit::Topic
|
31
|
+
end
|
32
|
+
it "has the correct title" do
|
33
|
+
expect(topic.title).to eq title
|
34
|
+
end
|
35
|
+
it "has the correct content" do
|
36
|
+
expect(topic.content).to eq content
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe Howzit::BuildNote do
|
14
42
|
Dir.chdir('spec')
|
15
|
-
|
16
|
-
|
17
|
-
|
43
|
+
Howzit.options[:include_upstream] = false
|
44
|
+
Howzit.options[:default] = true
|
45
|
+
hz = Howzit.buildnote
|
46
|
+
|
47
|
+
hz.create_note
|
48
|
+
subject(:how) { hz }
|
18
49
|
|
19
50
|
describe ".note_file" do
|
20
51
|
it "locates a build note file" do
|
21
|
-
expect(
|
52
|
+
expect(how.note_file).not_to be_empty
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe ".grep" do
|
57
|
+
it "finds topic containing 'editable'" do
|
58
|
+
expect(how.grep('editable').map { |topic| topic.title }).to include('File Structure')
|
59
|
+
end
|
60
|
+
it "does not return non-matching topic" do
|
61
|
+
expect(how.grep('editable').map { |topic| topic.title }).not_to include('Build')
|
22
62
|
end
|
23
63
|
end
|
24
64
|
|
25
|
-
describe ".
|
26
|
-
it "finds
|
27
|
-
|
28
|
-
expect(
|
65
|
+
describe ".find_topic" do
|
66
|
+
it "finds the File Structure topic" do
|
67
|
+
matches = how.find_topic('file struct')
|
68
|
+
expect(matches.count).to eq 1
|
69
|
+
expect(matches[0].title).to eq 'File Structure'
|
70
|
+
end
|
71
|
+
it "fuzzy matches" do
|
72
|
+
Howzit.options[:matching] = 'fuzzy'
|
73
|
+
matches = how.find_topic('flestct')
|
74
|
+
expect(matches.count).to eq 1
|
75
|
+
expect(matches[0].title).to eq 'File Structure'
|
76
|
+
end
|
77
|
+
it "succeeds with partial match" do
|
78
|
+
Howzit.options[:matching] = 'partial'
|
79
|
+
matches = how.find_topic('structure')
|
80
|
+
expect(matches.count).to eq 1
|
81
|
+
expect(matches[0].title).to eq 'File Structure'
|
82
|
+
end
|
83
|
+
it "succeeds with beginswith match" do
|
84
|
+
Howzit.options[:matching] = 'beginswith'
|
85
|
+
matches = how.find_topic('file')
|
86
|
+
expect(matches.count).to eq 1
|
87
|
+
expect(matches[0].title).to eq 'File Structure'
|
88
|
+
end
|
89
|
+
it "succeeds with exact match" do
|
90
|
+
Howzit.options[:matching] = 'exact'
|
91
|
+
matches = how.find_topic('file structure')
|
92
|
+
expect(matches.count).to eq 1
|
93
|
+
expect(matches[0].title).to eq 'File Structure'
|
94
|
+
end
|
95
|
+
it "fails with incomplete exact match" do
|
96
|
+
Howzit.options[:matching] = 'exact'
|
97
|
+
matches = how.find_topic('file struct')
|
98
|
+
expect(matches.count).to eq 0
|
29
99
|
end
|
30
100
|
end
|
31
101
|
|
32
|
-
describe ".
|
33
|
-
it "
|
34
|
-
expect(
|
102
|
+
describe ".topics" do
|
103
|
+
it "contains 4 topics" do
|
104
|
+
expect(how.list_topics.count).to eq 4
|
35
105
|
end
|
36
|
-
it "outputs a newline-separated string" do
|
37
|
-
expect(
|
106
|
+
it "outputs a newline-separated string for completion" do
|
107
|
+
expect(how.list_completions.scan(/\n/).count).to eq 3
|
38
108
|
end
|
39
109
|
end
|
40
110
|
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: 1.2.
|
4
|
+
version: 1.2.16
|
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-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -268,10 +268,16 @@ files:
|
|
268
268
|
- howzit.gemspec
|
269
269
|
- lib/.rubocop.yml
|
270
270
|
- lib/howzit.rb
|
271
|
+
- lib/howzit/buildnote.rb
|
271
272
|
- lib/howzit/buildnotes.rb
|
272
273
|
- lib/howzit/colors.rb
|
274
|
+
- lib/howzit/config.rb
|
275
|
+
- lib/howzit/hash.rb
|
273
276
|
- lib/howzit/prompt.rb
|
274
277
|
- lib/howzit/stringutils.rb
|
278
|
+
- lib/howzit/task.rb
|
279
|
+
- lib/howzit/topic.rb
|
280
|
+
- lib/howzit/util.rb
|
275
281
|
- lib/howzit/version.rb
|
276
282
|
- spec/.rubocop.yml
|
277
283
|
- spec/ruby_gem_spec.rb
|