beniya 0.5.0 → 0.5.1
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 +6 -6
- data/README.md +8 -8
- data/Rakefile +156 -0
- data/lib/beniya/config.rb +4 -4
- data/lib/beniya/keybind_handler.rb +2 -2
- data/lib/beniya/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6110d8a673eee02088b1d95fac741e95b4d470cbb5b5bb5826b3e6ac65893890
|
4
|
+
data.tar.gz: 9030f59ba585966f29faa34eb2d450cff37f836431368ac5e4b2a0bb011e0cb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06a6a371c75c3c36125f26ae556893c32e4e9d0eba25ebd6f14e20e9957408fed671ace6d587f0d98477ad8e5f856373fcb4b0eae9ec3b23e60840f8c8298dbf
|
7
|
+
data.tar.gz: cb5d756ba159db9ecc9018b6fb44c9b0f05d8a213668e686653c09963406cde6ccf136993e259fa88d2d0b9528001e456d9e3b9b1a0cf139e4ddc1f6e8baa72f
|
data/CHANGELOG.md
CHANGED
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
-
## [0.5.0] - 2025-
|
10
|
+
## [0.5.0] - 2025-09-20
|
11
11
|
|
12
12
|
### Added
|
13
13
|
- **🔖 Bookmark System**: Complete bookmark functionality with persistent storage
|
@@ -32,7 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
32
32
|
- Integration with existing terminal UI components
|
33
33
|
- **Detailed changelog**: [CHANGELOG_v0.5.0.md](./CHANGELOG_v0.5.0.md)
|
34
34
|
|
35
|
-
## [0.4.0] - 2025-
|
35
|
+
## [0.4.0] - 2025-09-13
|
36
36
|
|
37
37
|
### Added
|
38
38
|
- **Floating Dialog System**: Modern floating confirmation dialogs for delete operations
|
@@ -65,7 +65,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
65
65
|
|
66
66
|
For detailed information, see [CHANGELOG_v0.4.0.md](./CHANGELOG_v0.4.0.md)
|
67
67
|
|
68
|
-
## [0.3.0] -
|
68
|
+
## [0.3.0] - 2025-09-06
|
69
69
|
|
70
70
|
### Added
|
71
71
|
- Enhanced file operations and management features
|
@@ -76,7 +76,7 @@ For detailed information, see [CHANGELOG_v0.4.0.md](./CHANGELOG_v0.4.0.md)
|
|
76
76
|
- Performance improvements
|
77
77
|
- Bug fixes and stability enhancements
|
78
78
|
|
79
|
-
## [0.2.0] -
|
79
|
+
## [0.2.0] - 2025-08-26
|
80
80
|
|
81
81
|
### Added
|
82
82
|
- New features and functionality improvements
|
@@ -86,7 +86,7 @@ For detailed information, see [CHANGELOG_v0.4.0.md](./CHANGELOG_v0.4.0.md)
|
|
86
86
|
- User interface improvements
|
87
87
|
- Performance optimizations
|
88
88
|
|
89
|
-
## [0.1.0] -
|
89
|
+
## [0.1.0] - 2025-08-17
|
90
90
|
|
91
91
|
### Added
|
92
92
|
- Initial release of beniya
|
@@ -121,4 +121,4 @@ When contributing to beniya:
|
|
121
121
|
3. Link to detailed release notes for major versions
|
122
122
|
4. Include migration notes for breaking changes
|
123
123
|
|
124
|
-
For more information, see [Contributing Guidelines](./README.md#contributing).
|
124
|
+
For more information, see [Contributing Guidelines](./README.md#contributing).
|
data/README.md
CHANGED
@@ -91,7 +91,7 @@ beniya --help # ヘルプメッセージを表示
|
|
91
91
|
|
92
92
|
| キー | 機能 |
|
93
93
|
| ----------- | ------------------------------------------ |
|
94
|
-
| `
|
94
|
+
| `f` | フィルターモード開始・再編集 |
|
95
95
|
| 文字入力 | ファイル名で絞り込み(フィルターモード中) |
|
96
96
|
| `Enter` | フィルター維持で通常モードに戻る |
|
97
97
|
| `ESC` | フィルターをクリアして通常モードに戻る |
|
@@ -101,7 +101,7 @@ beniya --help # ヘルプメッセージを表示
|
|
101
101
|
|
102
102
|
| キー | 機能 |
|
103
103
|
| ---- | ----------------------------------------- |
|
104
|
-
| `
|
104
|
+
| `s` | fzfによるファイル名検索(プレビュー付き) |
|
105
105
|
| `F` | rgaによるファイル内容検索 |
|
106
106
|
|
107
107
|
#### ブックマーク機能
|
@@ -169,30 +169,30 @@ beniya起動時のディレクトリが**ベースディレクトリ**として
|
|
169
169
|
|
170
170
|
### フィルター機能の詳細
|
171
171
|
|
172
|
-
#### リアルタイムフィルター (`
|
172
|
+
#### リアルタイムフィルター (`f`)
|
173
173
|
|
174
|
-
- **フィルター開始**: `
|
174
|
+
- **フィルター開始**: `f`キーを押してフィルターモードに入る
|
175
175
|
- **文字入力による絞り込み**: 日本語・英数字・記号に対応
|
176
176
|
- **リアルタイム更新**: 文字を入力するたびに表示が更新される
|
177
177
|
- **フィルター維持**: `Enter`キーでフィルターを保持したまま通常操作に戻る
|
178
178
|
- **フィルタークリア**: `ESC`キーでフィルターをクリアして通常表示に戻る
|
179
|
-
- **再編集**: フィルター適用中に`
|
179
|
+
- **再編集**: フィルター適用中に`f`キーで再編集モード
|
180
180
|
- **文字削除**: `Backspace`で文字削除、全削除時は自動でフィルタークリア
|
181
181
|
|
182
182
|
#### 使用例
|
183
183
|
|
184
184
|
```
|
185
|
-
1.
|
185
|
+
1. f → フィルターモード開始
|
186
186
|
2. ".rb" → Rubyファイルのみ表示
|
187
187
|
3. Enter → フィルター維持で通常操作
|
188
188
|
4. j/k → フィルター結果内をナビゲーション
|
189
|
-
5.
|
189
|
+
5. f → フィルター再編集
|
190
190
|
6. ESC → フィルタークリア
|
191
191
|
```
|
192
192
|
|
193
193
|
### 検索機能の詳細
|
194
194
|
|
195
|
-
#### ファイル名検索 (`
|
195
|
+
#### ファイル名検索 (`s`)
|
196
196
|
|
197
197
|
- `fzf`を使用したインタラクティブなファイル名検索
|
198
198
|
- リアルタイムプレビュー表示
|
data/Rakefile
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/gem_tasks'
|
4
|
+
require 'rake/testtask'
|
5
|
+
require_relative 'lib/beniya/version'
|
6
|
+
|
7
|
+
# Test task
|
8
|
+
Rake::TestTask.new(:test) do |t|
|
9
|
+
t.libs << 'test'
|
10
|
+
t.libs << 'lib'
|
11
|
+
t.test_files = FileList['test/test_*.rb']
|
12
|
+
end
|
13
|
+
|
14
|
+
# Default task
|
15
|
+
task default: :test
|
16
|
+
|
17
|
+
# Gem build and push tasks
|
18
|
+
namespace :gem do
|
19
|
+
desc 'Build the gem file'
|
20
|
+
task :build do
|
21
|
+
puts "Building beniya v#{Beniya::VERSION}..."
|
22
|
+
|
23
|
+
# Clean old gem files
|
24
|
+
FileUtils.rm_f(Dir.glob('*.gem'))
|
25
|
+
|
26
|
+
# Build the gem
|
27
|
+
result = system('gem build beniya.gemspec')
|
28
|
+
|
29
|
+
if result
|
30
|
+
gem_file = "beniya-#{Beniya::VERSION}.gem"
|
31
|
+
puts "✅ Successfully built #{gem_file}"
|
32
|
+
else
|
33
|
+
puts "❌ Failed to build gem"
|
34
|
+
exit 1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
desc 'Push the gem to RubyGems.org'
|
39
|
+
task :push => :build do
|
40
|
+
gem_file = "beniya-#{Beniya::VERSION}.gem"
|
41
|
+
|
42
|
+
unless File.exist?(gem_file)
|
43
|
+
puts "❌ Gem file not found: #{gem_file}"
|
44
|
+
exit 1
|
45
|
+
end
|
46
|
+
|
47
|
+
puts "Pushing #{gem_file} to RubyGems.org..."
|
48
|
+
|
49
|
+
result = system("gem push #{gem_file}")
|
50
|
+
|
51
|
+
if result
|
52
|
+
puts "✅ Successfully pushed #{gem_file} to RubyGems.org"
|
53
|
+
puts "🎉 beniya v#{Beniya::VERSION} is now available!"
|
54
|
+
puts "📦 Install with: gem install beniya"
|
55
|
+
else
|
56
|
+
puts "❌ Failed to push gem to RubyGems.org"
|
57
|
+
exit 1
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
desc 'Check if current version already exists on RubyGems.org'
|
62
|
+
task :check_version do
|
63
|
+
puts "Checking if version #{Beniya::VERSION} exists on RubyGems.org..."
|
64
|
+
|
65
|
+
result = system("gem list beniya --remote --exact --all | grep '#{Beniya::VERSION}'", out: File::NULL, err: File::NULL)
|
66
|
+
|
67
|
+
if result
|
68
|
+
puts "⚠️ Version #{Beniya::VERSION} already exists on RubyGems.org"
|
69
|
+
puts "💡 Please update the version in lib/beniya/version.rb before publishing"
|
70
|
+
exit 1
|
71
|
+
else
|
72
|
+
puts "✅ Version #{Beniya::VERSION} is available for publishing"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
desc 'Clean built gem files'
|
77
|
+
task :clean do
|
78
|
+
puts "Cleaning gem files..."
|
79
|
+
removed_files = Dir.glob('*.gem')
|
80
|
+
FileUtils.rm_f(removed_files)
|
81
|
+
|
82
|
+
if removed_files.any?
|
83
|
+
puts "🗑️ Removed: #{removed_files.join(', ')}"
|
84
|
+
else
|
85
|
+
puts "✨ No gem files to clean"
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
desc 'Build and publish gem (with version check)'
|
90
|
+
task :publish => [:check_version, :test, :push] do
|
91
|
+
puts "🚀 Gem publishing completed successfully!"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# Release tasks
|
96
|
+
namespace :release do
|
97
|
+
desc 'Tag the current version in git'
|
98
|
+
task :tag do
|
99
|
+
version = "v#{Beniya::VERSION}"
|
100
|
+
|
101
|
+
puts "Creating git tag #{version}..."
|
102
|
+
|
103
|
+
# Check if tag already exists
|
104
|
+
if system("git tag -l | grep -q '^#{version}$'", out: File::NULL, err: File::NULL)
|
105
|
+
puts "⚠️ Tag #{version} already exists"
|
106
|
+
exit 1
|
107
|
+
end
|
108
|
+
|
109
|
+
# Create and push tag
|
110
|
+
system("git tag #{version}")
|
111
|
+
system("git push origin #{version}")
|
112
|
+
|
113
|
+
puts "✅ Created and pushed tag #{version}"
|
114
|
+
end
|
115
|
+
|
116
|
+
desc 'Prepare release (tag + gem publish)'
|
117
|
+
task :prepare => ['gem:publish', :tag] do
|
118
|
+
puts "🎉 Release v#{Beniya::VERSION} completed!"
|
119
|
+
puts "📋 Don't forget to:"
|
120
|
+
puts " - Update CHANGELOG.md"
|
121
|
+
puts " - Create GitHub release from tag"
|
122
|
+
puts " - Announce the release"
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
# Utility tasks
|
127
|
+
desc 'Display current version'
|
128
|
+
task :version do
|
129
|
+
puts "beniya v#{Beniya::VERSION}"
|
130
|
+
end
|
131
|
+
|
132
|
+
desc 'Run simple test for basic functionality'
|
133
|
+
task :simple_test do
|
134
|
+
puts "Running simple functionality test..."
|
135
|
+
result = system('ruby test/simple_test.rb')
|
136
|
+
|
137
|
+
if result
|
138
|
+
puts "✅ Simple test passed"
|
139
|
+
else
|
140
|
+
puts "❌ Simple test failed"
|
141
|
+
exit 1
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
desc 'Run bookmark tests'
|
146
|
+
task :test_bookmark do
|
147
|
+
puts "Running bookmark functionality test..."
|
148
|
+
result = system('ruby test/test_bookmark_simple.rb')
|
149
|
+
|
150
|
+
if result
|
151
|
+
puts "✅ Bookmark tests passed"
|
152
|
+
else
|
153
|
+
puts "❌ Bookmark tests failed"
|
154
|
+
exit 1
|
155
|
+
end
|
156
|
+
end
|
data/lib/beniya/config.rb
CHANGED
@@ -43,8 +43,8 @@ module Beniya
|
|
43
43
|
'ui.operation_prompt' => 'Operation: ',
|
44
44
|
|
45
45
|
# Help text
|
46
|
-
'help.full' => 'j/k:move h:back l:enter o:open g/G:top/bottom r:refresh
|
47
|
-
'help.short' => 'j/k:move h:back l:enter o:open
|
46
|
+
'help.full' => 'j/k:move h:back l:enter o:open g/G:top/bottom r:refresh f:filter s:search F:content a/A:create m/p/x:ops b:bookmark 1-9:goto q:quit',
|
47
|
+
'help.short' => 'j/k:move h:back l:enter o:open f:filter s:search b:bookmark 1-9:goto q:quit',
|
48
48
|
|
49
49
|
# Health check messages
|
50
50
|
'health.title' => 'beniya Health Check',
|
@@ -111,8 +111,8 @@ module Beniya
|
|
111
111
|
'ui.operation_prompt' => '操作: ',
|
112
112
|
|
113
113
|
# Help text
|
114
|
-
'help.full' => 'j/k:移動 h:戻る l:入る o:開く g/G:先頭/末尾 r:更新
|
115
|
-
'help.short' => 'j/k:移動 h:戻る l:入る o:開く
|
114
|
+
'help.full' => 'j/k:移動 h:戻る l:入る o:開く g/G:先頭/末尾 r:更新 f:絞込 s:検索 F:内容 a/A:作成 m/p/x:操作 b:ブックマーク 1-9:移動 q:終了',
|
115
|
+
'help.short' => 'j/k:移動 h:戻る l:入る o:開く f:絞込 s:検索 b:ブックマーク 1-9:移動 q:終了',
|
116
116
|
|
117
117
|
# Health check messages
|
118
118
|
'health.title' => 'beniya ヘルスチェック',
|
@@ -66,7 +66,7 @@ module Beniya
|
|
66
66
|
open_current_file
|
67
67
|
when 'e' # e - open directory in file explorer
|
68
68
|
open_directory_in_explorer
|
69
|
-
when '
|
69
|
+
when 'f' # f - filter files
|
70
70
|
if !@filter_query.empty?
|
71
71
|
# フィルタが設定されている場合は再編集モードに入る
|
72
72
|
@filter_mode = true
|
@@ -89,7 +89,7 @@ module Beniya
|
|
89
89
|
exit_request
|
90
90
|
when '/' # /
|
91
91
|
fzf_search
|
92
|
-
when '
|
92
|
+
when 's' # s - file name search with fzf
|
93
93
|
fzf_search
|
94
94
|
when 'F' # F - file content search with rga
|
95
95
|
rga_search
|
data/lib/beniya/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beniya
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- masisz
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-09-
|
10
|
+
date: 2025-09-23 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: io-console
|
@@ -121,6 +121,7 @@ files:
|
|
121
121
|
- CHANGELOG_v0.5.0.md
|
122
122
|
- README.md
|
123
123
|
- README_EN.md
|
124
|
+
- Rakefile
|
124
125
|
- beniya.gemspec
|
125
126
|
- bin/beniya
|
126
127
|
- config_example.rb
|