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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 316d82c9b1a5f8b3e567d04b2ef7541ecbd554992bfe8c7c97497d1aefbe5e8c
4
- data.tar.gz: e8c2b2b065dd6404694e5218e5130473abdadbd1f71c4f4e13ca36a7c3d4bbf2
3
+ metadata.gz: 8629621d995d5e02e26408fe60b949ab64154916223d615ace7fe9a4b76afc3f
4
+ data.tar.gz: 9f1d30fcdae52a7a465fb993f16a298ac17cbdd09362c114b7c98f5c47babeb8
5
5
  SHA512:
6
- metadata.gz: 7f414319c19f06dfe2e0e5fb158e06371d03f4f930def70ee7340b09cbde9093cf72a2a20522db142d3b517e507126401b0c58ee7ad14dc0eeb74ec4a2a8ca5b
7
- data.tar.gz: ebde82434ab61ec53e68d66cc18048d8378663508b67664bf2c58488bc44ec429b2889a051dd011ef7c5c3152f726cc58fe55fd1fa647f8e39db0b856849571c
6
+ metadata.gz: 58e9f2b048c6a20bd354d296709a28b3ecea843dbafb6b80f29ef4ffe9532d01fd5db4fadf01c0b2be0dd2457212c44d33395c1a6c667128f10e93d4ff0fea29
7
+ data.tar.gz: 1c28c79d4349727a7eb54be5a46ab865d3784b9b8277a31e5ce88063e69eaddd1f9459f46df522b9963a04b68e3805d870b5e65b165f303f0eced79bea2be344
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.2.0] - 2025-08-30
4
+
5
+ - Add prompt message to pager
6
+ - Add navigation section to the readme
7
+
8
+ - Remove table from info pages
9
+
3
10
  ## [1.1.0] - 2025-08-16
4
11
 
5
12
  - Add better support for showing the changelog
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
  ![GIF demoing the info and search subcommands](./assets/gemview-v1.0.0.gif)
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.lines.map(&:strip).reject(&:empty?).join(" ").strip
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, 80).lines.map(&:strip)
95
- info_lines = info_lines.take(3).append("...") if info_lines.size > 3
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}
@@ -15,8 +15,15 @@ module Gemview
15
15
 
16
16
  # @param content [String]
17
17
  def self.page(content)
18
- # Override the default pager command so that it is top justified to match the choice menus.
19
- TTY::Pager::SystemPager.new(command: "less -c -r --tilde").page(content)
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]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gemview
4
- VERSION = "1.1.0"
4
+ VERSION = "1.2.0"
5
5
  end
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([gem.header_str, gem.readme].join("\n")) if gem.readme
26
+ Terminal.page([title, gem.readme].join("\n")) if gem.readme
26
27
  when "Changelog"
27
- Terminal.page([gem.header_str, gem.changelog].join("\n")) if gem.changelog
28
+ Terminal.page([title, gem.changelog].join("\n")) if gem.changelog
28
29
  when "Dependencies"
29
- Terminal.page([gem.header_str, gem.dependencies_str].join("\n"))
30
+ Terminal.page([title, gem.dependencies_str].join("\n"))
30
31
  when "Versions"
31
- Terminal.page([gem.header_str, gem.versions_str].join("\n"))
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
@@ -12,7 +12,6 @@ module Gemview
12
12
  autoload :GitRepo, "gemview/git_repo"
13
13
  autoload :Number, "gemview/number"
14
14
  autoload :Terminal, "gemview/terminal"
15
- autoload :Version, "gemview/version"
16
15
  autoload :View, "gemview/view"
17
16
  end
18
17
 
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.1.0
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-17 00:00:00.000000000 Z
10
+ date: 2025-08-31 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: dry-cli