rufio 1.0.4 → 1.3.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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -0
  3. data/README.md +105 -2
  4. data/README_ja.md +103 -2
  5. data/Rakefile +14 -1
  6. data/bin/rufio +31 -2
  7. data/docs/fast_zip_design_ja.md +167 -0
  8. data/examples/config.rb +8 -0
  9. data/info/help.md +2 -0
  10. data/info/keybindings.md +3 -1
  11. data/info/welcome.md +1 -1
  12. data/lib/rufio/application.rb +12 -1
  13. data/lib/rufio/archive_controller.rb +211 -0
  14. data/lib/rufio/background_command_executor.rb +9 -0
  15. data/lib/rufio/background_status.rb +49 -0
  16. data/lib/rufio/bookmark_controller.rb +38 -121
  17. data/lib/rufio/bookmark_manager.rb +77 -331
  18. data/lib/rufio/command_completion.rb +6 -1
  19. data/lib/rufio/command_history.rb +5 -2
  20. data/lib/rufio/command_mode.rb +40 -134
  21. data/lib/rufio/command_mode_ui.rb +4 -42
  22. data/lib/rufio/config.rb +89 -137
  23. data/lib/rufio/config_loader.rb +21 -13
  24. data/lib/rufio/dialog_renderer.rb +64 -152
  25. data/lib/rufio/dialog_support.rb +69 -0
  26. data/lib/rufio/document_text_extractor.rb +167 -0
  27. data/lib/rufio/file_operation_controller.rb +49 -222
  28. data/lib/rufio/file_preview.rb +46 -2
  29. data/lib/rufio/global_search.rb +373 -0
  30. data/lib/rufio/help_menu.rb +27 -2
  31. data/lib/rufio/interpreter_resolver.rb +6 -11
  32. data/lib/rufio/job_manager.rb +2 -5
  33. data/lib/rufio/key_input.rb +77 -0
  34. data/lib/rufio/keybind_handler.rb +120 -112
  35. data/lib/rufio/local_script_scanner.rb +6 -18
  36. data/lib/rufio/native/aarch64-linux-gnu/librufio_zig.so +0 -0
  37. data/lib/rufio/native/aarch64-linux-musl/librufio_zig.so +0 -0
  38. data/lib/rufio/native/aarch64-macos/librufio_zig.dylib +0 -0
  39. data/lib/rufio/native/aarch64-windows/rufio_zig.dll +0 -0
  40. data/lib/rufio/native/x86_64-linux-gnu/librufio_zig.so +0 -0
  41. data/lib/rufio/native/x86_64-linux-musl/librufio_zig.so +0 -0
  42. data/lib/rufio/native/x86_64-macos/librufio_zig.dylib +0 -0
  43. data/lib/rufio/native/x86_64-windows/rufio_zig.dll +0 -0
  44. data/lib/rufio/native_content_search.rb +153 -0
  45. data/lib/rufio/native_scanner.rb +13 -68
  46. data/lib/rufio/native_scanner_zig.rb +106 -56
  47. data/lib/rufio/native_zip.rb +121 -0
  48. data/lib/rufio/navigation_controller.rb +18 -20
  49. data/lib/rufio/screen.rb +2 -12
  50. data/lib/rufio/script_executor.rb +6 -73
  51. data/lib/rufio/script_file.rb +44 -0
  52. data/lib/rufio/script_path_manager.rb +9 -43
  53. data/lib/rufio/script_runner.rb +13 -50
  54. data/lib/rufio/search_controller.rb +1 -1
  55. data/lib/rufio/shell_command_completion.rb +1 -5
  56. data/lib/rufio/shell_init.rb +90 -0
  57. data/lib/rufio/tab_mode_manager.rb +5 -1
  58. data/lib/rufio/task_status.rb +5 -1
  59. data/lib/rufio/terminal_ui.rb +116 -293
  60. data/lib/rufio/text_utils.rb +26 -3
  61. data/lib/rufio/ui_renderer.rb +68 -41
  62. data/lib/rufio/version.rb +1 -1
  63. data/lib/rufio/zip_archive.rb +314 -0
  64. data/lib/rufio/zip_extractor.rb +346 -0
  65. data/lib/rufio/zip_writer.rb +268 -0
  66. data/lib/rufio/zoxide_integration.rb +5 -43
  67. data/lib/rufio.rb +5 -0
  68. data/lib_zig/rufio_native/Makefile +54 -17
  69. data/lib_zig/rufio_native/bench.sh +36 -0
  70. data/lib_zig/rufio_native/build.zig +32 -35
  71. data/lib_zig/rufio_native/src/cli.zig +99 -0
  72. data/lib_zig/rufio_native/src/main.zig +187 -83
  73. data/lib_zig/rufio_native/src/os.zig +889 -0
  74. data/lib_zig/rufio_native/src/search.zig +919 -0
  75. data/lib_zig/rufio_native/src/search_test.zig +88 -0
  76. data/lib_zig/rufio_native/src/zip.zig +482 -0
  77. metadata +126 -3
  78. data/lib/rufio/native/rufio_zig.bundle +0 -0
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: 1.0.4
4
+ version: 1.3.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-10-25 00:00:00.000000000 Z
11
+ date: 2026-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: io-console
@@ -66,6 +66,102 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pdf-reader
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.16'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.16'
83
+ - !ruby/object:Gem::Dependency
84
+ name: roo
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.10'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.10'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubyzip
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '2.4'
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '3.0'
107
+ type: :runtime
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '2.4'
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: '3.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: nokogiri
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.16'
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '1.16'
131
+ - !ruby/object:Gem::Dependency
132
+ name: csv
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '3.0'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: base64
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0.2'
152
+ - - "<"
153
+ - !ruby/object:Gem::Version
154
+ version: '1.0'
155
+ type: :runtime
156
+ prerelease: false
157
+ version_requirements: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0.2'
162
+ - - "<"
163
+ - !ruby/object:Gem::Version
164
+ version: '1.0'
69
165
  - !ruby/object:Gem::Dependency
70
166
  name: minitest
71
167
  requirement: !ruby/object:Gem::Requirement
@@ -141,6 +237,7 @@ files:
141
237
  - docs/CHANGELOG_v0.80.0.md
142
238
  - docs/CHANGELOG_v0.9.0.md
143
239
  - docs/architecture_concurrency_ja_v0.82.1.md
240
+ - docs/fast_zip_design_ja.md
144
241
  - examples/bookmarks.yml
145
242
  - examples/config.rb
146
243
  - examples/script_paths.yml
@@ -150,9 +247,11 @@ files:
150
247
  - lib/rufio.rb
151
248
  - lib/rufio/ansi_line_parser.rb
152
249
  - lib/rufio/application.rb
250
+ - lib/rufio/archive_controller.rb
153
251
  - lib/rufio/async_scanner_fiber.rb
154
252
  - lib/rufio/async_scanner_promise.rb
155
253
  - lib/rufio/background_command_executor.rb
254
+ - lib/rufio/background_status.rb
156
255
  - lib/rufio/bookmark.rb
157
256
  - lib/rufio/bookmark_controller.rb
158
257
  - lib/rufio/bookmark_manager.rb
@@ -167,7 +266,9 @@ files:
167
266
  - lib/rufio/config.rb
168
267
  - lib/rufio/config_loader.rb
169
268
  - lib/rufio/dialog_renderer.rb
269
+ - lib/rufio/dialog_support.rb
170
270
  - lib/rufio/directory_listing.rb
271
+ - lib/rufio/document_text_extractor.rb
171
272
  - lib/rufio/dsl_command.rb
172
273
  - lib/rufio/dsl_command_loader.rb
173
274
  - lib/rufio/file_opener.rb
@@ -175,19 +276,30 @@ files:
175
276
  - lib/rufio/file_operations.rb
176
277
  - lib/rufio/file_preview.rb
177
278
  - lib/rufio/filter_manager.rb
279
+ - lib/rufio/global_search.rb
178
280
  - lib/rufio/health_checker.rb
179
281
  - lib/rufio/help_menu.rb
180
282
  - lib/rufio/info_notice.rb
181
283
  - lib/rufio/interpreter_resolver.rb
182
284
  - lib/rufio/job_manager.rb
183
285
  - lib/rufio/job_mode.rb
286
+ - lib/rufio/key_input.rb
184
287
  - lib/rufio/keybind_handler.rb
185
288
  - lib/rufio/local_script_scanner.rb
186
289
  - lib/rufio/logger.rb
187
290
  - lib/rufio/multibyte_input_reader.rb
188
- - lib/rufio/native/rufio_zig.bundle
291
+ - lib/rufio/native/aarch64-linux-gnu/librufio_zig.so
292
+ - lib/rufio/native/aarch64-linux-musl/librufio_zig.so
293
+ - lib/rufio/native/aarch64-macos/librufio_zig.dylib
294
+ - lib/rufio/native/aarch64-windows/rufio_zig.dll
295
+ - lib/rufio/native/x86_64-linux-gnu/librufio_zig.so
296
+ - lib/rufio/native/x86_64-linux-musl/librufio_zig.so
297
+ - lib/rufio/native/x86_64-macos/librufio_zig.dylib
298
+ - lib/rufio/native/x86_64-windows/rufio_zig.dll
299
+ - lib/rufio/native_content_search.rb
189
300
  - lib/rufio/native_scanner.rb
190
301
  - lib/rufio/native_scanner_zig.rb
302
+ - lib/rufio/native_zip.rb
191
303
  - lib/rufio/navigation_controller.rb
192
304
  - lib/rufio/notification_manager.rb
193
305
  - lib/rufio/parallel_scanner.rb
@@ -196,11 +308,13 @@ files:
196
308
  - lib/rufio/screen.rb
197
309
  - lib/rufio/script_config_loader.rb
198
310
  - lib/rufio/script_executor.rb
311
+ - lib/rufio/script_file.rb
199
312
  - lib/rufio/script_path_manager.rb
200
313
  - lib/rufio/script_runner.rb
201
314
  - lib/rufio/search_controller.rb
202
315
  - lib/rufio/selection_manager.rb
203
316
  - lib/rufio/shell_command_completion.rb
317
+ - lib/rufio/shell_init.rb
204
318
  - lib/rufio/syntax_highlighter.rb
205
319
  - lib/rufio/tab_mode_manager.rb
206
320
  - lib/rufio/task_status.rb
@@ -208,11 +322,20 @@ files:
208
322
  - lib/rufio/text_utils.rb
209
323
  - lib/rufio/ui_renderer.rb
210
324
  - lib/rufio/version.rb
325
+ - lib/rufio/zip_archive.rb
326
+ - lib/rufio/zip_extractor.rb
327
+ - lib/rufio/zip_writer.rb
211
328
  - lib/rufio/zoxide_integration.rb
212
329
  - lib_zig/rufio_native/Makefile
330
+ - lib_zig/rufio_native/bench.sh
213
331
  - lib_zig/rufio_native/build.zig
332
+ - lib_zig/rufio_native/src/cli.zig
214
333
  - lib_zig/rufio_native/src/main.zig
215
334
  - lib_zig/rufio_native/src/main.zig.sync
335
+ - lib_zig/rufio_native/src/os.zig
336
+ - lib_zig/rufio_native/src/search.zig
337
+ - lib_zig/rufio_native/src/search_test.zig
338
+ - lib_zig/rufio_native/src/zip.zig
216
339
  - retag.sh
217
340
  homepage: https://github.com/masisz/rufio
218
341
  licenses:
Binary file