rufio 0.64.0 → 0.65.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 +43 -38
- data/lib/rufio/script_path_manager.rb +3 -3
- data/lib/rufio/script_runner.rb +1 -1
- data/lib/rufio/terminal_ui.rb +8 -8
- data/lib/rufio/version.rb +1 -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: c80ee03ac65fdfbf06623c7702795bdbaced929d40e72739f599d43eb8d240ef
|
|
4
|
+
data.tar.gz: 8bc1a41cd84d762923e6f4785542c8ad4de418c804d0b30150d4217dac0168bd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c42bffef8f63ed300ef17a960625e0e5b5b20735e1f326fba26691e7731c37a0f24a09194b2c51d10e758e4c44710f0e938781e47e0662ba63a1b7afce760195
|
|
7
|
+
data.tar.gz: 7033a73f5a0c124eb9fa722e614a7a28f17972872a4cbe8d7682558ba7760852c3c10db6226e5771222ddb94e1f9a68dbe686f1b621c0dee6ae45073aae47a2a
|
data/CHANGELOG.md
CHANGED
|
@@ -7,36 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.65.0] - 2026-02-14
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- **Display version in title bar**: Changed header format from `💎 rufio - /path` to `💎 rufio v0.65.0 - /path`
|
|
14
|
+
|
|
10
15
|
## [0.64.0] - 2026-02-07
|
|
11
16
|
|
|
12
17
|
### Added
|
|
13
|
-
- **Screen Overlay Layer**:
|
|
18
|
+
- **Screen Overlay Layer**: Added overlay layer to Screen class for dialog rendering
|
|
14
19
|
- `enable_overlay` / `disable_overlay` / `clear_overlay` / `overlay_enabled?`
|
|
15
|
-
- `put_overlay` / `put_overlay_string`
|
|
16
|
-
- `row()`
|
|
17
|
-
-
|
|
18
|
-
- **`show_overlay_dialog`
|
|
19
|
-
- `terminal_ui`
|
|
20
|
-
- **`draw_floating_window_to_overlay`**: DialogRenderer
|
|
21
|
-
- **Screen Overlay
|
|
20
|
+
- Draw to overlay layer with `put_overlay` / `put_overlay_string`
|
|
21
|
+
- `row()` method automatically composites overlay and base layers
|
|
22
|
+
- Automatically marks dirty rows when overlay is disabled (guarantees redraw)
|
|
23
|
+
- **`show_overlay_dialog` helper method**: Added unified overlay dialog display method to TerminalUI, KeybindHandler, BookmarkManager, CommandModeUI, and ZoxideIntegration
|
|
24
|
+
- Uses overlay when `terminal_ui` is available, falls back to direct drawing otherwise
|
|
25
|
+
- **`draw_floating_window_to_overlay`**: Added floating window drawing method to DialogRenderer for overlay layer
|
|
26
|
+
- **Screen Overlay tests**: Added `test/test_screen_overlay.rb`
|
|
22
27
|
|
|
23
28
|
### Changed
|
|
24
|
-
-
|
|
25
|
-
- BookmarkManager:
|
|
26
|
-
- KeybindHandler:
|
|
27
|
-
- CommandModeUI:
|
|
28
|
-
- ZoxideIntegration:
|
|
29
|
-
- TerminalUI:
|
|
30
|
-
-
|
|
31
|
-
- `draw_command_mode_to_overlay`
|
|
32
|
-
- **Box
|
|
33
|
-
-
|
|
34
|
-
- **`set_terminal_ui`
|
|
35
|
-
- **TerminalUI**: `screen`
|
|
29
|
+
- **Buffer-based dialog rendering**: Changed all dialog rendering to go through Screen overlay
|
|
30
|
+
- BookmarkManager: bookmark menu, list, rename, delete, and confirmation dialogs
|
|
31
|
+
- KeybindHandler: delete confirmation, copy/move confirmation, exit confirmation, script path management, bookmark operation results
|
|
32
|
+
- CommandModeUI: command execution result display
|
|
33
|
+
- ZoxideIntegration: no history message, history selection dialog
|
|
34
|
+
- TerminalUI: help dialog, announcements, plugin loading errors
|
|
35
|
+
- **Overlay-based command mode**: Changed from direct drawing (outside Screen buffer) to overlay-based buffer drawing
|
|
36
|
+
- Integrated into main loop buffer drawing via `draw_command_mode_to_overlay` method
|
|
37
|
+
- **Box drawing character width fix**: Fixed `TextUtils.char_width` to treat box drawing characters (U+2500-U+257F) as width 1 (matching actual terminal display width)
|
|
38
|
+
- **Code style unification**: Unified `require_relative` in `lib/rufio.rb` from double quotes to single quotes
|
|
39
|
+
- **`set_terminal_ui` propagation**: Set `terminal_ui` on BookmarkManager and ZoxideIntegration via KeybindHandler
|
|
40
|
+
- **TerminalUI**: Exposed `screen` and `renderer` `attr_reader`
|
|
36
41
|
|
|
37
42
|
### Technical Details
|
|
38
|
-
-
|
|
39
|
-
-
|
|
43
|
+
- **New files**: `test/test_screen_overlay.rb`
|
|
44
|
+
- **Modified files**: `lib/rufio.rb`, `lib/rufio/screen.rb`, `lib/rufio/dialog_renderer.rb`, `lib/rufio/terminal_ui.rb`, `lib/rufio/keybind_handler.rb`, `lib/rufio/bookmark_manager.rb`, `lib/rufio/command_mode_ui.rb`, `lib/rufio/text_utils.rb`, `lib/rufio/zoxide_integration.rb`
|
|
40
45
|
|
|
41
46
|
## [0.63.0] - 2026-02-01
|
|
42
47
|
|
|
@@ -123,28 +128,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
123
128
|
## [0.60.0] - 2026-01-24
|
|
124
129
|
|
|
125
130
|
### Added
|
|
126
|
-
- **⌨️
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
- `CommandCompletion
|
|
131
|
+
- **⌨️ Script Tab Completion**: Tab completion for scripts in command mode
|
|
132
|
+
- `@` prefix for script-specific completion (e.g., `@bu` + Tab → `@build.sh`)
|
|
133
|
+
- Registered scripts also appear in regular completion candidates
|
|
134
|
+
- `CommandCompletion` works with `CommandMode` to retrieve script candidates
|
|
130
135
|
|
|
131
136
|
### Removed
|
|
132
|
-
- **🗑️
|
|
133
|
-
- `lib/rufio/project_mode.rb` - ProjectMode
|
|
134
|
-
- `lib/rufio/project_command.rb` - ProjectCommand
|
|
135
|
-
- `lib/rufio/project_log.rb` - ProjectLog
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
137
|
+
- **🗑️ Project Mode Removal**: Removed project mode launched by `P` key
|
|
138
|
+
- `lib/rufio/project_mode.rb` - ProjectMode class
|
|
139
|
+
- `lib/rufio/project_command.rb` - ProjectCommand class
|
|
140
|
+
- `lib/rufio/project_log.rb` - ProjectLog class
|
|
141
|
+
- Related UI drawing methods (`draw_project_mode_screen`, etc.)
|
|
142
|
+
- Related key handling (`handle_project_mode_key`, etc.)
|
|
143
|
+
- Related test files
|
|
139
144
|
|
|
140
145
|
### Changed
|
|
141
|
-
- **📋
|
|
142
|
-
- **🧹
|
|
146
|
+
- **📋 Help Display Update**: Added `J` key (Job mode) to help dialog
|
|
147
|
+
- **🧹 Code Cleanup**: Removed unused code related to project mode
|
|
143
148
|
|
|
144
149
|
### Technical Details
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
150
|
+
- **Test coverage**: 684 tests, 2474 assertions (all passing)
|
|
151
|
+
- **Deleted files**: 7 files (3 library, 4 test)
|
|
152
|
+
- **Affected files**: `keybind_handler.rb`, `terminal_ui.rb`, `rufio.rb`
|
|
148
153
|
|
|
149
154
|
## [0.41.0] - 2026-01-13
|
|
150
155
|
|
|
@@ -75,7 +75,7 @@ module Rufio
|
|
|
75
75
|
@paths.each do |path|
|
|
76
76
|
next unless Dir.exist?(path)
|
|
77
77
|
|
|
78
|
-
Dir.glob(File.join(path, '*')).each do |file|
|
|
78
|
+
Dir.glob(File.join(path, '**', '*')).each do |file|
|
|
79
79
|
next unless File.file?(file)
|
|
80
80
|
|
|
81
81
|
basename = File.basename(file)
|
|
@@ -240,7 +240,7 @@ module Rufio
|
|
|
240
240
|
@paths.each do |path|
|
|
241
241
|
next unless Dir.exist?(path)
|
|
242
242
|
|
|
243
|
-
Dir.glob(File.join(path, '*')).each do |file|
|
|
243
|
+
Dir.glob(File.join(path, '**', '*')).each do |file|
|
|
244
244
|
next unless File.file?(file)
|
|
245
245
|
|
|
246
246
|
file_basename = File.basename(file)
|
|
@@ -276,7 +276,7 @@ module Rufio
|
|
|
276
276
|
@paths.each do |path|
|
|
277
277
|
next unless Dir.exist?(path)
|
|
278
278
|
|
|
279
|
-
Dir.glob(File.join(path, '*')).each do |file|
|
|
279
|
+
Dir.glob(File.join(path, '**', '*')).each do |file|
|
|
280
280
|
next unless File.file?(file)
|
|
281
281
|
|
|
282
282
|
file_basename = File.basename(file)
|
data/lib/rufio/script_runner.rb
CHANGED
data/lib/rufio/terminal_ui.rb
CHANGED
|
@@ -513,7 +513,7 @@ module Rufio
|
|
|
513
513
|
# Phase 3: Screenバッファにヘッダーを描画
|
|
514
514
|
def draw_header_to_buffer(screen, y)
|
|
515
515
|
current_path = @directory_listing.current_path
|
|
516
|
-
header = "💎 rufio - #{current_path}"
|
|
516
|
+
header = "💎 rufio v#{VERSION} - #{current_path}"
|
|
517
517
|
|
|
518
518
|
# Add help mode indicator if in help mode
|
|
519
519
|
if @keybind_handler.help_mode?
|
|
@@ -532,14 +532,14 @@ module Rufio
|
|
|
532
532
|
# prioritize showing help mode indicator
|
|
533
533
|
help_text = " [Help Mode - Press ESC to exit]"
|
|
534
534
|
base_length = @screen_width - help_text.length - FILTER_TEXT_RESERVED
|
|
535
|
-
header = "💎 rufio - ...#{current_path[-base_length..-1]}#{help_text}"
|
|
535
|
+
header = "💎 rufio v#{VERSION} - ...#{current_path[-base_length..-1]}#{help_text}"
|
|
536
536
|
elsif @keybind_handler.filter_active?
|
|
537
537
|
# prioritize showing filter when active
|
|
538
538
|
filter_text = " [Filter: #{@keybind_handler.filter_query}]"
|
|
539
539
|
base_length = @screen_width - filter_text.length - FILTER_TEXT_RESERVED
|
|
540
|
-
header = "💎 rufio - ...#{current_path[-base_length..-1]}#{filter_text}"
|
|
540
|
+
header = "💎 rufio v#{VERSION} - ...#{current_path[-base_length..-1]}#{filter_text}"
|
|
541
541
|
else
|
|
542
|
-
header = "💎 rufio - ...#{current_path[-(@screen_width - FILTER_TEXT_RESERVED)..-1]}"
|
|
542
|
+
header = "💎 rufio v#{VERSION} - ...#{current_path[-(@screen_width - FILTER_TEXT_RESERVED)..-1]}"
|
|
543
543
|
end
|
|
544
544
|
end
|
|
545
545
|
|
|
@@ -606,7 +606,7 @@ module Rufio
|
|
|
606
606
|
|
|
607
607
|
def draw_header
|
|
608
608
|
current_path = @directory_listing.current_path
|
|
609
|
-
header = "💎 rufio - #{current_path}"
|
|
609
|
+
header = "💎 rufio v#{VERSION} - #{current_path}"
|
|
610
610
|
|
|
611
611
|
# Add help mode indicator if in help mode
|
|
612
612
|
if @keybind_handler.help_mode?
|
|
@@ -625,14 +625,14 @@ module Rufio
|
|
|
625
625
|
# prioritize showing help mode indicator
|
|
626
626
|
help_text = " [Help Mode - Press ESC to exit]"
|
|
627
627
|
base_length = @screen_width - help_text.length - FILTER_TEXT_RESERVED
|
|
628
|
-
header = "💎 rufio - ...#{current_path[-base_length..-1]}#{help_text}"
|
|
628
|
+
header = "💎 rufio v#{VERSION} - ...#{current_path[-base_length..-1]}#{help_text}"
|
|
629
629
|
elsif @keybind_handler.filter_active?
|
|
630
630
|
# prioritize showing filter when active
|
|
631
631
|
filter_text = " [Filter: #{@keybind_handler.filter_query}]"
|
|
632
632
|
base_length = @screen_width - filter_text.length - FILTER_TEXT_RESERVED
|
|
633
|
-
header = "💎 rufio - ...#{current_path[-base_length..-1]}#{filter_text}"
|
|
633
|
+
header = "💎 rufio v#{VERSION} - ...#{current_path[-base_length..-1]}#{filter_text}"
|
|
634
634
|
else
|
|
635
|
-
header = "💎 rufio - ...#{current_path[-(@screen_width - FILTER_TEXT_RESERVED)..-1]}"
|
|
635
|
+
header = "💎 rufio v#{VERSION} - ...#{current_path[-(@screen_width - FILTER_TEXT_RESERVED)..-1]}"
|
|
636
636
|
end
|
|
637
637
|
end
|
|
638
638
|
|
data/lib/rufio/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rufio
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.65.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- masisz
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-02-
|
|
11
|
+
date: 2026-02-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: io-console
|