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/String.html CHANGED
@@ -75,6 +75,7 @@
75
75
  <li ><a href="#method-i-cap">#cap</a>
76
76
  <li ><a href="#method-i-cap-21">#cap!</a>
77
77
  <li ><a href="#method-i-clip">#clip</a>
78
+ <li ><a href="#method-i-escape_quotes">#escape_quotes</a>
78
79
  <li ><a href="#method-i-nil_if_missing">#nil_if_missing</a>
79
80
  <li ><a href="#method-i-split_hook">#split_hook</a>
80
81
  <li ><a href="#method-i-split_hooks">#split_hooks</a>
@@ -176,6 +177,27 @@
176
177
  </div>
177
178
 
178
179
 
180
+ </div>
181
+
182
+ <div id="method-i-escape_quotes" class="method-detail ">
183
+ <div class="method-heading">
184
+ <span class="method-name">escape_quotes</span><span
185
+ class="method-args">()</span>
186
+ <span class="method-click-advice">click to toggle source</span>
187
+ </div>
188
+
189
+ <div class="method-description">
190
+
191
+
192
+ <div class="method-source-code" id="escape_quotes-source">
193
+ <pre><span class="ruby-comment"># File lib/hook/string.rb, line 61</span>
194
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">escape_quotes</span>
195
+ <span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/&quot;/</span>, <span class="ruby-string">&#39;\\&quot;&#39;</span>)
196
+ <span class="ruby-keyword">end</span></pre>
197
+ </div>
198
+ </div>
199
+
200
+
179
201
  </div>
180
202
 
181
203
  <div id="method-i-nil_if_missing" class="method-detail ">
@@ -307,7 +329,7 @@
307
329
 
308
330
  <footer id="validator-badges" role="contentinfo">
309
331
  <p><a href="https://validator.w3.org/check/referer">Validate</a>
310
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.2.
332
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.3.
311
333
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
312
334
  </footer>
313
335
 
data/html/created.rid CHANGED
@@ -1,9 +1,10 @@
1
- Sat, 18 Sep 2021 12:41:15 -0500
1
+ Thu, 26 May 2022 08:30:27 -0500
2
2
  README.rdoc Tue, 07 Jul 2020 16:57:07 -0500
3
- lib/hook.rb Sat, 18 Sep 2021 12:27:39 -0500
4
- lib/hook/hookapp.rb Sat, 18 Sep 2021 12:22:34 -0500
5
- lib/hook/hooker.rb Sat, 18 Sep 2021 12:22:34 -0500
6
- lib/hook/markdown_document_listener.rb Wed, 09 Sep 2020 12:38:39 -0500
7
- lib/hook/string.rb Fri, 28 Aug 2020 13:00:21 -0500
8
- lib/hook/version.rb Sat, 18 Sep 2021 12:40:59 -0500
9
- bin/hook Sat, 18 Sep 2021 12:22:34 -0500
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
5
+ lib/hook/hooker.rb Sun, 31 Oct 2021 07:54:46 -0500
6
+ lib/hook/markdown_document_listener.rb Sun, 26 Sep 2021 07:45:59 -0500
7
+ lib/hook/prompt.rb Thu, 26 May 2022 08:20:13 -0500
8
+ lib/hook/string.rb Sun, 31 Oct 2021 07:03:15 -0500
9
+ lib/hook/version.rb Thu, 26 May 2022 08:29:18 -0500
10
+ bin/hook Sun, 31 Oct 2021 07:54:10 -0500
data/html/index.html CHANGED
@@ -74,6 +74,9 @@
74
74
  <li><a href="./GLI/Commands/Doc.html">GLI::Commands::Doc</a>
75
75
  <li><a href="./GLI/Commands/MarkdownDocumentListener.html">GLI::Commands::MarkdownDocumentListener</a>
76
76
  <li><a href="./Hook.html">Hook</a>
77
+ <li><a href="./Hook/Prompt.html">Hook::Prompt</a>
78
+ <li><a href="./Hook/PromptFZF.html">Hook::PromptFZF</a>
79
+ <li><a href="./Hook/PromptSTD.html">Hook::PromptSTD</a>
77
80
  <li><a href="./HookApp.html">HookApp</a>
78
81
  <li><a href="./Hooker.html">Hooker</a>
79
82
  <li><a href="./String.html">String</a>
@@ -92,9 +95,11 @@
92
95
 
93
96
  <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>
94
97
 
95
- <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>
98
+ <p>Hook.app is a productivity tool for macOS &lt;<a href="https://hookproductivity.com">hookproductivity.com</a>/&gt;.</p>
96
99
 
97
- <p>v2.0.3</p>
100
+ <p>This gem includes a `hook` binary that allows interaction with the features of Hook.app.</p>
101
+
102
+ <p>v2.0.9</p>
98
103
 
99
104
  <h3 id="label-Global+Options">Global Options<span><a href="#label-Global+Options">&para;</a> <a href="#top">&uarr;</a></span></h3>
100
105
 
@@ -114,7 +119,7 @@
114
119
 
115
120
  <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>
116
121
 
117
- <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>
122
+ <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>
118
123
 
119
124
  <h5 id="label-Options">Options<span><a href="#label-Options">&para;</a> <a href="#top">&uarr;</a></span></h5>
120
125
 
@@ -134,9 +139,11 @@
134
139
 
135
140
  <p>Clone all hooks from one file or url onto another</p>
136
141
 
137
- <p>Copy all the files and urls that the first file is hooked to onto another file. Exactly two arguments (SOURCE, TARGET) required.</p>
142
+ <p>Copy all the files and urls that the first file is hooked to onto another file.</p>
143
+
144
+ <p>Exactly two arguments (SOURCE, TARGET) required.</p>
138
145
 
139
- <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>
146
+ <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>
140
147
 
141
148
  <p>Search bookmarks</p>
142
149
 
@@ -146,7 +153,7 @@
146
153
 
147
154
  <h5 id="label-Options">Options<span><a href="#label-Options">&para;</a> <a href="#top">&uarr;</a></span></h5>
148
155
 
149
- <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>
156
+ <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>
150
157
 
151
158
  <p>Output format [(h)ooks, (p)aths, (m)arkdown, (v)erbose]</p>
152
159
  <dl class="rdoc-list label-list"><dt>Default Value
@@ -196,7 +203,7 @@
196
203
 
197
204
  <p>List commands one per line, to assist with shell completion</p>
198
205
 
199
- <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>
206
+ <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>
200
207
 
201
208
  <p>Create bidirectional hooks between two or more files/urls</p>
202
209
 
@@ -214,7 +221,7 @@
214
221
 
215
222
  <p>Paste URL from clipboard</p>
216
223
 
217
- <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>
224
+ <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>
218
225
 
219
226
  <p>List hooks on a file or url</p>
220
227
 
@@ -224,7 +231,7 @@
224
231
 
225
232
  <h5 id="label-Options">Options<span><a href="#label-Options">&para;</a> <a href="#top">&uarr;</a></span></h5>
226
233
 
227
- <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>
234
+ <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>
228
235
 
229
236
  <p>Output format [(h)ooks, (p)aths, (m)arkdown, (v)erbose]</p>
230
237
  <dl class="rdoc-list label-list"><dt>Default Value
@@ -250,9 +257,27 @@
250
257
 
251
258
  <p>Open the specified file or url in <a href="Hook.html"><code>Hook</code></a> GUI</p>
252
259
 
253
- <p>Opens Hook.app on the specified file/URL for browsing and performing actions. Exactly one argument (File/URL) required.</p>
260
+ <p>Opens Hook.app on the specified file/URL for browsing and performing actions.</p>
261
+
262
+ <p>Exactly one argument (File/URL) required.</p>
263
+
264
+ <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>
265
+
266
+ <p>Percent encode/decode a string</p>
267
+
268
+ <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>
254
269
 
255
- <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>
270
+ <h5 id="label-Commands">Commands<span><a href="#label-Commands">&para;</a> <a href="#top">&uarr;</a></span></h5>
271
+
272
+ <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>
273
+
274
+ <p>decode a percent-encoded string</p>
275
+
276
+ <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>
277
+
278
+ <p>percent encode a string</p>
279
+
280
+ <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>
256
281
 
257
282
  <p>Remove a hook between two files/urls</p>
258
283
 
@@ -266,6 +291,8 @@
266
291
 
267
292
  <p>Remove ALL links on files, requires confirmation</p>
268
293
 
294
+ <h5 id="label-f-7C--force">-f|–force<span><a href="#label-f-7C--force">&para;</a> <a href="#top">&uarr;</a></span></h5>
295
+
269
296
  <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>
270
297
 
271
298
  <p>Shell completion examples</p>
@@ -287,7 +314,7 @@
287
314
 
288
315
  <footer id="validator-badges" role="contentinfo">
289
316
  <p><a href="https://validator.w3.org/check/referer">Validate</a>
290
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.2.
317
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.3.
291
318
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
292
319
  </footer>
293
320
 
Binary file
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["app","gli","commands","doc","markdowndocumentlistener","hook","hookapp","hooker","string","all_bookmarks()","beginning()","bookmark_for()","bookmark_from_app()","cap()","cap!()","clip()","clip_bookmark()","clone_hooks()","command()","commands()","copy_bookmark()","default_command()","delete_all_hooks()","delete_hooks()","end_command()","end_commands()","end_options()","ending()","flag()","format_regex()","get_hooks()","link_all()","link_files()","linked_bookmarks()","new()","new()","nil_if_missing()","open_gui()","open_linked()","options()","output_array()","program_desc()","program_long_desc()","search_bookmarks()","search_name()","search_path_or_address()","select_hook()","split_hook()","split_hooks()","switch()","valid_hook()","valid_hook!()","validate_format()","version()","readme"],"longSearchIndex":["app","gli","gli::commands","gli::commands::doc","gli::commands::markdowndocumentlistener","hook","hookapp","hooker","string","hookapp#all_bookmarks()","gli::commands::markdowndocumentlistener#beginning()","hookapp#bookmark_for()","hookapp#bookmark_from_app()","string#cap()","string#cap!()","string#clip()","hookapp#clip_bookmark()","hookapp#clone_hooks()","gli::commands::markdowndocumentlistener#command()","gli::commands::markdowndocumentlistener#commands()","hookapp#copy_bookmark()","gli::commands::markdowndocumentlistener#default_command()","hookapp#delete_all_hooks()","hookapp#delete_hooks()","gli::commands::markdowndocumentlistener#end_command()","gli::commands::markdowndocumentlistener#end_commands()","gli::commands::markdowndocumentlistener#end_options()","gli::commands::markdowndocumentlistener#ending()","gli::commands::markdowndocumentlistener#flag()","hookapp#format_regex()","hookapp#get_hooks()","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()","hookapp#search_bookmarks()","hookapp#search_name()","hookapp#search_path_or_address()","hookapp#select_hook()","string#split_hook()","string#split_hooks()","gli::commands::markdowndocumentlistener#switch()","string#valid_hook()","string#valid_hook!()","hookapp#validate_format()","gli::commands::markdowndocumentlistener#version()",""],"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","",""],["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","()",""],["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"],["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)","<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"],["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"],["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"],["get_hooks","HookApp","HookApp.html#method-i-get_hooks","(url)","<p>Get bookmarks hooked to file or URL. Return array of bookmark hashes.\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)",""],["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"],["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"],["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"],["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()","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"]]}}
Binary file
Binary file
@@ -42,9 +42,9 @@
42
42
  <li><a href="README_rdoc.html#label-a-7C--app+APP_NAME">-a|–app APP_NAME</a>
43
43
  <li><a href="README_rdoc.html#label-m-7C--markdown">-m|–markdown</a>
44
44
  <li><a href="README_rdoc.html#label-Command-3A+clone++SOURCE+TARGET">Command: <code>clone SOURCE TARGET</code></a>
45
- <li><a href="README_rdoc.html#label-Command-3A+find-7Csearch++SEARCH_STRING">Command: <code>find|search SEARCH_STRING</code></a>
45
+ <li><a href="README_rdoc.html#label-Command-3A+find-7Csearch++-5BSEARCH_STRING-5D">Command: <code>find|search [SEARCH_STRING]</code></a>
46
46
  <li><a href="README_rdoc.html#label-Options">Options</a>
47
- <li><a href="README_rdoc.html#label-o-7C--output_format+format">-o|–output_format format</a>
47
+ <li><a href="README_rdoc.html#label-o-7C--output_format+FORMAT">-o|–output_format FORMAT</a>
48
48
  <li><a href="README_rdoc.html#label-f-7C--files_only">-f|–files_only</a>
49
49
  <li><a href="README_rdoc.html#label-n-7C--names_only">-n|–names_only</a>
50
50
  <li><a href="README_rdoc.html#label--null">–null</a>
@@ -55,20 +55,25 @@
55
55
  <li><a href="README_rdoc.html#label-Command-3A+help++command">Command: <code>help command</code></a>
56
56
  <li><a href="README_rdoc.html#label-Options">Options</a>
57
57
  <li><a href="README_rdoc.html#label-c">-c</a>
58
- <li><a href="README_rdoc.html#label-Command-3A+link-7Cln++SOURCE+-5BSOURCE...-5D+TARGET">Command: <code>link|ln SOURCE [SOURCE...] TARGET</code></a>
58
+ <li><a href="README_rdoc.html#label-Command-3A+link-7Cln++SOURCE...+TARGET">Command: <code>link|ln SOURCE... TARGET</code></a>
59
59
  <li><a href="README_rdoc.html#label-Options">Options</a>
60
60
  <li><a href="README_rdoc.html#label-a-7C--all">-a|–all</a>
61
61
  <li><a href="README_rdoc.html#label-p-7C--paste">-p|–paste</a>
62
- <li><a href="README_rdoc.html#label-Command-3A+list-7Cls++FILE_OR_URL+-5BFILE_OR_URL...-5D">Command: <code>list|ls FILE_OR_URL [FILE_OR_URL...]</code></a>
62
+ <li><a href="README_rdoc.html#label-Command-3A+list-7Cls++-5BFILE_OR_URL-5D...">Command: <code>list|ls [FILE_OR_URL]...</code></a>
63
63
  <li><a href="README_rdoc.html#label-Options">Options</a>
64
- <li><a href="README_rdoc.html#label-o-7C--output_format+format">-o|–output_format format</a>
64
+ <li><a href="README_rdoc.html#label-o-7C--output_format+FORMAT">-o|–output_format FORMAT</a>
65
65
  <li><a href="README_rdoc.html#label-f-7C--files_only">-f|–files_only</a>
66
66
  <li><a href="README_rdoc.html#label--null">–null</a>
67
67
  <li><a href="README_rdoc.html#label-s-7C--select">-<a href="no-">s|–</a>select</a>
68
68
  <li><a href="README_rdoc.html#label-Command-3A+open-7Cgui++FILE_OR_URL">Command: <code>open|gui FILE_OR_URL</code></a>
69
- <li><a href="README_rdoc.html#label-Command-3A+remove-7Crm++ITEM_1+ITEM_2">Command: <code>remove|rm ITEM_1 ITEM_2</code></a>
69
+ <li><a href="README_rdoc.html#label-Command-3A+percent++STRING">Command: <code>percent STRING</code></a>
70
+ <li><a href="README_rdoc.html#label-Commands">Commands</a>
71
+ <li><a href="README_rdoc.html#label-Command-3A+decode++STRING">Command: <code>decode STRING</code></a>
72
+ <li><a href="README_rdoc.html#label-Command-3A+encode++STRING">Command: <code>encode STRING</code></a>
73
+ <li><a href="README_rdoc.html#label-Command-3A+remove-7Crm++FILE_OR_URL...">Command: <code>remove|rm FILE_OR_URL...</code></a>
70
74
  <li><a href="README_rdoc.html#label-Options">Options</a>
71
75
  <li><a href="README_rdoc.html#label-a-7C--all">-a|–all</a>
76
+ <li><a href="README_rdoc.html#label-f-7C--force">-f|–force</a>
72
77
  <li><a href="README_rdoc.html#label-Command-3A+scripts++SHELL">Command: <code>scripts SHELL</code></a>
73
78
  <li><a href="README_rdoc.html#label-Command-3A+select++FILE_OR_URL">Command: <code>select FILE_OR_URL</code></a>
74
79
  </ul>
@@ -95,6 +100,15 @@
95
100
  <li class="module">
96
101
  <a href="Hook.html">Hook</a>
97
102
  </li>
103
+ <li class="module">
104
+ <a href="Hook/Prompt.html">Hook::Prompt</a>
105
+ </li>
106
+ <li class="module">
107
+ <a href="Hook/PromptFZF.html">Hook::PromptFZF</a>
108
+ </li>
109
+ <li class="module">
110
+ <a href="Hook/PromptSTD.html">Hook::PromptSTD</a>
111
+ </li>
98
112
  <li class="class">
99
113
  <a href="HookApp.html">HookApp</a>
100
114
  </li>
@@ -149,6 +163,11 @@
149
163
  &mdash;
150
164
  <span class="container">String</span>
151
165
 
166
+ <li class="method">
167
+ <a href="Hook/PromptSTD.html#method-i-clear_screen">#clear_screen</a>
168
+ &mdash;
169
+ <span class="container">Hook::PromptSTD</span>
170
+
152
171
  <li class="method">
153
172
  <a href="String.html#method-i-clip">#clip</a>
154
173
  &mdash;
@@ -179,6 +198,11 @@
179
198
  &mdash;
180
199
  <span class="container">HookApp</span>
181
200
 
201
+ <li class="method">
202
+ <a href="HookApp.html#method-i-decode">#decode</a>
203
+ &mdash;
204
+ <span class="container">HookApp</span>
205
+
182
206
  <li class="method">
183
207
  <a href="GLI/Commands/MarkdownDocumentListener.html#method-i-default_command">#default_command</a>
184
208
  &mdash;
@@ -194,6 +218,11 @@
194
218
  &mdash;
195
219
  <span class="container">HookApp</span>
196
220
 
221
+ <li class="method">
222
+ <a href="HookApp.html#method-i-encode">#encode</a>
223
+ &mdash;
224
+ <span class="container">HookApp</span>
225
+
197
226
  <li class="method">
198
227
  <a href="GLI/Commands/MarkdownDocumentListener.html#method-i-end_command">#end_command</a>
199
228
  &mdash;
@@ -214,6 +243,11 @@
214
243
  &mdash;
215
244
  <span class="container">GLI::Commands::MarkdownDocumentListener</span>
216
245
 
246
+ <li class="method">
247
+ <a href="String.html#method-i-escape_quotes">#escape_quotes</a>
248
+ &mdash;
249
+ <span class="container">String</span>
250
+
217
251
  <li class="method">
218
252
  <a href="GLI/Commands/MarkdownDocumentListener.html#method-i-flag">#flag</a>
219
253
  &mdash;
@@ -224,11 +258,21 @@
224
258
  &mdash;
225
259
  <span class="container">HookApp</span>
226
260
 
261
+ <li class="method">
262
+ <a href="Hook/PromptFZF.html#method-i-fzf">#fzf</a>
263
+ &mdash;
264
+ <span class="container">Hook::PromptFZF</span>
265
+
227
266
  <li class="method">
228
267
  <a href="HookApp.html#method-i-get_hooks">#get_hooks</a>
229
268
  &mdash;
230
269
  <span class="container">HookApp</span>
231
270
 
271
+ <li class="method">
272
+ <a href="Hook/PromptFZF.html#method-i-install_fzf">#install_fzf</a>
273
+ &mdash;
274
+ <span class="container">Hook::PromptFZF</span>
275
+
232
276
  <li class="method">
233
277
  <a href="HookApp.html#method-i-link_all">#link_all</a>
234
278
  &mdash;
@@ -279,6 +323,11 @@
279
323
  &mdash;
280
324
  <span class="container">GLI::Commands::MarkdownDocumentListener</span>
281
325
 
326
+ <li class="method">
327
+ <a href="Hook/PromptSTD.html#method-i-restore_std">#restore_std</a>
328
+ &mdash;
329
+ <span class="container">Hook::PromptSTD</span>
330
+
282
331
  <li class="method">
283
332
  <a href="HookApp.html#method-i-search_bookmarks">#search_bookmarks</a>
284
333
  &mdash;
@@ -299,6 +348,11 @@
299
348
  &mdash;
300
349
  <span class="container">HookApp</span>
301
350
 
351
+ <li class="method">
352
+ <a href="Hook/PromptSTD.html#method-i-silence_std">#silence_std</a>
353
+ &mdash;
354
+ <span class="container">Hook::PromptSTD</span>
355
+
302
356
  <li class="method">
303
357
  <a href="String.html#method-i-split_hook">#split_hook</a>
304
358
  &mdash;
@@ -314,6 +368,11 @@
314
368
  &mdash;
315
369
  <span class="container">GLI::Commands::MarkdownDocumentListener</span>
316
370
 
371
+ <li class="method">
372
+ <a href="Hook/PromptFZF.html#method-i-uninstall_fzf">#uninstall_fzf</a>
373
+ &mdash;
374
+ <span class="container">Hook::PromptFZF</span>
375
+
317
376
  <li class="method">
318
377
  <a href="String.html#method-i-valid_hook">#valid_hook</a>
319
378
  &mdash;
@@ -333,13 +392,18 @@
333
392
  <a href="GLI/Commands/MarkdownDocumentListener.html#method-i-version">#version</a>
334
393
  &mdash;
335
394
  <span class="container">GLI::Commands::MarkdownDocumentListener</span>
395
+
396
+ <li class="method">
397
+ <a href="Hook/PromptFZF.html#method-i-which_fzf">#which_fzf</a>
398
+ &mdash;
399
+ <span class="container">Hook::PromptFZF</span>
336
400
  </ul>
337
401
  </main>
338
402
 
339
403
 
340
404
  <footer id="validator-badges" role="contentinfo">
341
405
  <p><a href="https://validator.w3.org/check/referer">Validate</a>
342
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.2.
406
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.3.3.
343
407
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
344
408
  </footer>
345
409
 
data/lib/hook/hookapp.rb CHANGED
@@ -4,6 +4,8 @@ require 'shellwords'
4
4
  require 'uri'
5
5
  # Hook.app functions
6
6
  class HookApp
7
+ include Hook::Prompt
8
+
7
9
  # Create a single regex for validation of an
8
10
  # array by first char or full match.
9
11
  def format_regex(options)
@@ -171,9 +173,9 @@ class HookApp
171
173
  output = output_array(result, opts)
172
174
 
173
175
  if opts[:format] =~ /^v/
174
- "Search results for: #{search}\n---------\n" + output.join("\n")
176
+ "Search results for: #{search}\n---------\n" + output.join("\n") if output
175
177
  else
176
- output.join(separator)
178
+ output.join(separator) if output
177
179
  end
178
180
  end
179
181
 
@@ -233,7 +235,8 @@ class HookApp
233
235
  raise "Error processing available hooks" if options.empty?
234
236
 
235
237
  args = ['--layout=reverse-list',
236
- '--header="esc: cancel, tab: multi-select, return: open > "',
238
+ '--header="esc: cancel, tab: multi-select, ctrl-a: select all, return: open"',
239
+ '--bind ctrl-a:select-all',
237
240
  '--prompt=" Select hooks > "',
238
241
  '--multi',
239
242
  '--tabstop=4',
@@ -243,19 +246,13 @@ class HookApp
243
246
  '--min-height=10'
244
247
  ]
245
248
 
246
- fzf = File.join(File.dirname(__FILE__), '../helpers/fuzzyfilefinder')
247
-
248
249
  sel = `echo #{Shellwords.escape(options.join("\n"))} | '#{fzf}' #{args.join(' ')}`.chomp
249
- res = sel.split(/\n/).map { |s|
250
+ res = sel.split(/\n/).map do |s|
250
251
  ps = s.split(/\t/)
251
252
  { name: ps[0], path: ps[1], url: ps[2] }
252
- }
253
-
254
- if res.size == 0
255
- raise 'Cancelled (empty response)'
256
253
  end
257
254
 
258
- res
255
+ res || []
259
256
  end
260
257
 
261
258
  # Open the Hook GUI for browsing/performing actions on a file or url
@@ -281,9 +278,11 @@ class HookApp
281
278
  warn "No hooks found for #{url}"
282
279
  else
283
280
  res = select_hook(marks)
284
- res.each {|mark|
285
- `open '#{mark[:url]}'`
286
- }
281
+ unless res.empty?
282
+ res.each {|mark|
283
+ `open '#{mark[:url]}'`
284
+ }
285
+ end
287
286
  end
288
287
  end
289
288
 
@@ -334,10 +333,13 @@ class HookApp
334
333
  end
335
334
 
336
335
  # Delete all hooked files/urls from target file
337
- def delete_all_hooks(url)
338
- STDERR.print "Are you sure you want to delete ALL hooks from #{url} (y/N)? "
339
- res = STDIN.gets.strip
340
- if res =~ /^y/i
336
+ def delete_all_hooks(url, force: false)
337
+ unless force
338
+ STDERR.print "Are you sure you want to delete ALL hooks from #{url} (y/N)? "
339
+ res = STDIN.gets.strip
340
+ end
341
+
342
+ if res =~ /^y/i || force
341
343
  get_hooks(url).each do |hook|
342
344
  `osascript <<'APPLESCRIPT'
343
345
  tell application "Hook"
@@ -360,7 +362,7 @@ class HookApp
360
362
  urls.each_with_index do |url, i|
361
363
  raise "Invalid target: #{args[i]}" unless url
362
364
 
363
- output.push(delete_all_hooks(url))
365
+ output.push(delete_all_hooks(url, force: opts[:force]))
364
366
  end
365
367
  return output.join("\n")
366
368
  end
@@ -431,7 +433,7 @@ class HookApp
431
433
  hooks_arr = get_hooks(url)
432
434
 
433
435
  output = output_array(hooks_arr, opts)
434
- result.push({ file: filename, links: output.join(separator) })
436
+ result.push({ file: filename, links: output.join(separator) }) if output
435
437
  end
436
438
 
437
439
 
@@ -479,11 +481,27 @@ class HookApp
479
481
  end
480
482
  end
481
483
  else
482
- output = ['No bookmarks']
484
+ warn 'No bookmarks'
483
485
  end
484
486
 
485
487
  output
486
488
  end
487
- end
488
489
 
490
+ def encode(string)
491
+ result = `osascript <<'APPLESCRIPT'
492
+ tell application "Hook"
493
+ percent encode "#{string.escape_quotes}"
494
+ end tell
495
+ APPLESCRIPT`.strip.gsub(/'/,'%27')
496
+ print result
497
+ end
489
498
 
499
+ def decode(string)
500
+ result = `osascript <<'APPLESCRIPT'
501
+ tell application "Hook"
502
+ percent decode "#{string.escape_quotes}"
503
+ end tell
504
+ APPLESCRIPT`.strip
505
+ print result
506
+ end
507
+ end
data/lib/hook/hooker.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  # Hook.app CLI interface
4
4
  class Hooker < HookApp
5
+
5
6
  def initialize
6
7
  super
7
8
  warn "Using Hooker class is deprecated, update to use HookApp instead"