gemview 1.1.0 → 1.2.0
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 +7 -0
- data/README.md +6 -0
- data/lib/gemview/gem.rb +14 -3
- data/lib/gemview/terminal.rb +9 -2
- data/lib/gemview/version.rb +1 -1
- data/lib/gemview/view.rb +5 -4
- data/lib/gemview.rb +0 -1
- 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: 8629621d995d5e02e26408fe60b949ab64154916223d615ace7fe9a4b76afc3f
|
4
|
+
data.tar.gz: 9f1d30fcdae52a7a465fb993f16a298ac17cbdd09362c114b7c98f5c47babeb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58e9f2b048c6a20bd354d296709a28b3ecea843dbafb6b80f29ef4ffe9532d01fd5db4fadf01c0b2be0dd2457212c44d33395c1a6c667128f10e93d4ff0fea29
|
7
|
+
data.tar.gz: 1c28c79d4349727a7eb54be5a46ab865d3784b9b8277a31e5ce88063e69eaddd1f9459f46df522b9963a04b68e3805d870b5e65b165f303f0eced79bea2be344
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -18,6 +18,12 @@ Commands:
|
|
18
18
|
gemview version # Print version
|
19
19
|
```
|
20
20
|
|
21
|
+
## Navigation
|
22
|
+
|
23
|
+
For menus the arrow keys and j/k can be used for movement. Press enter to select a choice and escape or q to return to the previous menu or quit.
|
24
|
+
|
25
|
+
For paged content `less` is used internally so all the normal navigation commands work as expected.
|
26
|
+
|
21
27
|
## Demo
|
22
28
|
|
23
29
|

|
data/lib/gemview/gem.rb
CHANGED
@@ -81,7 +81,7 @@ module Gemview
|
|
81
81
|
|
82
82
|
# @return [String]
|
83
83
|
def selector_str
|
84
|
-
one_line_info = info.
|
84
|
+
one_line_info = info.gsub(/\s+/, " ").strip
|
85
85
|
|
86
86
|
<<~SELECT
|
87
87
|
#{name} [#{version}]
|
@@ -89,10 +89,21 @@ module Gemview
|
|
89
89
|
SELECT
|
90
90
|
end
|
91
91
|
|
92
|
+
# @return [String]
|
93
|
+
def title_str(subsection:)
|
94
|
+
Terminal.prettify_markdown(<<~LINE)
|
95
|
+
## [#{version}] #{name} >> #{subsection}
|
96
|
+
LINE
|
97
|
+
end
|
98
|
+
|
92
99
|
# @return [String]
|
93
100
|
def header_str
|
94
|
-
info_lines = Strings.wrap(info,
|
95
|
-
|
101
|
+
info_lines = Strings.wrap(info.gsub(/\s+/, " ").strip, 79).lines.map(&:strip)
|
102
|
+
|
103
|
+
if info_lines.size > 3
|
104
|
+
info_lines = info_lines.take(3)
|
105
|
+
info_lines.last << "…"
|
106
|
+
end
|
96
107
|
|
97
108
|
header = <<~HEADER
|
98
109
|
## [#{version}] #{name}
|
data/lib/gemview/terminal.rb
CHANGED
@@ -15,8 +15,15 @@ module Gemview
|
|
15
15
|
|
16
16
|
# @param content [String]
|
17
17
|
def self.page(content)
|
18
|
-
|
19
|
-
|
18
|
+
command = [
|
19
|
+
"less",
|
20
|
+
"--clear-screen", # make sure everything is top-justified
|
21
|
+
"--RAW-CONTROL-CHARS", # correctly interpret ANSI control sequences
|
22
|
+
"--tilde", # don't show tildes on lines after the output
|
23
|
+
"--prompt='(press h for help or q to quit)'"
|
24
|
+
].join(" ")
|
25
|
+
|
26
|
+
TTY::Pager::SystemPager.new(command: command).page(content)
|
20
27
|
end
|
21
28
|
|
22
29
|
# @param prompt [String]
|
data/lib/gemview/version.rb
CHANGED
data/lib/gemview/view.rb
CHANGED
@@ -20,15 +20,16 @@ module Gemview
|
|
20
20
|
|
21
21
|
Terminal.clear_screen
|
22
22
|
Terminal.choose(message: prompt, choices: choices_proc) do |choice|
|
23
|
+
title = gem.title_str(subsection: choice)
|
23
24
|
case choice
|
24
25
|
when "Readme"
|
25
|
-
Terminal.page([
|
26
|
+
Terminal.page([title, gem.readme].join("\n")) if gem.readme
|
26
27
|
when "Changelog"
|
27
|
-
Terminal.page([
|
28
|
+
Terminal.page([title, gem.changelog].join("\n")) if gem.changelog
|
28
29
|
when "Dependencies"
|
29
|
-
Terminal.page([
|
30
|
+
Terminal.page([title, gem.dependencies_str].join("\n"))
|
30
31
|
when "Versions"
|
31
|
-
Terminal.page([
|
32
|
+
Terminal.page([title, gem.versions_str].join("\n"))
|
32
33
|
else
|
33
34
|
raise ArgumentError, "Unknown choice: #{choice}"
|
34
35
|
end
|
data/lib/gemview.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Robell
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-08-
|
10
|
+
date: 2025-08-31 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: dry-cli
|