hookapp 2.0.5 → 2.0.9

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHORS.md +4 -0
  3. data/CHANGELOG.md +9 -0
  4. data/Gemfile.lock +35 -40
  5. data/LICENSE +21 -0
  6. data/README.md +52 -19
  7. data/Rakefile +7 -3
  8. data/bin/hook +102 -65
  9. data/buildnotes.md +30 -0
  10. data/hook.rdoc +35 -11
  11. data/hookapp.gemspec +1 -0
  12. data/html/App.html +1 -1
  13. data/html/GLI/Commands/Doc.html +1 -1
  14. data/html/GLI/Commands/MarkdownDocumentListener.html +27 -17
  15. data/html/GLI/Commands.html +1 -1
  16. data/html/GLI.html +1 -1
  17. data/html/Hook.html +1 -1
  18. data/html/HookApp.html +106 -44
  19. data/html/Hooker.html +2 -2
  20. data/html/README_rdoc.html +47 -18
  21. data/html/String.html +23 -1
  22. data/html/created.rid +9 -8
  23. data/html/index.html +39 -12
  24. data/html/js/navigation.js.gz +0 -0
  25. data/html/js/search_index.js +1 -1
  26. data/html/js/search_index.js.gz +0 -0
  27. data/html/js/searcher.js.gz +0 -0
  28. data/html/table_of_contents.html +71 -7
  29. data/lib/hook/hookapp.rb +40 -22
  30. data/lib/hook/hooker.rb +1 -0
  31. data/lib/hook/markdown_document_listener.rb +12 -2
  32. data/lib/hook/prompt.rb +113 -0
  33. data/lib/hook/string.rb +4 -0
  34. data/lib/hook/version.rb +1 -1
  35. data/lib/hook.rb +2 -0
  36. data/test/helpers/hook-helpers.rb +76 -0
  37. data/test/hook_clip_test.rb +24 -0
  38. data/test/hook_clone_test.rb +30 -0
  39. data/test/hook_encode_test.rb +30 -0
  40. data/test/hook_link_test.rb +40 -0
  41. data/test/hook_list_test.rb +25 -0
  42. data/test/hook_remove_test.rb +34 -0
  43. data/test/hook_scripts_test.rb +21 -0
  44. metadata +33 -16
  45. data/lib/helpers/fuzzyfilefinder +0 -0
  46. data/test/default_test.rb +0 -14
  47. data/test/hookfiles/01.test +0 -0
  48. data/test/hookfiles/02.test +0 -0
  49. data/test/hookfiles/03.test +0 -0
  50. data/test/hookfiles/04.test +0 -0
  51. data/test/hookfiles/05.test +0 -0
  52. data/test/hookfiles/06.test +0 -0
  53. data/test/hookfiles/07.test +0 -0
  54. data/test/hookfiles/08.test +0 -0
  55. data/test/hookfiles/09.test +0 -0
  56. data/test/hookfiles/10.test +0 -0
  57. data/test/hookfiles/11.test +0 -0
  58. data/test/hookfiles/12.test +0 -0
data/html/HookApp.html CHANGED
@@ -65,6 +65,14 @@
65
65
  </div>
66
66
 
67
67
 
68
+ <div id="includes-section" class="nav-section">
69
+ <h3>Included Modules</h3>
70
+
71
+ <ul class="link-list">
72
+ <li><a class="include" href="Hook/Prompt.html">Hook::Prompt</a>
73
+ </ul>
74
+ </div>
75
+
68
76
 
69
77
 
70
78
  <!-- Method Quickref -->
@@ -78,8 +86,10 @@
78
86
  <li ><a href="#method-i-clip_bookmark">#clip_bookmark</a>
79
87
  <li ><a href="#method-i-clone_hooks">#clone_hooks</a>
80
88
  <li ><a href="#method-i-copy_bookmark">#copy_bookmark</a>
89
+ <li ><a href="#method-i-decode">#decode</a>
81
90
  <li ><a href="#method-i-delete_all_hooks">#delete_all_hooks</a>
82
91
  <li ><a href="#method-i-delete_hooks">#delete_hooks</a>
92
+ <li ><a href="#method-i-encode">#encode</a>
83
93
  <li ><a href="#method-i-format_regex">#format_regex</a>
84
94
  <li ><a href="#method-i-get_hooks">#get_hooks</a>
85
95
  <li ><a href="#method-i-link_all">#link_all</a>
@@ -132,7 +142,7 @@
132
142
  <p>Get all known bookmarks. Return array of bookmark hashes.</p>
133
143
 
134
144
  <div class="method-source-code" id="all_bookmarks-source">
135
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 140</span>
145
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 142</span>
136
146
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">all_bookmarks</span>
137
147
  <span class="ruby-string">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
138
148
  tell application &quot;Hook&quot;
@@ -165,7 +175,7 @@
165
175
  <p>Get a <a href="Hook.html"><code>Hook</code></a> bookmark for file or URL. Return bookmark hash.</p>
166
176
 
167
177
  <div class="method-source-code" id="bookmark_for-source">
168
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 32</span>
178
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 34</span>
169
179
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">bookmark_for</span>(<span class="ruby-identifier">url</span>)
170
180
  <span class="ruby-identifier">url</span>.<span class="ruby-identifier">valid_hook!</span>
171
181
  <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Invalid target: #{url}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">url</span>
@@ -205,7 +215,7 @@
205
215
  <p>Get a bookmark from the foreground document of specified app.</p>
206
216
 
207
217
  <div class="method-source-code" id="bookmark_from_app-source">
208
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 81</span>
218
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 83</span>
209
219
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">bookmark_from_app</span>(<span class="ruby-identifier">app</span>, <span class="ruby-identifier">opts</span>)
210
220
  <span class="ruby-identifier">mark</span> = <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
211
221
  tell application &quot;System Events&quot; to set front_app to name of first application process whose frontmost is true
@@ -244,7 +254,7 @@
244
254
  <p>Create a bookmark for specified file/url and copy to the clipboard.</p>
245
255
 
246
256
  <div class="method-source-code" id="clip_bookmark-source">
247
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 181</span>
257
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 183</span>
248
258
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">clip_bookmark</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">opts</span>)
249
259
  <span class="ruby-identifier">mark</span> = <span class="ruby-identifier">bookmark_for</span>(<span class="ruby-identifier">url</span>)
250
260
  <span class="ruby-identifier">copy_bookmark</span>(<span class="ruby-identifier">mark</span>[<span class="ruby-value">:name</span>], <span class="ruby-identifier">mark</span>[<span class="ruby-value">:url</span>], <span class="ruby-identifier">opts</span>)
@@ -266,7 +276,7 @@
266
276
  <p>Copy all hooks from source file to target file</p>
267
277
 
268
278
  <div class="method-source-code" id="clone_hooks-source">
269
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 314</span>
279
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 313</span>
270
280
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">clone_hooks</span>(<span class="ruby-identifier">args</span>)
271
281
  <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>
272
282
  <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>
@@ -305,7 +315,7 @@
305
315
  <p>Create a bookmark from specified title and url and copy to the clipboard.</p>
306
316
 
307
317
  <div class="method-source-code" id="copy_bookmark-source">
308
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 187</span>
318
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 189</span>
309
319
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">copy_bookmark</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">opts</span>)
310
320
  <span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;No URL found&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">url</span>.<span class="ruby-identifier">empty?</span>
311
321
  <span class="ruby-identifier">title</span> = <span class="ruby-identifier">title</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-string">&#39;No title&#39;</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">title</span>
@@ -317,12 +327,38 @@
317
327
  </div>
318
328
 
319
329
 
330
+ </div>
331
+
332
+ <div id="method-i-decode" class="method-detail ">
333
+ <div class="method-heading">
334
+ <span class="method-name">decode</span><span
335
+ class="method-args">(string)</span>
336
+ <span class="method-click-advice">click to toggle source</span>
337
+ </div>
338
+
339
+ <div class="method-description">
340
+
341
+
342
+ <div class="method-source-code" id="decode-source">
343
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 499</span>
344
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">decode</span>(<span class="ruby-identifier">string</span>)
345
+ <span class="ruby-identifier">result</span> = <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
346
+ tell application &quot;Hook&quot;
347
+ percent decode &quot;#{string.escape_quotes}&quot;
348
+ end tell
349
+ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>
350
+ <span class="ruby-identifier">print</span> <span class="ruby-identifier">result</span>
351
+ <span class="ruby-keyword">end</span></pre>
352
+ </div>
353
+ </div>
354
+
355
+
320
356
  </div>
321
357
 
322
358
  <div id="method-i-delete_all_hooks" class="method-detail ">
323
359
  <div class="method-heading">
324
360
  <span class="method-name">delete_all_hooks</span><span
325
- class="method-args">(url)</span>
361
+ class="method-args">(url, force: false)</span>
326
362
  <span class="method-click-advice">click to toggle source</span>
327
363
  </div>
328
364
 
@@ -330,11 +366,14 @@
330
366
  <p>Delete all hooked files/urls from target file</p>
331
367
 
332
368
  <div class="method-source-code" id="delete_all_hooks-source">
333
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 337</span>
334
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">delete_all_hooks</span>(<span class="ruby-identifier">url</span>)
335
- <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>
336
- <span class="ruby-identifier">res</span> = <span class="ruby-constant">STDIN</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">strip</span>
337
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^y/i</span>
369
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 336</span>
370
+ <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
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">force</span>
372
+ <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>
373
+ <span class="ruby-identifier">res</span> = <span class="ruby-constant">STDIN</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">strip</span>
374
+ <span class="ruby-keyword">end</span>
375
+
376
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^y/i</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">force</span>
338
377
  <span class="ruby-identifier">get_hooks</span>(<span class="ruby-identifier">url</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hook</span><span class="ruby-operator">|</span>
339
378
  <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
340
379
  tell application &quot;Hook&quot;
@@ -365,7 +404,7 @@
365
404
  <p>Delete hooks between two files/urls</p>
366
405
 
367
406
  <div class="method-source-code" id="delete_hooks-source">
368
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 356</span>
407
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 358</span>
369
408
  <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>)
370
409
  <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> }
371
410
  <span class="ruby-identifier">output</span> = []
@@ -373,7 +412,7 @@
373
412
  <span class="ruby-identifier">urls</span>.<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
374
413
  <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Invalid target: #{args[i]}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">url</span>
375
414
 
376
- <span class="ruby-identifier">output</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">delete_all_hooks</span>(<span class="ruby-identifier">url</span>))
415
+ <span class="ruby-identifier">output</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">delete_all_hooks</span>(<span class="ruby-identifier">url</span>, <span class="ruby-value">force:</span> <span class="ruby-identifier">opts</span>[<span class="ruby-value">:force</span>]))
377
416
  <span class="ruby-keyword">end</span>
378
417
  <span class="ruby-keyword">return</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;\n&quot;</span>)
379
418
  <span class="ruby-keyword">end</span>
@@ -398,6 +437,32 @@
398
437
  </div>
399
438
 
400
439
 
440
+ </div>
441
+
442
+ <div id="method-i-encode" class="method-detail ">
443
+ <div class="method-heading">
444
+ <span class="method-name">encode</span><span
445
+ class="method-args">(string)</span>
446
+ <span class="method-click-advice">click to toggle source</span>
447
+ </div>
448
+
449
+ <div class="method-description">
450
+
451
+
452
+ <div class="method-source-code" id="encode-source">
453
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 490</span>
454
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">encode</span>(<span class="ruby-identifier">string</span>)
455
+ <span class="ruby-identifier">result</span> = <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
456
+ tell application &quot;Hook&quot;
457
+ percent encode &quot;#{string.escape_quotes}&quot;
458
+ end tell
459
+ APPLESCRIPT`</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/&#39;/</span>,<span class="ruby-string">&#39;%27&#39;</span>)
460
+ <span class="ruby-identifier">print</span> <span class="ruby-identifier">result</span>
461
+ <span class="ruby-keyword">end</span></pre>
462
+ </div>
463
+ </div>
464
+
465
+
401
466
  </div>
402
467
 
403
468
  <div id="method-i-format_regex" class="method-detail ">
@@ -411,7 +476,7 @@
411
476
  <p>Create a single regex for validation of an array by first char or full match.</p>
412
477
 
413
478
  <div class="method-source-code" id="format_regex-source">
414
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 9</span>
479
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 11</span>
415
480
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">format_regex</span>(<span class="ruby-identifier">options</span>)
416
481
  <span class="ruby-identifier">fmt_rx_array</span> = []
417
482
  <span class="ruby-identifier">options</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">fmt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">fmt_rx_array</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">fmt</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^(.)(.*?)$/</span>, <span class="ruby-string">&#39;\1(\2)?&#39;</span>)) }
@@ -434,7 +499,7 @@
434
499
  <p>Get bookmarks hooked to file or URL. Return array of bookmark hashes.</p>
435
500
 
436
501
  <div class="method-source-code" id="get_hooks-source">
437
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 56</span>
502
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 58</span>
438
503
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">get_hooks</span>(<span class="ruby-identifier">url</span>)
439
504
  <span class="ruby-identifier">url</span>.<span class="ruby-identifier">valid_hook!</span>
440
505
  <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Invalid target: #{url}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">url</span>
@@ -475,7 +540,7 @@
475
540
  <p>Create bi-directional links between every file/url in the list of arguments</p>
476
541
 
477
542
  <div class="method-source-code" id="link_all-source">
478
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 386</span>
543
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 388</span>
479
544
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">link_all</span>(<span class="ruby-identifier">args</span>)
480
545
  <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>
481
546
  <span class="ruby-identifier">source</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">valid_hook</span>
@@ -510,7 +575,7 @@
510
575
  <p>Link 2 or more files/urls with bi-directional hooks.</p>
511
576
 
512
577
  <div class="method-source-code" id="link_files-source">
513
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 291</span>
578
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 290</span>
514
579
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">link_files</span>(<span class="ruby-identifier">args</span>)
515
580
  <span class="ruby-identifier">target</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>
516
581
  <span class="ruby-identifier">target</span>.<span class="ruby-identifier">valid_hook!</span>
@@ -549,7 +614,7 @@
549
614
  <p>Get a list of all hooks on a file/url.</p>
550
615
 
551
616
  <div class="method-source-code" id="linked_bookmarks-source">
552
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 405</span>
617
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 407</span>
553
618
  <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>)
554
619
  <span class="ruby-identifier">result</span> = []
555
620
 
@@ -579,7 +644,7 @@
579
644
  <span class="ruby-identifier">hooks_arr</span> = <span class="ruby-identifier">get_hooks</span>(<span class="ruby-identifier">url</span>)
580
645
 
581
646
  <span class="ruby-identifier">output</span> = <span class="ruby-identifier">output_array</span>(<span class="ruby-identifier">hooks_arr</span>, <span class="ruby-identifier">opts</span>)
582
- <span class="ruby-identifier">result</span>.<span class="ruby-identifier">push</span>({ <span class="ruby-value">file:</span> <span class="ruby-identifier">filename</span>, <span class="ruby-value">links:</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">separator</span>) })
647
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">push</span>({ <span class="ruby-value">file:</span> <span class="ruby-identifier">filename</span>, <span class="ruby-value">links:</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">separator</span>) }) <span class="ruby-keyword">if</span> <span class="ruby-identifier">output</span>
583
648
  <span class="ruby-keyword">end</span>
584
649
 
585
650
 
@@ -612,7 +677,7 @@
612
677
  <p>Open the <a href="Hook.html"><code>Hook</code></a> GUI for browsing/performing actions on a file or url</p>
613
678
 
614
679
  <div class="method-source-code" id="open_gui-source">
615
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 262</span>
680
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 259</span>
616
681
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">open_gui</span>(<span class="ruby-identifier">url</span>)
617
682
  <span class="ruby-identifier">result</span> = <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
618
683
  tell application &quot;Hook&quot;
@@ -644,16 +709,18 @@
644
709
  <p>Select from a menu of available hooks and open using macOS `open`.</p>
645
710
 
646
711
  <div class="method-source-code" id="open_linked-source">
647
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 278</span>
712
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 275</span>
648
713
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">open_linked</span>(<span class="ruby-identifier">url</span>)
649
714
  <span class="ruby-identifier">marks</span> = <span class="ruby-identifier">get_hooks</span>(<span class="ruby-identifier">url</span>)
650
715
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">marks</span>.<span class="ruby-identifier">empty?</span>
651
716
  <span class="ruby-identifier">warn</span> <span class="ruby-node">&quot;No hooks found for #{url}&quot;</span>
652
717
  <span class="ruby-keyword">else</span>
653
718
  <span class="ruby-identifier">res</span> = <span class="ruby-identifier">select_hook</span>(<span class="ruby-identifier">marks</span>)
654
- <span class="ruby-identifier">res</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">mark</span><span class="ruby-operator">|</span>
655
- <span class="ruby-node">`open &#39;#{mark[:url]}&#39;`</span>
656
- }
719
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">empty?</span>
720
+ <span class="ruby-identifier">res</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">mark</span><span class="ruby-operator">|</span>
721
+ <span class="ruby-node">`open &#39;#{mark[:url]}&#39;`</span>
722
+ }
723
+ <span class="ruby-keyword">end</span>
657
724
  <span class="ruby-keyword">end</span>
658
725
  <span class="ruby-keyword">end</span></pre>
659
726
  </div>
@@ -673,7 +740,7 @@
673
740
  <p>Output an array of hooks in the given format.</p>
674
741
 
675
742
  <div class="method-source-code" id="output_array-source">
676
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 452</span>
743
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 454</span>
677
744
  <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>)
678
745
  <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">hooks_arr</span>.<span class="ruby-identifier">empty?</span>
679
746
  <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>]
@@ -704,7 +771,7 @@
704
771
  <span class="ruby-keyword">end</span>
705
772
  <span class="ruby-keyword">end</span>
706
773
  <span class="ruby-keyword">else</span>
707
- <span class="ruby-identifier">output</span> = [<span class="ruby-string">&#39;No bookmarks&#39;</span>]
774
+ <span class="ruby-identifier">warn</span> <span class="ruby-string">&#39;No bookmarks&#39;</span>
708
775
  <span class="ruby-keyword">end</span>
709
776
 
710
777
  <span class="ruby-identifier">output</span>
@@ -726,7 +793,7 @@
726
793
  <p>Search bookmarks, using both names and addresses unless options contain “:names_only”. Return results as formatted list.</p>
727
794
 
728
795
  <div class="method-source-code" id="search_bookmarks-source">
729
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 158</span>
796
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 160</span>
730
797
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">search_bookmarks</span>(<span class="ruby-identifier">search</span>, <span class="ruby-identifier">opts</span>)
731
798
  <span class="ruby-keyword">unless</span> <span class="ruby-identifier">search</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">search</span>.<span class="ruby-identifier">empty?</span>
732
799
  <span class="ruby-identifier">result</span> = <span class="ruby-identifier">search_name</span>(<span class="ruby-identifier">search</span>)
@@ -743,9 +810,9 @@
743
810
  <span class="ruby-identifier">output</span> = <span class="ruby-identifier">output_array</span>(<span class="ruby-identifier">result</span>, <span class="ruby-identifier">opts</span>)
744
811
 
745
812
  <span class="ruby-keyword">if</span> <span class="ruby-identifier">opts</span>[<span class="ruby-value">:format</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp">/^v/</span>
746
- <span class="ruby-node">&quot;Search results for: #{search}\n---------\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;\n&quot;</span>)
813
+ <span class="ruby-node">&quot;Search results for: #{search}\n---------\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;\n&quot;</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">output</span>
747
814
  <span class="ruby-keyword">else</span>
748
- <span class="ruby-identifier">output</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">separator</span>)
815
+ <span class="ruby-identifier">output</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">separator</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">output</span>
749
816
  <span class="ruby-keyword">end</span>
750
817
  <span class="ruby-keyword">end</span></pre>
751
818
  </div>
@@ -765,7 +832,7 @@
765
832
  <p>Search boomark names/titles. Return array of bookmark hashes.</p>
766
833
 
767
834
  <div class="method-source-code" id="search_name-source">
768
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 104</span>
835
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 106</span>
769
836
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">search_name</span>(<span class="ruby-identifier">search</span>)
770
837
  <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
771
838
  set searchString to &quot;#{search.strip}&quot;
@@ -799,7 +866,7 @@
799
866
  <p>Search bookmark paths and addresses. Return array of bookmark hashes.</p>
800
867
 
801
868
  <div class="method-source-code" id="search_path_or_address-source">
802
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 122</span>
869
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 124</span>
803
870
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">search_path_or_address</span>(<span class="ruby-identifier">search</span>)
804
871
  <span class="ruby-node">`osascript &lt;&lt;&#39;APPLESCRIPT&#39;
805
872
  set searchString to &quot;#{search.strip}&quot;
@@ -833,7 +900,7 @@
833
900
  <p>Generate a menu of available hooks for selecting one or more hooks to operate on. Revamped to use `fzf`, which is embedded as `lib/helpers/fuzzyfilefinder` to avoid any conflicts. Allows multiple selections with tab key, and type-ahead fuzzy filtering of results.</p>
834
901
 
835
902
  <div class="method-source-code" id="select_hook-source">
836
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 198</span>
903
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 200</span>
837
904
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">select_hook</span>(<span class="ruby-identifier">marks</span>)
838
905
  <span class="ruby-comment"># intpad = marks.length.to_s.length + 1</span>
839
906
  <span class="ruby-comment"># marks.each_with_index do |mark, i|</span>
@@ -872,7 +939,8 @@
872
939
  <span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;Error processing available hooks&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">empty?</span>
873
940
 
874
941
  <span class="ruby-identifier">args</span> = [<span class="ruby-string">&#39;--layout=reverse-list&#39;</span>,
875
- <span class="ruby-string">&#39;--header=&quot;esc: cancel, tab: multi-select, return: open &gt; &quot;&#39;</span>,
942
+ <span class="ruby-string">&#39;--header=&quot;esc: cancel, tab: multi-select, ctrl-a: select all, return: open&quot;&#39;</span>,
943
+ <span class="ruby-string">&#39;--bind ctrl-a:select-all&#39;</span>,
876
944
  <span class="ruby-string">&#39;--prompt=&quot; Select hooks &gt; &quot;&#39;</span>,
877
945
  <span class="ruby-string">&#39;--multi&#39;</span>,
878
946
  <span class="ruby-string">&#39;--tabstop=4&#39;</span>,
@@ -882,19 +950,13 @@
882
950
  <span class="ruby-string">&#39;--min-height=10&#39;</span>
883
951
  ]
884
952
 
885
- <span class="ruby-identifier">fzf</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword">__FILE__</span>), <span class="ruby-string">&#39;../helpers/fuzzyfilefinder&#39;</span>)
886
-
887
953
  <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>
888
- <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-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
954
+ <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>
889
955
  <span class="ruby-identifier">ps</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\t/</span>)
890
956
  { <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>] }
891
- }
892
-
893
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
894
- <span class="ruby-identifier">raise</span> <span class="ruby-string">&#39;Cancelled (empty response)&#39;</span>
895
957
  <span class="ruby-keyword">end</span>
896
958
 
897
- <span class="ruby-identifier">res</span>
959
+ <span class="ruby-identifier">res</span> <span class="ruby-operator">||</span> []
898
960
  <span class="ruby-keyword">end</span></pre>
899
961
  </div>
900
962
  </div>
@@ -913,7 +975,7 @@
913
975
  <p>Check if format fully matches or matches the first character of available options. Return full valid format or nil</p>
914
976
 
915
977
  <div class="method-source-code" id="validate_format-source">
916
- <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 18</span>
978
+ <pre><span class="ruby-comment"># File lib/hook/hookapp.rb, line 20</span>
917
979
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">validate_format</span>(<span class="ruby-identifier">fmt</span>, <span class="ruby-identifier">options</span>)
918
980
  <span class="ruby-identifier">valid_format_rx</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">format</span><span class="ruby-operator">|</span> <span class="ruby-identifier">format</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^(.)(.*)$/</span>, <span class="ruby-string">&#39;^\1(\2)?$&#39;</span>) }
919
981
  <span class="ruby-identifier">valid_format</span> = <span class="ruby-keyword">nil</span>
@@ -940,7 +1002,7 @@
940
1002
 
941
1003
  <footer id="validator-badges" role="contentinfo">
942
1004
  <p><a href="https://validator.w3.org/check/referer">Validate</a>
943
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.2.
1005
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.3.
944
1006
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
945
1007
  </footer>
946
1008
 
data/html/Hooker.html CHANGED
@@ -116,7 +116,7 @@
116
116
  </div>
117
117
 
118
118
  <div class="method-source-code" id="new-source">
119
- <pre><span class="ruby-comment"># File lib/hook/hooker.rb, line 5</span>
119
+ <pre><span class="ruby-comment"># File lib/hook/hooker.rb, line 6</span>
120
120
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>
121
121
  <span class="ruby-keyword">super</span>
122
122
  <span class="ruby-identifier">warn</span> <span class="ruby-string">&quot;Using Hooker class is deprecated, update to use HookApp instead&quot;</span>
@@ -135,7 +135,7 @@
135
135
 
136
136
  <footer id="validator-badges" role="contentinfo">
137
137
  <p><a href="https://validator.w3.org/check/referer">Validate</a>
138
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.2.
138
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.3.
139
139
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
140
140
  </footer>
141
141
 
@@ -69,9 +69,9 @@
69
69
  <li><a href="#label-a-7C--app+APP_NAME">-a|–app APP_NAME</a>
70
70
  <li><a href="#label-m-7C--markdown">-m|–markdown</a>
71
71
  <li><a href="#label-Command-3A+clone++SOURCE+TARGET">Command: <code>clone SOURCE TARGET</code></a>
72
- <li><a href="#label-Command-3A+find-7Csearch++SEARCH_STRING">Command: <code>find|search SEARCH_STRING</code></a>
72
+ <li><a href="#label-Command-3A+find-7Csearch++-5BSEARCH_STRING-5D">Command: <code>find|search [SEARCH_STRING]</code></a>
73
73
  <li><a href="#label-Options">Options</a>
74
- <li><a href="#label-o-7C--output_format+format">-o|–output_format format</a>
74
+ <li><a href="#label-o-7C--output_format+FORMAT">-o|–output_format FORMAT</a>
75
75
  <li><a href="#label-f-7C--files_only">-f|–files_only</a>
76
76
  <li><a href="#label-n-7C--names_only">-n|–names_only</a>
77
77
  <li><a href="#label--null">–null</a>
@@ -82,20 +82,25 @@
82
82
  <li><a href="#label-Command-3A+help++command">Command: <code>help command</code></a>
83
83
  <li><a href="#label-Options">Options</a>
84
84
  <li><a href="#label-c">-c</a>
85
- <li><a href="#label-Command-3A+link-7Cln++SOURCE+-5BSOURCE...-5D+TARGET">Command: <code>link|ln SOURCE [SOURCE...] TARGET</code></a>
85
+ <li><a href="#label-Command-3A+link-7Cln++SOURCE...+TARGET">Command: <code>link|ln SOURCE... TARGET</code></a>
86
86
  <li><a href="#label-Options">Options</a>
87
87
  <li><a href="#label-a-7C--all">-a|–all</a>
88
88
  <li><a href="#label-p-7C--paste">-p|–paste</a>
89
- <li><a href="#label-Command-3A+list-7Cls++FILE_OR_URL+-5BFILE_OR_URL...-5D">Command: <code>list|ls FILE_OR_URL [FILE_OR_URL...]</code></a>
89
+ <li><a href="#label-Command-3A+list-7Cls++-5BFILE_OR_URL-5D...">Command: <code>list|ls [FILE_OR_URL]...</code></a>
90
90
  <li><a href="#label-Options">Options</a>
91
- <li><a href="#label-o-7C--output_format+format">-o|–output_format format</a>
91
+ <li><a href="#label-o-7C--output_format+FORMAT">-o|–output_format FORMAT</a>
92
92
  <li><a href="#label-f-7C--files_only">-f|–files_only</a>
93
93
  <li><a href="#label--null">–null</a>
94
94
  <li><a href="#label-s-7C--select">-<a href="no-">s|–</a>select</a>
95
95
  <li><a href="#label-Command-3A+open-7Cgui++FILE_OR_URL">Command: <code>open|gui FILE_OR_URL</code></a>
96
- <li><a href="#label-Command-3A+remove-7Crm++ITEM_1+ITEM_2">Command: <code>remove|rm ITEM_1 ITEM_2</code></a>
96
+ <li><a href="#label-Command-3A+percent++STRING">Command: <code>percent STRING</code></a>
97
+ <li><a href="#label-Commands">Commands</a>
98
+ <li><a href="#label-Command-3A+decode++STRING">Command: <code>decode STRING</code></a>
99
+ <li><a href="#label-Command-3A+encode++STRING">Command: <code>encode STRING</code></a>
100
+ <li><a href="#label-Command-3A+remove-7Crm++FILE_OR_URL...">Command: <code>remove|rm FILE_OR_URL...</code></a>
97
101
  <li><a href="#label-Options">Options</a>
98
102
  <li><a href="#label-a-7C--all">-a|–all</a>
103
+ <li><a href="#label-f-7C--force">-f|–force</a>
99
104
  <li><a href="#label-Command-3A+scripts++SHELL">Command: <code>scripts SHELL</code></a>
100
105
  <li><a href="#label-Command-3A+select++FILE_OR_URL">Command: <code>select FILE_OR_URL</code></a>
101
106
  </ul>
@@ -123,9 +128,11 @@
123
128
 
124
129
  <h2 id="label-hook+-+CLI+interface+for+Hook.app+-28macOS-29">hook - CLI interface for Hook.app (macOS)<span><a href="#label-hook+-+CLI+interface+for+Hook.app+-28macOS-29">&para;</a> <a href="#top">&uarr;</a></span></h2>
125
130
 
126
- <p>Hook.app is a productivity tool for macOS &lt;<a href="https://hookproductivity.com">hookproductivity.com</a>/&gt;. This gem includes a `hook` binary that allows interaction with the features of Hook.app.</p>
131
+ <p>Hook.app is a productivity tool for macOS &lt;<a href="https://hookproductivity.com">hookproductivity.com</a>/&gt;.</p>
132
+
133
+ <p>This gem includes a `hook` binary that allows interaction with the features of Hook.app.</p>
127
134
 
128
- <p>v2.0.3</p>
135
+ <p>v2.0.9</p>
129
136
 
130
137
  <h3 id="label-Global+Options">Global Options<span><a href="#label-Global+Options">&para;</a> <a href="#top">&uarr;</a></span></h3>
131
138
 
@@ -145,7 +152,7 @@
145
152
 
146
153
  <p>Creates a bookmark for the specified file or URL and copies its <a href="Hook.html"><code>Hook</code></a> URL to the clipboard.</p>
147
154
 
148
- <p>The copied <a href="Hook.html"><code>Hook</code></a> URL can be used to link to other files (use `hook link –paste FILE/URL), or to paste into another app as a link. Use the -m flag to copy a full Markdown link.</p>
155
+ <p>The copied <a href="Hook.html"><code>Hook</code></a> URL can be used to link to other files (use `hook link –paste FILE/URL`, or to paste into another app as a link. Use the -m flag to copy a full Markdown link.</p>
149
156
 
150
157
  <h5 id="label-Options">Options<span><a href="#label-Options">&para;</a> <a href="#top">&uarr;</a></span></h5>
151
158
 
@@ -165,9 +172,11 @@
165
172
 
166
173
  <p>Clone all hooks from one file or url onto another</p>
167
174
 
168
- <p>Copy all the files and urls that the first file is hooked to onto another file. Exactly two arguments (SOURCE, TARGET) required.</p>
175
+ <p>Copy all the files and urls that the first file is hooked to onto another file.</p>
169
176
 
170
- <h4 id="label-Command-3A+find-7Csearch++SEARCH_STRING">Command: <code>find|search SEARCH_STRING</code><span><a href="#label-Command-3A+find-7Csearch++SEARCH_STRING">&para;</a> <a href="#top">&uarr;</a></span></h4>
177
+ <p>Exactly two arguments (SOURCE, TARGET) required.</p>
178
+
179
+ <h4 id="label-Command-3A+find-7Csearch++-5BSEARCH_STRING-5D">Command: <code>find|search [SEARCH_STRING]</code><span><a href="#label-Command-3A+find-7Csearch++-5BSEARCH_STRING-5D">&para;</a> <a href="#top">&uarr;</a></span></h4>
171
180
 
172
181
  <p>Search bookmarks</p>
173
182
 
@@ -177,7 +186,7 @@
177
186
 
178
187
  <h5 id="label-Options">Options<span><a href="#label-Options">&para;</a> <a href="#top">&uarr;</a></span></h5>
179
188
 
180
- <h5 id="label-o-7C--output_format+format">-o|–output_format format<span><a href="#label-o-7C--output_format+format">&para;</a> <a href="#top">&uarr;</a></span></h5>
189
+ <h5 id="label-o-7C--output_format+FORMAT">-o|–output_format FORMAT<span><a href="#label-o-7C--output_format+FORMAT">&para;</a> <a href="#top">&uarr;</a></span></h5>
181
190
 
182
191
  <p>Output format [(h)ooks, (p)aths, (m)arkdown, (v)erbose]</p>
183
192
  <dl class="rdoc-list label-list"><dt>Default Value
@@ -227,7 +236,7 @@
227
236
 
228
237
  <p>List commands one per line, to assist with shell completion</p>
229
238
 
230
- <h4 id="label-Command-3A+link-7Cln++SOURCE+-5BSOURCE...-5D+TARGET">Command: <code>link|ln SOURCE [SOURCE...] TARGET</code><span><a href="#label-Command-3A+link-7Cln++SOURCE+-5BSOURCE...-5D+TARGET">&para;</a> <a href="#top">&uarr;</a></span></h4>
239
+ <h4 id="label-Command-3A+link-7Cln++SOURCE...+TARGET">Command: <code>link|ln SOURCE... TARGET</code><span><a href="#label-Command-3A+link-7Cln++SOURCE...+TARGET">&para;</a> <a href="#top">&uarr;</a></span></h4>
231
240
 
232
241
  <p>Create bidirectional hooks between two or more files/urls</p>
233
242
 
@@ -245,7 +254,7 @@
245
254
 
246
255
  <p>Paste URL from clipboard</p>
247
256
 
248
- <h4 id="label-Command-3A+list-7Cls++FILE_OR_URL+-5BFILE_OR_URL...-5D">Command: <code>list|ls FILE_OR_URL [FILE_OR_URL...]</code><span><a href="#label-Command-3A+list-7Cls++FILE_OR_URL+-5BFILE_OR_URL...-5D">&para;</a> <a href="#top">&uarr;</a></span></h4>
257
+ <h4 id="label-Command-3A+list-7Cls++-5BFILE_OR_URL-5D...">Command: <code>list|ls [FILE_OR_URL]...</code><span><a href="#label-Command-3A+list-7Cls++-5BFILE_OR_URL-5D...">&para;</a> <a href="#top">&uarr;</a></span></h4>
249
258
 
250
259
  <p>List hooks on a file or url</p>
251
260
 
@@ -255,7 +264,7 @@
255
264
 
256
265
  <h5 id="label-Options">Options<span><a href="#label-Options">&para;</a> <a href="#top">&uarr;</a></span></h5>
257
266
 
258
- <h5 id="label-o-7C--output_format+format">-o|–output_format format<span><a href="#label-o-7C--output_format+format">&para;</a> <a href="#top">&uarr;</a></span></h5>
267
+ <h5 id="label-o-7C--output_format+FORMAT">-o|–output_format FORMAT<span><a href="#label-o-7C--output_format+FORMAT">&para;</a> <a href="#top">&uarr;</a></span></h5>
259
268
 
260
269
  <p>Output format [(h)ooks, (p)aths, (m)arkdown, (v)erbose]</p>
261
270
  <dl class="rdoc-list label-list"><dt>Default Value
@@ -281,9 +290,27 @@
281
290
 
282
291
  <p>Open the specified file or url in <a href="Hook.html"><code>Hook</code></a> GUI</p>
283
292
 
284
- <p>Opens Hook.app on the specified file/URL for browsing and performing actions. Exactly one argument (File/URL) required.</p>
293
+ <p>Opens Hook.app on the specified file/URL for browsing and performing actions.</p>
294
+
295
+ <p>Exactly one argument (File/URL) required.</p>
296
+
297
+ <h4 id="label-Command-3A+percent++STRING">Command: <code>percent STRING</code><span><a href="#label-Command-3A+percent++STRING">&para;</a> <a href="#top">&uarr;</a></span></h4>
298
+
299
+ <p>Percent encode/decode a string</p>
300
+
301
+ <p>Use encode or decode to apply Hook&#39;s url encoding to a string argument. Use &#39;-&#39; to read input from STDIN.</p>
285
302
 
286
- <h4 id="label-Command-3A+remove-7Crm++ITEM_1+ITEM_2">Command: <code>remove|rm ITEM_1 ITEM_2</code><span><a href="#label-Command-3A+remove-7Crm++ITEM_1+ITEM_2">&para;</a> <a href="#top">&uarr;</a></span></h4>
303
+ <h5 id="label-Commands">Commands<span><a href="#label-Commands">&para;</a> <a href="#top">&uarr;</a></span></h5>
304
+
305
+ <h6 id="label-Command-3A+decode++STRING">Command: <code>decode STRING</code><span><a href="#label-Command-3A+decode++STRING">&para;</a> <a href="#top">&uarr;</a></span></h6>
306
+
307
+ <p>decode a percent-encoded string</p>
308
+
309
+ <h6 id="label-Command-3A+encode++STRING">Command: <code>encode STRING</code><span><a href="#label-Command-3A+encode++STRING">&para;</a> <a href="#top">&uarr;</a></span></h6>
310
+
311
+ <p>percent encode a string</p>
312
+
313
+ <h4 id="label-Command-3A+remove-7Crm++FILE_OR_URL...">Command: <code>remove|rm FILE_OR_URL...</code><span><a href="#label-Command-3A+remove-7Crm++FILE_OR_URL...">&para;</a> <a href="#top">&uarr;</a></span></h4>
287
314
 
288
315
  <p>Remove a hook between two files/urls</p>
289
316
 
@@ -297,6 +324,8 @@
297
324
 
298
325
  <p>Remove ALL links on files, requires confirmation</p>
299
326
 
327
+ <h5 id="label-f-7C--force">-f|–force<span><a href="#label-f-7C--force">&para;</a> <a href="#top">&uarr;</a></span></h5>
328
+
300
329
  <h4 id="label-Command-3A+scripts++SHELL">Command: <code>scripts SHELL</code><span><a href="#label-Command-3A+scripts++SHELL">&para;</a> <a href="#top">&uarr;</a></span></h4>
301
330
 
302
331
  <p>Shell completion examples</p>
@@ -319,7 +348,7 @@
319
348
 
320
349
  <footer id="validator-badges" role="contentinfo">
321
350
  <p><a href="https://validator.w3.org/check/referer">Validate</a>
322
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.2.
351
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.3.
323
352
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
324
353
  </footer>
325
354