hookapp 2.0.10 → 2.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 139ecb2e98a6f42e1499541fd62cc8b7605e4223874dec1ed843d05e50d15b9e
4
- data.tar.gz: afe9d0893cb5ae49a2063228b74580801d78987ebbb4e4374b0bef8bfdd08fde
3
+ metadata.gz: 2f462bf978c37d12aea3ce3a7295369efd033dc157a3c89a51d3f0d5033e27c5
4
+ data.tar.gz: 87b79ea00550040435fbd2eadf7eb06c328c5024c098783e5e2263f8a4c86ace
5
5
  SHA512:
6
- metadata.gz: 7ddb41793305f83f4f0b4b09abf4e27c35f19c9f97c23ff5c33a082ef94bec9445572c9481f831131770afaec6fd2c344700405a2bc801e37e5749b500fbfca7
7
- data.tar.gz: d5020af5a886bd2df01839afc7dc642926307d077b8a36e89e520e420c55724dca7ead7626db0571e7f694c4d92231891a9a219f9b32f811dbe48e47c6581414
6
+ metadata.gz: ffa2690de523d14aeae2d2bfbe8b9d1e92e8bfd1ec9b225c480c17666633e1b204f1fac4a5b4789e114aab4280ce87effbbf95d0b674cf60cb55e18e9f917e04
7
+ data.tar.gz: a51a97bf835d892dcb300f904c701823a2de808a80c4ea24468ab0657c8b048dcc3fa85c0e5371fbd20120702d2d783f09b47c7b9cb4f39688881dcb363b86e1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hookapp (2.0.10)
4
+ hookapp (2.0.11)
5
5
  gli (~> 2.20.1)
6
6
  tty-which (~> 0.5, >= 0.5.0)
7
7
 
data/README.md CHANGED
@@ -6,7 +6,7 @@ CLI interface for Hook.app (macOS)
6
6
 
7
7
  This gem includes a `hook` binary that allows interaction with the features of Hook.app.
8
8
 
9
- *v2.0.10*
9
+ *v2.0.11*
10
10
 
11
11
  ## Installation
12
12
 
@@ -101,6 +101,14 @@ Display the program version
101
101
 
102
102
  ## Commands
103
103
 
104
+ ### `$ hook` <mark>`browse`</mark> `PATH_OR_GLOB`
105
+
106
+ *Browse hooks*
107
+
108
+ > Select a file to see its hooks, navigate through descendents
109
+
110
+ * * * * * *
111
+
104
112
  ### `$ hook` <mark>`clip|cp`</mark> `FILE_OR_URL`
105
113
 
106
114
  *Copy Hook URL for file/url to clipboard*
@@ -358,5 +366,5 @@ This software is licensed under the MIT License.
358
366
  THE SOFTWARE.
359
367
 
360
368
 
361
- Documentation generated 2022-05-28 08:26
369
+ Documentation generated 2022-07-19 14:13
362
370
 
data/bin/hook CHANGED
@@ -242,6 +242,15 @@ filetype by macOS. Allows multiple selections with tab key, and type-ahead fuzzy
242
242
  end
243
243
  end
244
244
 
245
+ desc 'Browse hooks'
246
+ long_desc 'Select a file to see its hooks, navigate through descendents'
247
+ arg_name 'PATH_OR_GLOB'
248
+ command %i[browse] do |c|
249
+ c.action do |_, _, args|
250
+ hookapp.browse_bookmarks(args)
251
+ end
252
+ end
253
+
245
254
  desc 'Open the specified file or url in Hook GUI'
246
255
  long_desc 'Opens Hook.app on the specified file/URL for browsing and performing actions.
247
256
 
data/hook.rdoc CHANGED
@@ -4,7 +4,7 @@ Hook.app is a productivity tool for macOS <https://hookproductivity.com/>.
4
4
 
5
5
  This gem includes a `hook` binary that allows interaction with the features of Hook.app.
6
6
 
7
- v2.0.10
7
+ v2.0.11
8
8
 
9
9
  === Global Options
10
10
  === --help
@@ -18,6 +18,10 @@ Display the program version
18
18
 
19
19
 
20
20
  === Commands
21
+ ==== Command: <tt>browse PATH_OR_GLOB</tt>
22
+ Browse hooks
23
+
24
+ Select a file to see its hooks, navigate through descendents
21
25
  ==== Command: <tt>clip|cp FILE_OR_URL</tt>
22
26
  Copy Hook URL for file/url to clipboard
23
27
 
data/html/HookApp.html CHANGED
@@ -83,6 +83,7 @@
83
83
  <li ><a href="#method-i-all_bookmarks">#all_bookmarks</a>
84
84
  <li ><a href="#method-i-bookmark_for">#bookmark_for</a>
85
85
  <li ><a href="#method-i-bookmark_from_app">#bookmark_from_app</a>
86
+ <li ><a href="#method-i-browse_bookmarks">#browse_bookmarks</a>
86
87
  <li ><a href="#method-i-clip_bookmark">#clip_bookmark</a>
87
88
  <li ><a href="#method-i-clone_hooks">#clone_hooks</a>
88
89
  <li ><a href="#method-i-copy_bookmark">#copy_bookmark</a>
@@ -241,6 +242,46 @@
241
242
  </div>
242
243
 
243
244
 
245
+ </div>
246
+
247
+ <div id="method-i-browse_bookmarks" class="method-detail ">
248
+ <div class="method-heading">
249
+ <span class="method-name">browse_bookmarks</span><span
250
+ class="method-args">(glob)</span>
251
+ <span class="method-click-advice">click to toggle source</span>
252
+ </div>
253
+
254
+ <div class="method-description">
255
+
256
+
257
+ <div class="method-source-code" id="browse_bookmarks-source">
258
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 258</span>
259
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">browse_bookmarks</span>(<span class="ruby-identifier">glob</span>)
260
+ <span class="ruby-identifier">root</span> = <span class="ruby-keyword">if</span> <span class="ruby-identifier">glob</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
261
+ <span class="ruby-identifier">glob</span>.<span class="ruby-identifier">count</span>.<span class="ruby-identifier">positive?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">glob</span> <span class="ruby-operator">:</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-string">&#39;**/*&#39;</span>)
262
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">glob</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">glob</span>)
263
+ <span class="ruby-identifier">hooks</span> = <span class="ruby-identifier">get_hooks</span>(<span class="ruby-identifier">glob</span>)
264
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">select_hook</span>(<span class="ruby-identifier">hooks</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">hooks</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">glob</span>)
265
+
266
+ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>([<span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">glob</span>), <span class="ruby-string">&#39;**/*&#39;</span>])
267
+ <span class="ruby-keyword">else</span>
268
+ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">glob</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">glob</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-string">&#39;**/*&#39;</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">glob</span>)
269
+ <span class="ruby-keyword">end</span>
270
+
271
+ <span class="ruby-identifier">args</span> = [<span class="ruby-string">&#39;--layout=reverse-list&#39;</span>,
272
+ <span class="ruby-string">&#39;--header=&quot;esc: cancel, return: open&quot;&#39;</span>,
273
+ <span class="ruby-string">&#39;--prompt=&quot; Select file &gt; &quot;&#39;</span>,
274
+ <span class="ruby-string">%(--preview=&#39;hook ls {1}&#39;)</span>,
275
+ <span class="ruby-string">&#39;--height=60%&#39;</span>,
276
+ <span class="ruby-string">&#39;--min-height=10&#39;</span>]
277
+
278
+ <span class="ruby-identifier">sel</span> = <span class="ruby-node">`echo #{Shellwords.escape(root.join(&quot;\n&quot;))} | &#39;#{fzf}&#39; #{args.join(&#39; &#39;)}`</span>.<span class="ruby-identifier">chomp</span>
279
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">open_linked</span>(<span class="ruby-identifier">sel</span>)
280
+ <span class="ruby-keyword">end</span></pre>
281
+ </div>
282
+ </div>
283
+
284
+
244
285
  </div>
245
286
 
246
287
  <div id="method-i-clip_bookmark" class="method-detail ">
@@ -276,7 +317,7 @@
276
317
  <p>Copy all hooks from source file to target file</p>
277
318
 
278
319
  <div class="method-source-code" id="clone_hooks-source">
279
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 313</span>
320
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 336</span>
280
321
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">clone_hooks</span>(<span class="ruby-identifier">args</span>)
281
322
  <span class="ruby-identifier">target</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">valid_hook</span>
282
323
  <span class="ruby-identifier">source</span> = <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">valid_hook</span>
@@ -340,7 +381,7 @@
340
381
 
341
382
 
342
383
  <div class="method-source-code" id="decode-source">
343
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 499</span>
384
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 522</span>
344
385
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decode</span>(<span class="ruby-identifier">string</span>)
345
386
  <span class="ruby-identifier">result</span> = <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
346
387
  tell application &quot;Hook&quot;
@@ -366,7 +407,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>
366
407
  <p>Delete all hooked files/urls from target file</p>
367
408
 
368
409
  <div class="method-source-code" id="delete_all_hooks-source">
369
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 336</span>
410
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 359</span>
370
411
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">delete_all_hooks</span>(<span class="ruby-identifier">url</span>, <span class="ruby-value">force:</span> <span class="ruby-keyword">false</span>)
371
412
  <span class="ruby-keyword">unless</span> <span class="ruby-identifier">force</span>
372
413
  <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">&quot;Are you sure you want to delete ALL hooks from #{url} (y/N)? &quot;</span>
@@ -404,7 +445,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>
404
445
  <p>Delete hooks between two files/urls</p>
405
446
 
406
447
  <div class="method-source-code" id="delete_hooks-source">
407
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 358</span>
448
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 381</span>
408
449
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">delete_hooks</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">opts</span>)
409
450
  <span class="ruby-identifier">urls</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">map</span>(<span class="ruby-operator">&amp;</span><span class="ruby-value">:valid_hook</span>).<span class="ruby-identifier">delete_if</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">url</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-identifier">url</span> }
410
451
  <span class="ruby-identifier">output</span> = []
@@ -450,7 +491,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>
450
491
 
451
492
 
452
493
  <div class="method-source-code" id="encode-source">
453
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 490</span>
494
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 513</span>
454
495
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encode</span>(<span class="ruby-identifier">string</span>)
455
496
  <span class="ruby-identifier">result</span> = <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
456
497
  tell application &quot;Hook&quot;
@@ -540,7 +581,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>.<span class="ruby
540
581
  <p>Create bi-directional links between every file/url in the list of arguments</p>
541
582
 
542
583
  <div class="method-source-code" id="link_all-source">
543
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 388</span>
584
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 411</span>
544
585
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">link_all</span>(<span class="ruby-identifier">args</span>)
545
586
  <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
546
587
  <span class="ruby-identifier">source</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">valid_hook</span>
@@ -575,7 +616,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>.<span class="ruby
575
616
  <p>Link 2 or more files/urls with bi-directional hooks.</p>
576
617
 
577
618
  <div class="method-source-code" id="link_files-source">
578
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 290</span>
619
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 313</span>
579
620
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">link_files</span>(<span class="ruby-identifier">args</span>)
580
621
  <span class="ruby-identifier">target</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>
581
622
  <span class="ruby-identifier">target</span>.<span class="ruby-identifier">valid_hook!</span>
@@ -614,7 +655,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>.<span class="ruby
614
655
  <p>Get a list of all hooks on a file/url.</p>
615
656
 
616
657
  <div class="method-source-code" id="linked_bookmarks-source">
617
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 407</span>
658
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 430</span>
618
659
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">linked_bookmarks</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">opts</span>)
619
660
  <span class="ruby-identifier">result</span> = []
620
661
 
@@ -677,7 +718,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>.<span class="ruby
677
718
  <p>Open the <a href="Hook.html"><code>Hook</code></a> GUI for browsing/performing actions on a file or url</p>
678
719
 
679
720
  <div class="method-source-code" id="open_gui-source">
680
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 259</span>
721
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 282</span>
681
722
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">open_gui</span>(<span class="ruby-identifier">url</span>)
682
723
  <span class="ruby-identifier">result</span> = <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
683
724
  tell application &quot;Hook&quot;
@@ -709,7 +750,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>.<span class="ruby
709
750
  <p>Select from a menu of available hooks and open using macOS `open`.</p>
710
751
 
711
752
  <div class="method-source-code" id="open_linked-source">
712
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 275</span>
753
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 298</span>
713
754
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">open_linked</span>(<span class="ruby-identifier">url</span>)
714
755
  <span class="ruby-identifier">marks</span> = <span class="ruby-identifier">get_hooks</span>(<span class="ruby-identifier">url</span>)
715
756
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">marks</span>.<span class="ruby-identifier">empty?</span>
@@ -740,7 +781,7 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>.<span class="ruby
740
781
  <p>Output an array of hooks in the given format.</p>
741
782
 
742
783
  <div class="method-source-code" id="output_array-source">
743
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 454</span>
784
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 477</span>
744
785
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">output_array</span>(<span class="ruby-identifier">hooks_arr</span>, <span class="ruby-identifier">opts</span>)
745
786
  <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">hooks_arr</span>.<span class="ruby-identifier">empty?</span>
746
787
  <span class="ruby-identifier">hooks_arr</span>.<span class="ruby-identifier">reject!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[<span class="ruby-value">:path</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">h</span>[<span class="ruby-value">:path</span>] <span class="ruby-operator">==</span> <span class="ruby-string">&#39;&#39;</span> } <span class="ruby-keyword">if</span> <span class="ruby-identifier">opts</span>[<span class="ruby-value">:files_only</span>]
@@ -947,10 +988,10 @@ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>.<span class="ruby
947
988
  <span class="ruby-string">&#39;--delimiter=&quot;\t&quot;&#39;</span>,
948
989
  <span class="ruby-string">&#39;--with-nth=1,4&#39;</span>,
949
990
  <span class="ruby-string">&#39;--height=60%&#39;</span>,
950
- <span class="ruby-string">&#39;--min-height=10&#39;</span>
951
- ]
991
+ <span class="ruby-string">&#39;--min-height=10&#39;</span>]
952
992
 
953
993
  <span class="ruby-identifier">sel</span> = <span class="ruby-node">`echo #{Shellwords.escape(options.join(&quot;\n&quot;))} | &#39;#{fzf}&#39; #{args.join(&#39; &#39;)}`</span>.<span class="ruby-identifier">chomp</span>
994
+
954
995
  <span class="ruby-identifier">res</span> = <span class="ruby-identifier">sel</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\n/</span>).<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
955
996
  <span class="ruby-identifier">ps</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\t/</span>)
956
997
  { <span class="ruby-value">name:</span> <span class="ruby-identifier">ps</span>[<span class="ruby-value">0</span>], <span class="ruby-value">path:</span> <span class="ruby-identifier">ps</span>[<span class="ruby-value">1</span>], <span class="ruby-value">url:</span> <span class="ruby-identifier">ps</span>[<span class="ruby-value">2</span>] }
@@ -64,6 +64,7 @@
64
64
  <li><a href="#label--help">–help</a>
65
65
  <li><a href="#label--version">–version</a>
66
66
  <li><a href="#label-Commands">Commands</a>
67
+ <li><a href="#label-Command-3A+browse++PATH_OR_GLOB">Command: <code>browse PATH_OR_GLOB</code></a>
67
68
  <li><a href="#label-Command-3A+clip-7Ccp++FILE_OR_URL">Command: <code>clip|cp FILE_OR_URL</code></a>
68
69
  <li><a href="#label-Options">Options</a>
69
70
  <li><a href="#label-a-7C--app+APP_NAME">-a|–app APP_NAME</a>
@@ -132,7 +133,7 @@
132
133
 
133
134
  <p>This gem includes a `hook` binary that allows interaction with the features of Hook.app.</p>
134
135
 
135
- <p>v2.0.10</p>
136
+ <p>v2.0.11</p>
136
137
 
137
138
  <h3 id="label-Global+Options">Global Options<span><a href="#label-Global+Options">&para;</a> <a href="#top">&uarr;</a></span></h3>
138
139
 
@@ -146,6 +147,12 @@
146
147
 
147
148
  <h3 id="label-Commands">Commands<span><a href="#label-Commands">&para;</a> <a href="#top">&uarr;</a></span></h3>
148
149
 
150
+ <h4 id="label-Command-3A+browse++PATH_OR_GLOB">Command: <code>browse PATH_OR_GLOB</code><span><a href="#label-Command-3A+browse++PATH_OR_GLOB">&para;</a> <a href="#top">&uarr;</a></span></h4>
151
+
152
+ <p>Browse hooks</p>
153
+
154
+ <p>Select a file to see its hooks, navigate through descendents</p>
155
+
149
156
  <h4 id="label-Command-3A+clip-7Ccp++FILE_OR_URL">Command: <code>clip|cp FILE_OR_URL</code><span><a href="#label-Command-3A+clip-7Ccp++FILE_OR_URL">&para;</a> <a href="#top">&uarr;</a></span></h4>
150
157
 
151
158
  <p>Copy <a href="Hook.html"><code>Hook</code></a> URL for file/url to clipboard</p>
data/html/created.rid CHANGED
@@ -1,10 +1,10 @@
1
- Sat, 28 May 2022 08:27:12 -0500
1
+ Tue, 19 Jul 2022 14:14:13 -0500
2
2
  README.rdoc Tue, 07 Jul 2020 16:57:07 -0500
3
3
  lib/hook.rb Thu, 26 May 2022 08:20:27 -0500
4
- lib/hook/hookapp.rb Thu, 26 May 2022 08:19:39 -0500
4
+ lib/hook/hookapp.rb Tue, 19 Jul 2022 14:11:18 -0500
5
5
  lib/hook/hooker.rb Sun, 31 Oct 2021 07:54:46 -0500
6
6
  lib/hook/markdown_document_listener.rb Sun, 26 Sep 2021 07:45:59 -0500
7
7
  lib/hook/prompt.rb Thu, 26 May 2022 08:20:13 -0500
8
8
  lib/hook/string.rb Sun, 31 Oct 2021 07:03:15 -0500
9
- lib/hook/version.rb Sat, 28 May 2022 08:21:49 -0500
10
- bin/hook Sun, 31 Oct 2021 07:54:10 -0500
9
+ lib/hook/version.rb Tue, 19 Jul 2022 14:13:19 -0500
10
+ bin/hook Tue, 19 Jul 2022 14:11:16 -0500
data/html/index.html CHANGED
@@ -99,7 +99,7 @@
99
99
 
100
100
  <p>This gem includes a `hook` binary that allows interaction with the features of Hook.app.</p>
101
101
 
102
- <p>v2.0.10</p>
102
+ <p>v2.0.11</p>
103
103
 
104
104
  <h3 id="label-Global+Options">Global Options<span><a href="#label-Global+Options">&para;</a> <a href="#top">&uarr;</a></span></h3>
105
105
 
@@ -113,6 +113,12 @@
113
113
 
114
114
  <h3 id="label-Commands">Commands<span><a href="#label-Commands">&para;</a> <a href="#top">&uarr;</a></span></h3>
115
115
 
116
+ <h4 id="label-Command-3A+browse++PATH_OR_GLOB">Command: <code>browse PATH_OR_GLOB</code><span><a href="#label-Command-3A+browse++PATH_OR_GLOB">&para;</a> <a href="#top">&uarr;</a></span></h4>
117
+
118
+ <p>Browse hooks</p>
119
+
120
+ <p>Select a file to see its hooks, navigate through descendents</p>
121
+
116
122
  <h4 id="label-Command-3A+clip-7Ccp++FILE_OR_URL">Command: <code>clip|cp FILE_OR_URL</code><span><a href="#label-Command-3A+clip-7Ccp++FILE_OR_URL">&para;</a> <a href="#top">&uarr;</a></span></h4>
117
123
 
118
124
  <p>Copy <a href="Hook.html"><code>Hook</code></a> URL for file/url to clipboard</p>
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["app","gli","commands","doc","markdowndocumentlistener","hook","prompt","promptfzf","promptstd","hookapp","hooker","string","all_bookmarks()","beginning()","bookmark_for()","bookmark_from_app()","cap()","cap!()","clear_screen()","clip()","clip_bookmark()","clone_hooks()","command()","commands()","copy_bookmark()","decode()","default_command()","delete_all_hooks()","delete_hooks()","encode()","end_command()","end_commands()","end_options()","ending()","escape_quotes()","flag()","format_regex()","fzf()","get_hooks()","install_fzf()","link_all()","link_files()","linked_bookmarks()","new()","new()","nil_if_missing()","open_gui()","open_linked()","options()","output_array()","program_desc()","program_long_desc()","restore_std()","search_bookmarks()","search_name()","search_path_or_address()","select_hook()","silence_std()","split_hook()","split_hooks()","switch()","uninstall_fzf()","valid_hook()","valid_hook!()","validate_format()","version()","which_fzf()","readme"],"longSearchIndex":["app","gli","gli::commands","gli::commands::doc","gli::commands::markdowndocumentlistener","hook","hook::prompt","hook::promptfzf","hook::promptstd","hookapp","hooker","string","hookapp#all_bookmarks()","gli::commands::markdowndocumentlistener#beginning()","hookapp#bookmark_for()","hookapp#bookmark_from_app()","string#cap()","string#cap!()","hook::promptstd#clear_screen()","string#clip()","hookapp#clip_bookmark()","hookapp#clone_hooks()","gli::commands::markdowndocumentlistener#command()","gli::commands::markdowndocumentlistener#commands()","hookapp#copy_bookmark()","hookapp#decode()","gli::commands::markdowndocumentlistener#default_command()","hookapp#delete_all_hooks()","hookapp#delete_hooks()","hookapp#encode()","gli::commands::markdowndocumentlistener#end_command()","gli::commands::markdowndocumentlistener#end_commands()","gli::commands::markdowndocumentlistener#end_options()","gli::commands::markdowndocumentlistener#ending()","string#escape_quotes()","gli::commands::markdowndocumentlistener#flag()","hookapp#format_regex()","hook::promptfzf#fzf()","hookapp#get_hooks()","hook::promptfzf#install_fzf()","hookapp#link_all()","hookapp#link_files()","hookapp#linked_bookmarks()","gli::commands::markdowndocumentlistener::new()","hooker::new()","string#nil_if_missing()","hookapp#open_gui()","hookapp#open_linked()","gli::commands::markdowndocumentlistener#options()","hookapp#output_array()","gli::commands::markdowndocumentlistener#program_desc()","gli::commands::markdowndocumentlistener#program_long_desc()","hook::promptstd#restore_std()","hookapp#search_bookmarks()","hookapp#search_name()","hookapp#search_path_or_address()","hookapp#select_hook()","hook::promptstd#silence_std()","string#split_hook()","string#split_hooks()","gli::commands::markdowndocumentlistener#switch()","hook::promptfzf#uninstall_fzf()","string#valid_hook()","string#valid_hook!()","hookapp#validate_format()","gli::commands::markdowndocumentlistener#version()","hook::promptfzf#which_fzf()",""],"info":[["App","","App.html","","<p>Main class for GLI app\n"],["GLI","","GLI.html","",""],["GLI::Commands","","GLI/Commands.html","",""],["GLI::Commands::Doc","","GLI/Commands/Doc.html","",""],["GLI::Commands::MarkdownDocumentListener","","GLI/Commands/MarkdownDocumentListener.html","","<p>DocumentListener class for GLI documentation generator\n"],["Hook","","Hook.html","",""],["Hook::Prompt","","Hook/Prompt.html","",""],["Hook::PromptFZF","","Hook/PromptFZF.html","","<p>Methods for working installing/using FuzzyFileFinder\n"],["Hook::PromptSTD","","Hook/PromptSTD.html","",""],["HookApp","","HookApp.html","","<p>Hook.app functions\n"],["Hooker","","Hooker.html","","<p>Hook.app CLI interface\n"],["String","","String.html","","<p>String helpers\n"],["all_bookmarks","HookApp","HookApp.html#method-i-all_bookmarks","()","<p>Get all known bookmarks. Return array of bookmark hashes.\n"],["beginning","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-beginning","()",""],["bookmark_for","HookApp","HookApp.html#method-i-bookmark_for","(url)","<p>Get a Hook bookmark for file or URL. Return bookmark hash.\n"],["bookmark_from_app","HookApp","HookApp.html#method-i-bookmark_from_app","(app, opts)","<p>Get a bookmark from the foreground document of specified app.\n"],["cap","String","String.html#method-i-cap","()","<p>Capitalize only if no uppercase\n"],["cap!","String","String.html#method-i-cap-21","()",""],["clear_screen","Hook::PromptSTD","Hook/PromptSTD.html#method-i-clear_screen","(msg = nil)","<p>Clear the terminal screen\n"],["clip","String","String.html#method-i-clip","()",""],["clip_bookmark","HookApp","HookApp.html#method-i-clip_bookmark","(url, opts)","<p>Create a bookmark for specified file/url and copy to the clipboard.\n"],["clone_hooks","HookApp","HookApp.html#method-i-clone_hooks","(args)","<p>Copy all hooks from source file to target file\n"],["command","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-command","(name, aliases, desc, long_desc, arg_name, arg_options)","<p>Gives you a command in the current context and creates a new context of this command\n"],["commands","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-commands","()",""],["copy_bookmark","HookApp","HookApp.html#method-i-copy_bookmark","(title, url, opts)","<p>Create a bookmark from specified title and url and copy to the clipboard.\n"],["decode","HookApp","HookApp.html#method-i-decode","(string)",""],["default_command","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-default_command","(name)","<p>Gives you the name of the current command in the current context\n"],["delete_all_hooks","HookApp","HookApp.html#method-i-delete_all_hooks","(url, force: false)","<p>Delete all hooked files/urls from target file\n"],["delete_hooks","HookApp","HookApp.html#method-i-delete_hooks","(args, opts)","<p>Delete hooks between two files/urls\n"],["encode","HookApp","HookApp.html#method-i-encode","(string)",""],["end_command","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-end_command","(_name)","<p>Ends a command, and “pops” you back up one context\n"],["end_commands","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-end_commands","()",""],["end_options","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-end_options","()",""],["ending","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-ending","()","<p>Called when processing has completed\n"],["escape_quotes","String","String.html#method-i-escape_quotes","()",""],["flag","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-flag","(name, aliases, desc, long_desc, default_value, arg_name, must_match, _type)","<p>Gives you a flag in the current context\n"],["format_regex","HookApp","HookApp.html#method-i-format_regex","(options)","<p>Create a single regex for validation of an array by first char or full match.\n"],["fzf","Hook::PromptFZF","Hook/PromptFZF.html#method-i-fzf","()","<p>Get path to fzf binary, installing if needed\n<p>@return [String] Path to fzf binary\n"],["get_hooks","HookApp","HookApp.html#method-i-get_hooks","(url)","<p>Get bookmarks hooked to file or URL. Return array of bookmark hashes.\n"],["install_fzf","Hook::PromptFZF","Hook/PromptFZF.html#method-i-install_fzf","(force: false)","<p>Install fzf on the current system. Installs to a subdirectory of the gem\n<p>@param force [Boolean] …\n"],["link_all","HookApp","HookApp.html#method-i-link_all","(args)","<p>Create bi-directional links between every file/url in the list of arguments\n"],["link_files","HookApp","HookApp.html#method-i-link_files","(args)","<p>Link 2 or more files/urls with bi-directional hooks.\n"],["linked_bookmarks","HookApp","HookApp.html#method-i-linked_bookmarks","(args, opts)","<p>Get a list of all hooks on a file/url.\n"],["new","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-c-new","(_global_options, _options, _arguments, app)",""],["new","Hooker","Hooker.html#method-c-new","()",""],["nil_if_missing","String","String.html#method-i-nil_if_missing","()",""],["open_gui","HookApp","HookApp.html#method-i-open_gui","(url)","<p>Open the Hook GUI for browsing/performing actions on a file or url\n"],["open_linked","HookApp","HookApp.html#method-i-open_linked","(url)","<p>Select from a menu of available hooks and open using macOS `open`.\n"],["options","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-options","()",""],["output_array","HookApp","HookApp.html#method-i-output_array","(hooks_arr, opts)","<p>Output an array of hooks in the given format.\n"],["program_desc","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-program_desc","(desc)","<p>Gives you the program description\n"],["program_long_desc","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-program_long_desc","(desc)",""],["restore_std","Hook::PromptSTD","Hook/PromptSTD.html#method-i-restore_std","()","<p>Restore silenced STDOUT and STDERR\n"],["search_bookmarks","HookApp","HookApp.html#method-i-search_bookmarks","(search, opts)","<p>Search bookmarks, using both names and addresses unless options contain “:names_only”. Return …\n"],["search_name","HookApp","HookApp.html#method-i-search_name","(search)","<p>Search boomark names/titles. Return array of bookmark hashes.\n"],["search_path_or_address","HookApp","HookApp.html#method-i-search_path_or_address","(search)","<p>Search bookmark paths and addresses. Return array of bookmark hashes.\n"],["select_hook","HookApp","HookApp.html#method-i-select_hook","(marks)","<p>Generate a menu of available hooks for selecting one or more hooks to operate on. Revamped to use `fzf`, …\n"],["silence_std","Hook::PromptSTD","Hook/PromptSTD.html#method-i-silence_std","(file = '/dev/null')","<p>Redirect STDOUT and STDERR to /dev/null or file\n<p>@param file [String] a file path to redirect to …\n"],["split_hook","String","String.html#method-i-split_hook","()",""],["split_hooks","String","String.html#method-i-split_hooks","()",""],["switch","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-switch","(name, aliases, desc, long_desc, negatable)","<p>Gives you a switch in the current context\n"],["uninstall_fzf","Hook::PromptFZF","Hook/PromptFZF.html#method-i-uninstall_fzf","()","<p>Remove fzf binary\n"],["valid_hook","String","String.html#method-i-valid_hook","()",""],["valid_hook!","String","String.html#method-i-valid_hook-21","()",""],["validate_format","HookApp","HookApp.html#method-i-validate_format","(fmt, options)","<p>Check if format fully matches or matches the first character of available options. Return full valid …\n"],["version","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-version","(version)","<p>Gives you the program version\n"],["which_fzf","Hook::PromptFZF","Hook/PromptFZF.html#method-i-which_fzf","()","<p>Return the path to the fzf binary\n<p>@return [String] Path to fzf\n"],["README","","README_rdoc.html","","<p>hookapp\n<p>A CLI for Hook.app on macOS.\n<p>hook - CLI interface for Hook.app (macOS)\n"]]}}
1
+ var search_data = {"index":{"searchIndex":["app","gli","commands","doc","markdowndocumentlistener","hook","prompt","promptfzf","promptstd","hookapp","hooker","string","all_bookmarks()","beginning()","bookmark_for()","bookmark_from_app()","browse_bookmarks()","cap()","cap!()","clear_screen()","clip()","clip_bookmark()","clone_hooks()","command()","commands()","copy_bookmark()","decode()","default_command()","delete_all_hooks()","delete_hooks()","encode()","end_command()","end_commands()","end_options()","ending()","escape_quotes()","flag()","format_regex()","fzf()","get_hooks()","install_fzf()","link_all()","link_files()","linked_bookmarks()","new()","new()","nil_if_missing()","open_gui()","open_linked()","options()","output_array()","program_desc()","program_long_desc()","restore_std()","search_bookmarks()","search_name()","search_path_or_address()","select_hook()","silence_std()","split_hook()","split_hooks()","switch()","uninstall_fzf()","valid_hook()","valid_hook!()","validate_format()","version()","which_fzf()","readme"],"longSearchIndex":["app","gli","gli::commands","gli::commands::doc","gli::commands::markdowndocumentlistener","hook","hook::prompt","hook::promptfzf","hook::promptstd","hookapp","hooker","string","hookapp#all_bookmarks()","gli::commands::markdowndocumentlistener#beginning()","hookapp#bookmark_for()","hookapp#bookmark_from_app()","hookapp#browse_bookmarks()","string#cap()","string#cap!()","hook::promptstd#clear_screen()","string#clip()","hookapp#clip_bookmark()","hookapp#clone_hooks()","gli::commands::markdowndocumentlistener#command()","gli::commands::markdowndocumentlistener#commands()","hookapp#copy_bookmark()","hookapp#decode()","gli::commands::markdowndocumentlistener#default_command()","hookapp#delete_all_hooks()","hookapp#delete_hooks()","hookapp#encode()","gli::commands::markdowndocumentlistener#end_command()","gli::commands::markdowndocumentlistener#end_commands()","gli::commands::markdowndocumentlistener#end_options()","gli::commands::markdowndocumentlistener#ending()","string#escape_quotes()","gli::commands::markdowndocumentlistener#flag()","hookapp#format_regex()","hook::promptfzf#fzf()","hookapp#get_hooks()","hook::promptfzf#install_fzf()","hookapp#link_all()","hookapp#link_files()","hookapp#linked_bookmarks()","gli::commands::markdowndocumentlistener::new()","hooker::new()","string#nil_if_missing()","hookapp#open_gui()","hookapp#open_linked()","gli::commands::markdowndocumentlistener#options()","hookapp#output_array()","gli::commands::markdowndocumentlistener#program_desc()","gli::commands::markdowndocumentlistener#program_long_desc()","hook::promptstd#restore_std()","hookapp#search_bookmarks()","hookapp#search_name()","hookapp#search_path_or_address()","hookapp#select_hook()","hook::promptstd#silence_std()","string#split_hook()","string#split_hooks()","gli::commands::markdowndocumentlistener#switch()","hook::promptfzf#uninstall_fzf()","string#valid_hook()","string#valid_hook!()","hookapp#validate_format()","gli::commands::markdowndocumentlistener#version()","hook::promptfzf#which_fzf()",""],"info":[["App","","App.html","","<p>Main class for GLI app\n"],["GLI","","GLI.html","",""],["GLI::Commands","","GLI/Commands.html","",""],["GLI::Commands::Doc","","GLI/Commands/Doc.html","",""],["GLI::Commands::MarkdownDocumentListener","","GLI/Commands/MarkdownDocumentListener.html","","<p>DocumentListener class for GLI documentation generator\n"],["Hook","","Hook.html","",""],["Hook::Prompt","","Hook/Prompt.html","",""],["Hook::PromptFZF","","Hook/PromptFZF.html","","<p>Methods for working installing/using FuzzyFileFinder\n"],["Hook::PromptSTD","","Hook/PromptSTD.html","",""],["HookApp","","HookApp.html","","<p>Hook.app functions\n"],["Hooker","","Hooker.html","","<p>Hook.app CLI interface\n"],["String","","String.html","","<p>String helpers\n"],["all_bookmarks","HookApp","HookApp.html#method-i-all_bookmarks","()","<p>Get all known bookmarks. Return array of bookmark hashes.\n"],["beginning","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-beginning","()",""],["bookmark_for","HookApp","HookApp.html#method-i-bookmark_for","(url)","<p>Get a Hook bookmark for file or URL. Return bookmark hash.\n"],["bookmark_from_app","HookApp","HookApp.html#method-i-bookmark_from_app","(app, opts)","<p>Get a bookmark from the foreground document of specified app.\n"],["browse_bookmarks","HookApp","HookApp.html#method-i-browse_bookmarks","(glob)",""],["cap","String","String.html#method-i-cap","()","<p>Capitalize only if no uppercase\n"],["cap!","String","String.html#method-i-cap-21","()",""],["clear_screen","Hook::PromptSTD","Hook/PromptSTD.html#method-i-clear_screen","(msg = nil)","<p>Clear the terminal screen\n"],["clip","String","String.html#method-i-clip","()",""],["clip_bookmark","HookApp","HookApp.html#method-i-clip_bookmark","(url, opts)","<p>Create a bookmark for specified file/url and copy to the clipboard.\n"],["clone_hooks","HookApp","HookApp.html#method-i-clone_hooks","(args)","<p>Copy all hooks from source file to target file\n"],["command","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-command","(name, aliases, desc, long_desc, arg_name, arg_options)","<p>Gives you a command in the current context and creates a new context of this command\n"],["commands","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-commands","()",""],["copy_bookmark","HookApp","HookApp.html#method-i-copy_bookmark","(title, url, opts)","<p>Create a bookmark from specified title and url and copy to the clipboard.\n"],["decode","HookApp","HookApp.html#method-i-decode","(string)",""],["default_command","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-default_command","(name)","<p>Gives you the name of the current command in the current context\n"],["delete_all_hooks","HookApp","HookApp.html#method-i-delete_all_hooks","(url, force: false)","<p>Delete all hooked files/urls from target file\n"],["delete_hooks","HookApp","HookApp.html#method-i-delete_hooks","(args, opts)","<p>Delete hooks between two files/urls\n"],["encode","HookApp","HookApp.html#method-i-encode","(string)",""],["end_command","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-end_command","(_name)","<p>Ends a command, and “pops” you back up one context\n"],["end_commands","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-end_commands","()",""],["end_options","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-end_options","()",""],["ending","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-ending","()","<p>Called when processing has completed\n"],["escape_quotes","String","String.html#method-i-escape_quotes","()",""],["flag","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-flag","(name, aliases, desc, long_desc, default_value, arg_name, must_match, _type)","<p>Gives you a flag in the current context\n"],["format_regex","HookApp","HookApp.html#method-i-format_regex","(options)","<p>Create a single regex for validation of an array by first char or full match.\n"],["fzf","Hook::PromptFZF","Hook/PromptFZF.html#method-i-fzf","()","<p>Get path to fzf binary, installing if needed\n<p>@return [String] Path to fzf binary\n"],["get_hooks","HookApp","HookApp.html#method-i-get_hooks","(url)","<p>Get bookmarks hooked to file or URL. Return array of bookmark hashes.\n"],["install_fzf","Hook::PromptFZF","Hook/PromptFZF.html#method-i-install_fzf","(force: false)","<p>Install fzf on the current system. Installs to a subdirectory of the gem\n<p>@param force [Boolean] …\n"],["link_all","HookApp","HookApp.html#method-i-link_all","(args)","<p>Create bi-directional links between every file/url in the list of arguments\n"],["link_files","HookApp","HookApp.html#method-i-link_files","(args)","<p>Link 2 or more files/urls with bi-directional hooks.\n"],["linked_bookmarks","HookApp","HookApp.html#method-i-linked_bookmarks","(args, opts)","<p>Get a list of all hooks on a file/url.\n"],["new","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-c-new","(_global_options, _options, _arguments, app)",""],["new","Hooker","Hooker.html#method-c-new","()",""],["nil_if_missing","String","String.html#method-i-nil_if_missing","()",""],["open_gui","HookApp","HookApp.html#method-i-open_gui","(url)","<p>Open the Hook GUI for browsing/performing actions on a file or url\n"],["open_linked","HookApp","HookApp.html#method-i-open_linked","(url)","<p>Select from a menu of available hooks and open using macOS `open`.\n"],["options","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-options","()",""],["output_array","HookApp","HookApp.html#method-i-output_array","(hooks_arr, opts)","<p>Output an array of hooks in the given format.\n"],["program_desc","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-program_desc","(desc)","<p>Gives you the program description\n"],["program_long_desc","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-program_long_desc","(desc)",""],["restore_std","Hook::PromptSTD","Hook/PromptSTD.html#method-i-restore_std","()","<p>Restore silenced STDOUT and STDERR\n"],["search_bookmarks","HookApp","HookApp.html#method-i-search_bookmarks","(search, opts)","<p>Search bookmarks, using both names and addresses unless options contain “:names_only”. Return …\n"],["search_name","HookApp","HookApp.html#method-i-search_name","(search)","<p>Search boomark names/titles. Return array of bookmark hashes.\n"],["search_path_or_address","HookApp","HookApp.html#method-i-search_path_or_address","(search)","<p>Search bookmark paths and addresses. Return array of bookmark hashes.\n"],["select_hook","HookApp","HookApp.html#method-i-select_hook","(marks)","<p>Generate a menu of available hooks for selecting one or more hooks to operate on. Revamped to use `fzf`, …\n"],["silence_std","Hook::PromptSTD","Hook/PromptSTD.html#method-i-silence_std","(file = '/dev/null')","<p>Redirect STDOUT and STDERR to /dev/null or file\n<p>@param file [String] a file path to redirect to …\n"],["split_hook","String","String.html#method-i-split_hook","()",""],["split_hooks","String","String.html#method-i-split_hooks","()",""],["switch","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-switch","(name, aliases, desc, long_desc, negatable)","<p>Gives you a switch in the current context\n"],["uninstall_fzf","Hook::PromptFZF","Hook/PromptFZF.html#method-i-uninstall_fzf","()","<p>Remove fzf binary\n"],["valid_hook","String","String.html#method-i-valid_hook","()",""],["valid_hook!","String","String.html#method-i-valid_hook-21","()",""],["validate_format","HookApp","HookApp.html#method-i-validate_format","(fmt, options)","<p>Check if format fully matches or matches the first character of available options. Return full valid …\n"],["version","GLI::Commands::MarkdownDocumentListener","GLI/Commands/MarkdownDocumentListener.html#method-i-version","(version)","<p>Gives you the program version\n"],["which_fzf","Hook::PromptFZF","Hook/PromptFZF.html#method-i-which_fzf","()","<p>Return the path to the fzf binary\n<p>@return [String] Path to fzf\n"],["README","","README_rdoc.html","","<p>hookapp\n<p>A CLI for Hook.app on macOS.\n<p>hook - CLI interface for Hook.app (macOS)\n"]]}}
Binary file
@@ -37,6 +37,7 @@
37
37
  <li><a href="README_rdoc.html#label--help">–help</a>
38
38
  <li><a href="README_rdoc.html#label--version">–version</a>
39
39
  <li><a href="README_rdoc.html#label-Commands">Commands</a>
40
+ <li><a href="README_rdoc.html#label-Command-3A+browse++PATH_OR_GLOB">Command: <code>browse PATH_OR_GLOB</code></a>
40
41
  <li><a href="README_rdoc.html#label-Command-3A+clip-7Ccp++FILE_OR_URL">Command: <code>clip|cp FILE_OR_URL</code></a>
41
42
  <li><a href="README_rdoc.html#label-Options">Options</a>
42
43
  <li><a href="README_rdoc.html#label-a-7C--app+APP_NAME">-a|–app APP_NAME</a>
@@ -153,6 +154,11 @@
153
154
  &mdash;
154
155
  <span class="container">HookApp</span>
155
156
 
157
+ <li class="method">
158
+ <a href="HookApp.html#method-i-browse_bookmarks">#browse_bookmarks</a>
159
+ &mdash;
160
+ <span class="container">HookApp</span>
161
+
156
162
  <li class="method">
157
163
  <a href="String.html#method-i-cap">#cap</a>
158
164
  &mdash;
data/lib/hook/hookapp.rb CHANGED
@@ -243,10 +243,10 @@ class HookApp
243
243
  '--delimiter="\t"',
244
244
  '--with-nth=1,4',
245
245
  '--height=60%',
246
- '--min-height=10'
247
- ]
246
+ '--min-height=10']
248
247
 
249
248
  sel = `echo #{Shellwords.escape(options.join("\n"))} | '#{fzf}' #{args.join(' ')}`.chomp
249
+
250
250
  res = sel.split(/\n/).map do |s|
251
251
  ps = s.split(/\t/)
252
252
  { name: ps[0], path: ps[1], url: ps[2] }
@@ -255,6 +255,29 @@ class HookApp
255
255
  res || []
256
256
  end
257
257
 
258
+ def browse_bookmarks(glob)
259
+ root = if glob.is_a?(Array)
260
+ glob.count.positive? ? glob : Dir.glob('**/*')
261
+ elsif glob && File.exist?(glob)
262
+ hooks = get_hooks(glob)
263
+ return select_hook(hooks) unless hooks.empty? || File.directory?(glob)
264
+
265
+ Dir.glob([File.expand_path(glob), '**/*'])
266
+ else
267
+ Dir.glob(glob.nil? || glob.empty? ? '**/*' : glob)
268
+ end
269
+
270
+ args = ['--layout=reverse-list',
271
+ '--header="esc: cancel, return: open"',
272
+ '--prompt=" Select file > "',
273
+ %(--preview='hook ls {1}'),
274
+ '--height=60%',
275
+ '--min-height=10']
276
+
277
+ sel = `echo #{Shellwords.escape(root.join("\n"))} | '#{fzf}' #{args.join(' ')}`.chomp
278
+ return open_linked(sel)
279
+ end
280
+
258
281
  # Open the Hook GUI for browsing/performing actions on a file or url
259
282
  def open_gui(url)
260
283
  result = `osascript <<'APPLESCRIPT'
data/lib/hook/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hook
4
- VERSION = '2.0.10'
4
+ VERSION = '2.0.11'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hookapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.10
4
+ version: 2.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-28 00:00:00.000000000 Z
11
+ date: 2022-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aruba