hank 0.1.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 (102) hide show
  1. checksums.yaml +7 -0
  2. data/.clodignore +32 -0
  3. data/.rubocop.yml +59 -0
  4. data/CLAUDE.md +22 -0
  5. data/Gemfile +11 -0
  6. data/LICENSE +21 -0
  7. data/README.md +70 -0
  8. data/Rakefile +17 -0
  9. data/bin/hank +7 -0
  10. data/hank.gemspec +55 -0
  11. data/lib/hank/cli.rb +162 -0
  12. data/lib/hank/file_selector.rb +204 -0
  13. data/lib/hank/hankfile.rb +70 -0
  14. data/lib/hank/path_utils.rb +47 -0
  15. data/lib/hank/symlink_manager.rb +94 -0
  16. data/lib/hank/validator.rb +65 -0
  17. data/lib/hank/version.rb +6 -0
  18. data/lib/hank.rb +25 -0
  19. data/sorbet/config +5 -0
  20. data/sorbet/rbi/annotations/.gitattributes +1 -0
  21. data/sorbet/rbi/annotations/colorize.rbi +121 -0
  22. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  23. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  24. data/sorbet/rbi/gems/.gitattributes +1 -0
  25. data/sorbet/rbi/gems/ansi.rbi +398 -0
  26. data/sorbet/rbi/gems/ansi@1.5.0.rbi +688 -0
  27. data/sorbet/rbi/gems/ast.rbi +49 -0
  28. data/sorbet/rbi/gems/ast@2.4.3.rbi +585 -0
  29. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  30. data/sorbet/rbi/gems/builder.rbi +58 -0
  31. data/sorbet/rbi/gems/builder@3.3.0.rbi +502 -0
  32. data/sorbet/rbi/gems/citrus.rbi +238 -0
  33. data/sorbet/rbi/gems/citrus@3.0.2.rbi +1234 -0
  34. data/sorbet/rbi/gems/colorize.rbi +82 -0
  35. data/sorbet/rbi/gems/colorize@0.8.1.rbi +152 -0
  36. data/sorbet/rbi/gems/curses.rbi +327 -0
  37. data/sorbet/rbi/gems/curses@1.4.7.rbi +894 -0
  38. data/sorbet/rbi/gems/diffy.rbi +56 -0
  39. data/sorbet/rbi/gems/diffy@3.4.3.rbi +184 -0
  40. data/sorbet/rbi/gems/docile.rbi +36 -0
  41. data/sorbet/rbi/gems/docile@1.4.1.rbi +377 -0
  42. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  43. data/sorbet/rbi/gems/fiddle.rbi +120 -0
  44. data/sorbet/rbi/gems/fiddle@1.1.6.rbi +9 -0
  45. data/sorbet/rbi/gems/hank.rbi +15 -0
  46. data/sorbet/rbi/gems/json@2.10.2.rbi +2112 -0
  47. data/sorbet/rbi/gems/language_server-protocol.rbi +2868 -0
  48. data/sorbet/rbi/gems/language_server-protocol@3.17.0.4.rbi +9 -0
  49. data/sorbet/rbi/gems/lint_roller.rbi +75 -0
  50. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +86 -0
  51. data/sorbet/rbi/gems/logger.rbi +94 -0
  52. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  53. data/sorbet/rbi/gems/minitest-reporters.rbi +104 -0
  54. data/sorbet/rbi/gems/minitest-reporters@1.7.1.rbi +1018 -0
  55. data/sorbet/rbi/gems/minitest.rbi +440 -0
  56. data/sorbet/rbi/gems/minitest@5.25.5.rbi +1547 -0
  57. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  58. data/sorbet/rbi/gems/parallel.rbi +88 -0
  59. data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
  60. data/sorbet/rbi/gems/parser.rbi +1545 -0
  61. data/sorbet/rbi/gems/parser@3.3.7.4.rbi +5535 -0
  62. data/sorbet/rbi/gems/prism.rbi +4090 -0
  63. data/sorbet/rbi/gems/prism@1.4.0.rbi +41732 -0
  64. data/sorbet/rbi/gems/racc.rbi +41 -0
  65. data/sorbet/rbi/gems/racc@1.8.1.rbi +160 -0
  66. data/sorbet/rbi/gems/rainbow.rbi +122 -0
  67. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  68. data/sorbet/rbi/gems/rake.rbi +649 -0
  69. data/sorbet/rbi/gems/rake@13.2.1.rbi +3033 -0
  70. data/sorbet/rbi/gems/rbi@0.3.1.rbi +6599 -0
  71. data/sorbet/rbi/gems/rbs@3.9.2.rbi +6978 -0
  72. data/sorbet/rbi/gems/regexp_parser.rbi +1039 -0
  73. data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +3795 -0
  74. data/sorbet/rbi/gems/rubocop-ast.rbi +1470 -0
  75. data/sorbet/rbi/gems/rubocop-ast@1.44.0.rbi +7716 -0
  76. data/sorbet/rbi/gems/rubocop.rbi +10557 -0
  77. data/sorbet/rbi/gems/rubocop@1.75.2.rbi +61860 -0
  78. data/sorbet/rbi/gems/ruby-filemagic.rbi +46 -0
  79. data/sorbet/rbi/gems/ruby-filemagic@0.7.3.rbi +168 -0
  80. data/sorbet/rbi/gems/ruby-progressbar.rbi +321 -0
  81. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  82. data/sorbet/rbi/gems/simplecov-html.rbi +36 -0
  83. data/sorbet/rbi/gems/simplecov-html@0.13.1.rbi +225 -0
  84. data/sorbet/rbi/gems/simplecov.rbi +435 -0
  85. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  86. data/sorbet/rbi/gems/simplecov_json_formatter.rbi +47 -0
  87. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  88. data/sorbet/rbi/gems/spoom@1.6.1.rbi +7274 -0
  89. data/sorbet/rbi/gems/tapioca@0.16.11.rbi +3628 -0
  90. data/sorbet/rbi/gems/thor.rbi +583 -0
  91. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  92. data/sorbet/rbi/gems/toml-rb.rbi +136 -0
  93. data/sorbet/rbi/gems/toml-rb@2.2.0.rbi +419 -0
  94. data/sorbet/rbi/gems/unicode-display_width.rbi +28 -0
  95. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  96. data/sorbet/rbi/gems/unicode-emoji.rbi +18 -0
  97. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  98. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  99. data/sorbet/rbi/gems/yard@0.9.37.rbi +18379 -0
  100. data/sorbet/tapioca/config.yml +13 -0
  101. data/sorbet/tapioca/require.rb +4 -0
  102. metadata +399 -0
@@ -0,0 +1,13 @@
1
+ gem:
2
+ # Add your `gem` command parameters here:
3
+ #
4
+ # exclude:
5
+ # - gem_name
6
+ # doc: true
7
+ # workers: 5
8
+ dsl:
9
+ # Add your `dsl` command parameters here:
10
+ #
11
+ # exclude:
12
+ # - SomeGeneratorName
13
+ # workers: 5
@@ -0,0 +1,4 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ # Add your extra requires here (`bin/tapioca require` can be used to bootstrap this list)
metadata ADDED
@@ -0,0 +1,399 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hank
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Fuzz Leonard
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 2025-04-14 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: colorize
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '0.8'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '0.8'
26
+ - !ruby/object:Gem::Dependency
27
+ name: curses
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.4'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.4'
40
+ - !ruby/object:Gem::Dependency
41
+ name: diffy
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.4'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.4'
54
+ - !ruby/object:Gem::Dependency
55
+ name: fiddle
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.1'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.1'
68
+ - !ruby/object:Gem::Dependency
69
+ name: logger
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.5'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.5'
82
+ - !ruby/object:Gem::Dependency
83
+ name: ruby-filemagic
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.7'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.7'
96
+ - !ruby/object:Gem::Dependency
97
+ name: sorbet-runtime
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.5'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.5'
110
+ - !ruby/object:Gem::Dependency
111
+ name: thor
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.2'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.2'
124
+ - !ruby/object:Gem::Dependency
125
+ name: toml-rb
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.2'
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '2.2'
138
+ - !ruby/object:Gem::Dependency
139
+ name: minitest
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '5.16'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '5.16'
152
+ - !ruby/object:Gem::Dependency
153
+ name: minitest-reporters
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '1.5'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '1.5'
166
+ - !ruby/object:Gem::Dependency
167
+ name: rake
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '13.0'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '13.0'
180
+ - !ruby/object:Gem::Dependency
181
+ name: rubocop
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '1.36'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '1.36'
194
+ - !ruby/object:Gem::Dependency
195
+ name: rubocop-minitest
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '0.38'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '0.38'
208
+ - !ruby/object:Gem::Dependency
209
+ name: rubocop-rake
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '0.7'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '0.7'
222
+ - !ruby/object:Gem::Dependency
223
+ name: simplecov
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '0.21'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '0.21'
236
+ - !ruby/object:Gem::Dependency
237
+ name: sorbet
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '0.5'
243
+ type: :development
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '0.5'
250
+ - !ruby/object:Gem::Dependency
251
+ name: tapioca
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '0.16'
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '0.16'
264
+ description: Hank manages symlinks between source paths and flattened pathnames within
265
+ a git repository, making it easier to manage configuration files and collaborate
266
+ with AI tools.
267
+ email:
268
+ - ink@fuzz.ink
269
+ executables:
270
+ - hank
271
+ extensions: []
272
+ extra_rdoc_files: []
273
+ files:
274
+ - ".clodignore"
275
+ - ".rubocop.yml"
276
+ - CLAUDE.md
277
+ - Gemfile
278
+ - LICENSE
279
+ - README.md
280
+ - Rakefile
281
+ - bin/hank
282
+ - hank.gemspec
283
+ - lib/hank.rb
284
+ - lib/hank/cli.rb
285
+ - lib/hank/file_selector.rb
286
+ - lib/hank/hankfile.rb
287
+ - lib/hank/path_utils.rb
288
+ - lib/hank/symlink_manager.rb
289
+ - lib/hank/validator.rb
290
+ - lib/hank/version.rb
291
+ - sorbet/config
292
+ - sorbet/rbi/annotations/.gitattributes
293
+ - sorbet/rbi/annotations/colorize.rbi
294
+ - sorbet/rbi/annotations/minitest.rbi
295
+ - sorbet/rbi/annotations/rainbow.rbi
296
+ - sorbet/rbi/gems/.gitattributes
297
+ - sorbet/rbi/gems/ansi.rbi
298
+ - sorbet/rbi/gems/ansi@1.5.0.rbi
299
+ - sorbet/rbi/gems/ast.rbi
300
+ - sorbet/rbi/gems/ast@2.4.3.rbi
301
+ - sorbet/rbi/gems/benchmark@0.4.0.rbi
302
+ - sorbet/rbi/gems/builder.rbi
303
+ - sorbet/rbi/gems/builder@3.3.0.rbi
304
+ - sorbet/rbi/gems/citrus.rbi
305
+ - sorbet/rbi/gems/citrus@3.0.2.rbi
306
+ - sorbet/rbi/gems/colorize.rbi
307
+ - sorbet/rbi/gems/colorize@0.8.1.rbi
308
+ - sorbet/rbi/gems/curses.rbi
309
+ - sorbet/rbi/gems/curses@1.4.7.rbi
310
+ - sorbet/rbi/gems/diffy.rbi
311
+ - sorbet/rbi/gems/diffy@3.4.3.rbi
312
+ - sorbet/rbi/gems/docile.rbi
313
+ - sorbet/rbi/gems/docile@1.4.1.rbi
314
+ - sorbet/rbi/gems/erubi@1.13.1.rbi
315
+ - sorbet/rbi/gems/fiddle.rbi
316
+ - sorbet/rbi/gems/fiddle@1.1.6.rbi
317
+ - sorbet/rbi/gems/hank.rbi
318
+ - sorbet/rbi/gems/json@2.10.2.rbi
319
+ - sorbet/rbi/gems/language_server-protocol.rbi
320
+ - sorbet/rbi/gems/language_server-protocol@3.17.0.4.rbi
321
+ - sorbet/rbi/gems/lint_roller.rbi
322
+ - sorbet/rbi/gems/lint_roller@1.1.0.rbi
323
+ - sorbet/rbi/gems/logger.rbi
324
+ - sorbet/rbi/gems/logger@1.7.0.rbi
325
+ - sorbet/rbi/gems/minitest-reporters.rbi
326
+ - sorbet/rbi/gems/minitest-reporters@1.7.1.rbi
327
+ - sorbet/rbi/gems/minitest.rbi
328
+ - sorbet/rbi/gems/minitest@5.25.5.rbi
329
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
330
+ - sorbet/rbi/gems/parallel.rbi
331
+ - sorbet/rbi/gems/parallel@1.26.3.rbi
332
+ - sorbet/rbi/gems/parser.rbi
333
+ - sorbet/rbi/gems/parser@3.3.7.4.rbi
334
+ - sorbet/rbi/gems/prism.rbi
335
+ - sorbet/rbi/gems/prism@1.4.0.rbi
336
+ - sorbet/rbi/gems/racc.rbi
337
+ - sorbet/rbi/gems/racc@1.8.1.rbi
338
+ - sorbet/rbi/gems/rainbow.rbi
339
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
340
+ - sorbet/rbi/gems/rake.rbi
341
+ - sorbet/rbi/gems/rake@13.2.1.rbi
342
+ - sorbet/rbi/gems/rbi@0.3.1.rbi
343
+ - sorbet/rbi/gems/rbs@3.9.2.rbi
344
+ - sorbet/rbi/gems/regexp_parser.rbi
345
+ - sorbet/rbi/gems/regexp_parser@2.10.0.rbi
346
+ - sorbet/rbi/gems/rubocop-ast.rbi
347
+ - sorbet/rbi/gems/rubocop-ast@1.44.0.rbi
348
+ - sorbet/rbi/gems/rubocop.rbi
349
+ - sorbet/rbi/gems/rubocop@1.75.2.rbi
350
+ - sorbet/rbi/gems/ruby-filemagic.rbi
351
+ - sorbet/rbi/gems/ruby-filemagic@0.7.3.rbi
352
+ - sorbet/rbi/gems/ruby-progressbar.rbi
353
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
354
+ - sorbet/rbi/gems/simplecov-html.rbi
355
+ - sorbet/rbi/gems/simplecov-html@0.13.1.rbi
356
+ - sorbet/rbi/gems/simplecov.rbi
357
+ - sorbet/rbi/gems/simplecov@0.22.0.rbi
358
+ - sorbet/rbi/gems/simplecov_json_formatter.rbi
359
+ - sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi
360
+ - sorbet/rbi/gems/spoom@1.6.1.rbi
361
+ - sorbet/rbi/gems/tapioca@0.16.11.rbi
362
+ - sorbet/rbi/gems/thor.rbi
363
+ - sorbet/rbi/gems/thor@1.3.2.rbi
364
+ - sorbet/rbi/gems/toml-rb.rbi
365
+ - sorbet/rbi/gems/toml-rb@2.2.0.rbi
366
+ - sorbet/rbi/gems/unicode-display_width.rbi
367
+ - sorbet/rbi/gems/unicode-display_width@3.1.4.rbi
368
+ - sorbet/rbi/gems/unicode-emoji.rbi
369
+ - sorbet/rbi/gems/unicode-emoji@4.0.4.rbi
370
+ - sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
371
+ - sorbet/rbi/gems/yard@0.9.37.rbi
372
+ - sorbet/tapioca/config.yml
373
+ - sorbet/tapioca/require.rb
374
+ homepage: https://github.com/fuzz/hank
375
+ licenses:
376
+ - MIT
377
+ metadata:
378
+ homepage_uri: https://github.com/fuzz/hank
379
+ source_code_uri: https://github.com/fuzz/hank
380
+ changelog_uri: https://github.com/fuzz/hank/blob/main/CHANGELOG.md
381
+ rubygems_mfa_required: 'true'
382
+ rdoc_options: []
383
+ require_paths:
384
+ - lib
385
+ required_ruby_version: !ruby/object:Gem::Requirement
386
+ requirements:
387
+ - - ">="
388
+ - !ruby/object:Gem::Version
389
+ version: 2.7.0
390
+ required_rubygems_version: !ruby/object:Gem::Requirement
391
+ requirements:
392
+ - - ">="
393
+ - !ruby/object:Gem::Version
394
+ version: '0'
395
+ requirements: []
396
+ rubygems_version: 3.6.3
397
+ specification_version: 4
398
+ summary: Symlink manager for easier file management and AI collaboration
399
+ test_files: []