hookapp 0.0.7 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/CHANGELOG.md +14 -0
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +2 -2
  6. data/LICENSE.md +31 -0
  7. data/OVERVIEW.md +80 -0
  8. data/README.md +282 -21
  9. data/Rakefile +1 -1
  10. data/bin/hook +127 -10
  11. data/buildnotes.md +29 -0
  12. data/hook.rdoc +63 -4
  13. data/hookapp.gemspec +9 -8
  14. data/html/App.html +119 -0
  15. data/html/GLI.html +99 -0
  16. data/html/GLI/Commands.html +99 -0
  17. data/html/GLI/Commands/Doc.html +99 -0
  18. data/html/GLI/Commands/MarkdownDocumentListener.html +717 -0
  19. data/html/Hook.html +113 -0
  20. data/html/HookApp.html +1222 -0
  21. data/html/Hooker.html +119 -0
  22. data/html/README_rdoc.html +328 -0
  23. data/html/String.html +427 -0
  24. data/html/created.rid +9 -0
  25. data/html/css/fonts.css +167 -0
  26. data/html/css/rdoc.css +619 -0
  27. data/html/fonts/Lato-Light.ttf +0 -0
  28. data/html/fonts/Lato-LightItalic.ttf +0 -0
  29. data/html/fonts/Lato-Regular.ttf +0 -0
  30. data/html/fonts/Lato-RegularItalic.ttf +0 -0
  31. data/html/fonts/SourceCodePro-Bold.ttf +0 -0
  32. data/html/fonts/SourceCodePro-Regular.ttf +0 -0
  33. data/html/images/add.png +0 -0
  34. data/html/images/arrow_up.png +0 -0
  35. data/html/images/brick.png +0 -0
  36. data/html/images/brick_link.png +0 -0
  37. data/html/images/bug.png +0 -0
  38. data/html/images/bullet_black.png +0 -0
  39. data/html/images/bullet_toggle_minus.png +0 -0
  40. data/html/images/bullet_toggle_plus.png +0 -0
  41. data/html/images/date.png +0 -0
  42. data/html/images/delete.png +0 -0
  43. data/html/images/find.png +0 -0
  44. data/html/images/loadingAnimation.gif +0 -0
  45. data/html/images/macFFBgHack.png +0 -0
  46. data/html/images/package.png +0 -0
  47. data/html/images/page_green.png +0 -0
  48. data/html/images/page_white_text.png +0 -0
  49. data/html/images/page_white_width.png +0 -0
  50. data/html/images/plugin.png +0 -0
  51. data/html/images/ruby.png +0 -0
  52. data/html/images/tag_blue.png +0 -0
  53. data/html/images/tag_green.png +0 -0
  54. data/html/images/transparent.png +0 -0
  55. data/html/images/wrench.png +0 -0
  56. data/html/images/wrench_orange.png +0 -0
  57. data/html/images/zoom.png +0 -0
  58. data/html/index.html +308 -0
  59. data/html/js/darkfish.js +84 -0
  60. data/html/js/navigation.js +105 -0
  61. data/html/js/navigation.js.gz +0 -0
  62. data/html/js/search.js +110 -0
  63. data/html/js/search_index.js +1 -0
  64. data/html/js/search_index.js.gz +0 -0
  65. data/html/js/searcher.js +229 -0
  66. data/html/js/searcher.js.gz +0 -0
  67. data/html/table_of_contents.html +409 -0
  68. data/lib/completion/hook_completion.bash +22 -0
  69. data/lib/completion/hook_completion.fish +31 -0
  70. data/lib/completion/hook_completion.zsh +22 -0
  71. data/lib/helpers/fuzzyfilefinder +0 -0
  72. data/lib/hook.rb +5 -1
  73. data/lib/hook/hookapp.rb +489 -0
  74. data/lib/hook/hooker.rb +1 -344
  75. data/lib/hook/markdown_document_listener.rb +164 -0
  76. data/lib/hook/string.rb +60 -0
  77. data/lib/hook/version.rb +3 -1
  78. metadata +76 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a875858589f000f0828cf170f68c6b0f13db7f3d2a10965fc08a76ee4fceb848
4
- data.tar.gz: f2cff5c74c4dd9599d83faaa0f0723c5106b13f3bcb7c2726c9c750035fdf783
3
+ metadata.gz: 140e12bcd6c966d67987a6e9d43720e375857fb3020187909c99e36768be2d20
4
+ data.tar.gz: 0ef610377cc5663ea2541e99b0151ca6d57b141e450718fa949631b13ec1765a
5
5
  SHA512:
6
- metadata.gz: 977e7ddc4b1a2d5a99a9d7df21a614439c29cab22bdf1835d7e3ab68d819f7e69b06035a1d6064669dda7fe30f4af1d57d6c553e1bdf3cc8a2d4bebd329f45ce
7
- data.tar.gz: 8eb0ee4b2cf9117133b04a0cbc3847f090365adac5b13ee79a38eb3e55e4e28eba5d1d37905ac82a478fa9b3f3d984e95343372706405eb98891281299163bfe
6
+ metadata.gz: ab3a1efee12abc0a04c324ddeae36aea9f2482b4ef5dcf9932432009160f574fac6d2162ca099e4f6ac91a621651977d3ea5125af69bef133b5c4762ee4b68a8
7
+ data.tar.gz: ab2aef4f340692d566116248a89f70587f50e93f6c2222fd48f6f1b7253b3e06123383b3cb5090679f126c238bed5f992a8164574f0a8df98ab1c39c82d80b87
data/.gitignore CHANGED
@@ -1,2 +1,4 @@
1
1
  *.test
2
2
  pkg
3
+ vendor
4
+ *.bak
@@ -1,3 +1,17 @@
1
+ #### 2.0.3
2
+
3
+ - Incorporate `fzf` for selecting and filtering hooks
4
+ - Improve documentation
5
+ - Add `scripts` command to output completion scripts for various shells7
6
+ - If no search is provided to `hook find`, list all hooks
7
+ - If no file is provided to `hook ls`, list all hooks
8
+
9
+
10
+ #### 2.0.0
11
+
12
+ - Revamped to use Hook 2.0 AppleScript syntax
13
+ - Added `find` command to search bookmarks
14
+
1
15
  #### 0.0.6
2
16
 
3
17
  - Fix missing variable in clipboard functions
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source 'https://rubygems.org'
1
+ source 'http://rubygems.org'
2
2
  gemspec
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hookapp (0.0.7)
4
+ hookapp (2.0.3)
5
5
  gli (= 2.19.0)
6
6
 
7
7
  GEM
8
- remote: https://rubygems.org/
8
+ remote: http://rubygems.org/
9
9
  specs:
10
10
  activesupport (6.0.3.2)
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -0,0 +1,31 @@
1
+ ## Credits
2
+
3
+ HookApp embeds [Fuzzy Finder](https://github.com/junegunn/fzf) under the [MIT License](https://github.com/junegunn/fzf/blob/master/LICENSE)
4
+
5
+ HookApp is based on [GLI](https://github.com/davetron5000/gli) for building command line applications in Ruby. [Apache License](https://github.com/davetron5000/gli/blob/main/LICENSE.txt).
6
+
7
+ ## HookApp License
8
+
9
+ This software is licensed under the MIT License.
10
+
11
+ The MIT License (MIT)
12
+
13
+ Copyright (c) 2013-2020 Junegunn Choi
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights
18
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ copies of the Software, and to permit persons to whom the Software is
20
+ furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in
23
+ all copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
31
+ THE SOFTWARE.
@@ -0,0 +1,80 @@
1
+ ## Installation
2
+
3
+ `gem install hookapp`.
4
+
5
+ If you're on a stock Ruby install (i.e. have never installed `rvm` or `rbenv`), you may need sudo and your system password: `sudo gem install hookapp`.
6
+
7
+ ## Usage
8
+
9
+ Run `hook help` for usage.
10
+
11
+ ```nohighlight
12
+ NAME
13
+ hook - CLI interface for Hook.app (macOS)
14
+
15
+ SYNOPSIS
16
+ hook [global options] command [command options] [arguments...]
17
+
18
+ VERSION
19
+ 0.0.1
20
+
21
+ GLOBAL OPTIONS
22
+ --help - Show this message
23
+ --version - Display the program version
24
+
25
+ COMMANDS
26
+ clip, cp - Copy Hook URL for file/url to clipboard
27
+ clone - Clone all hooks from one file or url onto another
28
+ find, search - Search bookmarks
29
+ from - Get a Hook URL for the frontmost window of an app
30
+ help - Shows a list of commands or help for one command
31
+ link, ln - Create bidirectional hooks between two or more
32
+ files/urls
33
+ list, ls - List hooks on a file or url
34
+ open, gui - Open the specified file or url in Hook GUI
35
+ remove, rm - Remove a hook between two files/urls
36
+ scripts - Shell completion examples
37
+ select - Select from hooks on a file/url and open in default
38
+ application
39
+ ```
40
+
41
+ Run `hook help COMMAND` on any of the commands for more details.
42
+
43
+ ## Basics
44
+
45
+ ### Creating hooks
46
+
47
+ The `link` command always creates bidirectional hooks. Give it two or more files or urls and it will create links between them. By default it links all files to the last file in the list. Add the `--all` flag to link all files to every other file in the list. This can be abbreviated as `hook ln -a file1.md file2.pdf "https://brettterpstra.com"`.
48
+
49
+ Similar to the way you would use the GUI, you can use `hook clip file1.md` to copy a Hook URL to the clipboard (aliased as `cp`), and then use `hook ln -p file2.pdf` to create a link from the clipboard to `file2.pdf`.
50
+
51
+ You can also clone all of the links on one file to another, great for adding a new file to a group that's fully crosslinked. Just use `hook clone file1.md file2.pdf`.
52
+
53
+ ### Listing hooks
54
+
55
+ Use the `list` (aliased as `ls`) command to list all attached hooks for a file. With no output format specified, `ls` will show the paths to all hooks, or the hook url if the hook doesn't have a file path (e.g. a URL). You can specify an output format using `--output_format` (abbreviated as `-o`) with one of "markdown", "hooks", "paths", or "verbose". Formats can be abbreviated to their first letter, so to display a Markdown list of all hooked files, use `hook ls -o m file1.md`.
56
+
57
+ ### Removing hooks
58
+
59
+ Use `hook remove file1.md file2.pdf` to remove the bidirectional link between `file1.md` and `file2.pdf`. Add the `--all` flag (abbr. `-a`) with one or more files to remove ALL the hooks on them. This option requires confirmation.
60
+
61
+ #### Super nerdy scripting trick
62
+
63
+ The `--output_format=paths` option (abbr. `-o p`) combined with the `--files_only` flag (abbr. `-f`) will list just the paths and only include hooks that have file paths (i.e. exclude web, email, and other URLs). This can be combined with `--null` to output the list using a NULL separator, perfect for use with `xargs` or other command line tools.
64
+
65
+ ### Acting on hooks
66
+
67
+ You can open a hooked file or URL by running `hook select file1.md`. This will display a menu of all the hooks on `file1.md`, and entering the number of a selection will open that file in its default application.
68
+
69
+ You can also open a file in the Hook GUI using `hook open file1.md`.
70
+
71
+ ### Searching hooks
72
+
73
+ Use `hook find` (or `hook search`) and a search string to find bookmarks containing that string in the title, path, or url. Use `hook find -n` to search bookmark names only. All of the options from `hook ls`/`hook list` (output format, files only, null separator, etc.) work with `find`/`search`. See `hook help find` for details.
74
+
75
+ `hook find` with no search string will list all bookmarks. This can be used with the same output options as `hook ls`.
76
+
77
+ ### Shell completion
78
+
79
+ Use `hook scripts [SHELL]` to output a completion script for your specified shell (currently `bash`, `zsh`, or `fish` are available). The comment at the top of the output will guide you to install and utilize the script.
80
+
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
- # hookapp
1
+ # hook CLI
2
2
 
3
- A CLI for Hook.app on macOS.
3
+ CLI interface for Hook.app (macOS)
4
+
5
+ > Hook.app is a productivity tool for macOS <https://hookproductivity.com/>. This gem includes a `hook` binary that allows interaction with the features of Hook.app.
6
+
7
+ *v2.0.3*
4
8
 
5
9
  ## Installation
6
10
 
@@ -12,29 +16,35 @@ If you're on a stock Ruby install (i.e. have never installed `rvm` or `rbenv`),
12
16
 
13
17
  Run `hook help` for usage.
14
18
 
15
- NAME
16
- hook - CLI interface for Hook.app (macOS)
19
+ ```nohighlight
20
+ NAME
21
+ hook - CLI interface for Hook.app (macOS)
17
22
 
18
- SYNOPSIS
19
- hook [global options] command [command options] [arguments...]
23
+ SYNOPSIS
24
+ hook [global options] command [command options] [arguments...]
20
25
 
21
- VERSION
22
- 0.0.1
26
+ VERSION
27
+ 0.0.1
23
28
 
24
- GLOBAL OPTIONS
25
- --help - Show this message
26
- --version - Display the program version
29
+ GLOBAL OPTIONS
30
+ --help - Show this message
31
+ --version - Display the program version
27
32
 
28
- COMMANDS
29
- clip, cp - Copy Hook URL for file/url to clipboard
30
- clone - Clone all hooks from one file or url onto another
31
- from - Get a Hook URL for the frontmost window of an app
32
- help - Shows a list of commands or help for one command
33
- link, ln - Create bidirectional hooks between two or more files/urls
34
- list, ls - List hooks on a file or url
35
- open, gui - Open the specified file or url in Hook GUI
36
- remove, rm - Remove a hook between two files/urls
37
- select - Select from hooks on a file/url and open in default application
33
+ COMMANDS
34
+ clip, cp - Copy Hook URL for file/url to clipboard
35
+ clone - Clone all hooks from one file or url onto another
36
+ find, search - Search bookmarks
37
+ from - Get a Hook URL for the frontmost window of an app
38
+ help - Shows a list of commands or help for one command
39
+ link, ln - Create bidirectional hooks between two or more
40
+ files/urls
41
+ list, ls - List hooks on a file or url
42
+ open, gui - Open the specified file or url in Hook GUI
43
+ remove, rm - Remove a hook between two files/urls
44
+ scripts - Shell completion examples
45
+ select - Select from hooks on a file/url and open in default
46
+ application
47
+ ```
38
48
 
39
49
  Run `hook help COMMAND` on any of the commands for more details.
40
50
 
@@ -66,3 +76,254 @@ You can open a hooked file or URL by running `hook select file1.md`. This will d
66
76
 
67
77
  You can also open a file in the Hook GUI using `hook open file1.md`.
68
78
 
79
+ ### Searching hooks
80
+
81
+ Use `hook find` (or `hook search`) and a search string to find bookmarks containing that string in the title, path, or url. Use `hook find -n` to search bookmark names only. All of the options from `hook ls`/`hook list` (output format, files only, null separator, etc.) work with `find`/`search`. See `hook help find` for details.
82
+
83
+ `hook find` with no search string will list all bookmarks. This can be used with the same output options as `hook ls`.
84
+
85
+ ### Shell completion
86
+
87
+ Use `hook scripts [SHELL]` to output a completion script for your specified shell (currently `bash`, `zsh`, or `fish` are available). The comment at the top of the output will guide you to install and utilize the script.
88
+
89
+
90
+ ## Global Options
91
+
92
+ ### `--help`
93
+
94
+ Show this message
95
+
96
+ ### `--version`
97
+
98
+ Display the program version
99
+
100
+ ## Commands
101
+
102
+ ### `$ hook` <mark>`clip|cp`</mark> ` FILE_OR_URL`
103
+
104
+ *Copy Hook URL for file/url to clipboard*
105
+
106
+ > Creates a bookmark for the specified file or URL and copies its Hook URL to the clipboard.
107
+ >
108
+ > The copied Hook URL can be used to link to other files (use `hook link --paste FILE/URL),
109
+ > or to paste into another app as a link. Use the -m flag to copy a full Markdown link.
110
+
111
+ #### Options
112
+
113
+ ##### `-a` | `--app` APP_NAME
114
+
115
+ Copy from application
116
+
117
+ ##### `-m`|`--markdown`
118
+
119
+ Copy as Markdown
120
+
121
+ * * * * * *
122
+
123
+ ### `$ hook` <mark>`clone`</mark> ` SOURCE TARGET`
124
+
125
+ *Clone all hooks from one file or url onto another*
126
+
127
+ > Copy all the files and urls that the first file is hooked to onto another file. Exactly two arguments (SOURCE, TARGET) required.
128
+
129
+ * * * * * *
130
+
131
+ ### `$ hook` <mark>`find|search`</mark> ` SEARCH_STRING`
132
+
133
+ *Search bookmarks*
134
+
135
+ > Search bookmark urls and names for a string and output in specified format (default "paths").
136
+ >
137
+ > Run `hook find` with no search argument to list all bookmarks.
138
+
139
+ #### Options
140
+
141
+ ##### `-o` | `--output_format` format
142
+
143
+ Output format [(h)ooks, (p)aths, (m)arkdown, (v)erbose]
144
+
145
+ *Default Value:* `paths`
146
+
147
+ ##### `-f`|`--files_only`
148
+
149
+ Output only bookmarks with file paths (exclude e.g. emails)
150
+
151
+ ##### `-n`|`--names_only`
152
+
153
+ Search only bookmark names
154
+
155
+ ##### `--null`
156
+
157
+ Separate results with NULL separator, only applies with "paths" output for single file argument
158
+
159
+ * * * * * *
160
+
161
+ ### `$ hook` <mark>`from`</mark> ` APPLICATION_NAME`
162
+
163
+ *Get a Hook URL for the frontmost window of an app*
164
+
165
+ > Specify an application by name (without '.app') to bring that app to the foreground and create a bookmark
166
+ > for the active document, note, task, etc., returning a Hook URL.
167
+ >
168
+ > Use -m to get the response as Markdown, and/or -c to copy the result directly to the clipboard.
169
+
170
+ #### Options
171
+
172
+ ##### `-c`|`--copy`
173
+
174
+ Copy to clipboard
175
+
176
+ ##### `-m`|`--markdown`
177
+
178
+ Output as Markdown
179
+
180
+ * * * * * *
181
+
182
+ ### `$ hook` <mark>`help`</mark> ` command`
183
+
184
+ *Shows a list of commands or help for one command*
185
+
186
+ > Gets help for the application or its commands. Can also list the commands in a way helpful to creating a bash-style completion function
187
+
188
+ #### Options
189
+
190
+ ##### `-c`
191
+
192
+ List commands one per line, to assist with shell completion
193
+
194
+ * * * * * *
195
+
196
+ ### `$ hook` <mark>`link|ln`</mark> ` SOURCE [SOURCE...] TARGET`
197
+
198
+ *Create bidirectional hooks between two or more files/urls*
199
+
200
+ > If two files/urls are provided, links will be bi-directional.
201
+ > If three or more are provided, `link` defaults to creating bi-directional
202
+ > links between each file and the last file in the list. Use `-a` to create
203
+ > bi-directional links between every file in the list.
204
+ >
205
+ > If using `--paste`, the URL/hook link in the clipboard will be used as one argument,
206
+ > to be combined with one or more file/url arguments.
207
+
208
+ #### Options
209
+
210
+ ##### `-a`|`--all`
211
+
212
+ Link every listed file or url to every other
213
+
214
+ ##### `-p`|`--paste`
215
+
216
+ Paste URL from clipboard
217
+
218
+ * * * * * *
219
+
220
+ ### `$ hook` <mark>`list|ls`</mark> ` FILE_OR_URL [FILE_OR_URL...]`
221
+
222
+ *List hooks on a file or url*
223
+
224
+ > Output a list of all hooks attached to given url(s) or file(s) in the specified format (default "paths").
225
+ >
226
+ > Run `hook list` with no file/url argument to list all bookmarks.
227
+
228
+ #### Options
229
+
230
+ ##### `-o` | `--output_format` format
231
+
232
+ Output format [(h)ooks, (p)aths, (m)arkdown, (v)erbose]
233
+
234
+ *Default Value:* `paths`
235
+
236
+ ##### `-f`|`--files_only`
237
+
238
+ Output only bookmarks with file paths (exclude e.g. emails)
239
+
240
+ ##### `--null`
241
+
242
+ Separate results with NULL separator, only applies with "paths" output for single file argument
243
+
244
+ ##### `-s`|`--[no-]select`
245
+
246
+ Generate a menu to select hook(s) for opening
247
+
248
+ > This option is a shortcut to `hook select` and overrides any other arguments.
249
+
250
+ * * * * * *
251
+
252
+ ### `$ hook` <mark>`open|gui`</mark> ` FILE_OR_URL`
253
+
254
+ *Open the specified file or url in Hook GUI*
255
+
256
+ > Opens Hook.app on the specified file/URL for browsing and performing actions. Exactly one argument (File/URL) required.
257
+
258
+ * * * * * *
259
+
260
+ ### `$ hook` <mark>`remove|rm`</mark> ` ITEM_1 ITEM_2`
261
+
262
+ *Remove a hook between two files/urls*
263
+
264
+ > Remove a hook between two files or URLs. If you use --all, all hooks on a given file will be removed.
265
+ >
266
+ > If --all isn't specified, exactly two arguments (Files/URLs) are required.
267
+
268
+ #### Options
269
+
270
+ ##### `-a`|`--all`
271
+
272
+ Remove ALL links on files, requires confirmation
273
+
274
+ * * * * * *
275
+
276
+ ### `$ hook` <mark>`scripts`</mark> ` SHELL`
277
+
278
+ *Shell completion examples*
279
+
280
+ > Output completion script example for the specified shell (bash, zsh, fish)
281
+
282
+ * * * * * *
283
+
284
+ ### `$ hook` <mark>`select`</mark> ` FILE_OR_URL`
285
+
286
+ *Select from hooks on a file/url and open in default application*
287
+
288
+ > If the target file/URL has hooked items, a menu will be provided. Selecting one or more files
289
+ > from this menu will open the item(s) using the default application assigned to the
290
+ > filetype by macOS. Allows multiple selections with tab key, and type-ahead fuzzy filtering of results.
291
+
292
+ * * * * * *
293
+
294
+ #### [Default Command] help
295
+ ## Credits
296
+
297
+ HookApp embeds [Fuzzy Finder](https://github.com/junegunn/fzf) under the [MIT License](https://github.com/junegunn/fzf/blob/master/LICENSE)
298
+
299
+ HookApp is based on [GLI](https://github.com/davetron5000/gli) for building command line applications in Ruby. [Apache License](https://github.com/davetron5000/gli/blob/main/LICENSE.txt).
300
+
301
+ ## HookApp License
302
+
303
+ This software is licensed under the MIT License.
304
+
305
+ The MIT License (MIT)
306
+
307
+ Copyright (c) 2013-2020 Junegunn Choi
308
+
309
+ Permission is hereby granted, free of charge, to any person obtaining a copy
310
+ of this software and associated documentation files (the "Software"), to deal
311
+ in the Software without restriction, including without limitation the rights
312
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
313
+ copies of the Software, and to permit persons to whom the Software is
314
+ furnished to do so, subject to the following conditions:
315
+
316
+ The above copyright notice and this permission notice shall be included in
317
+ all copies or substantial portions of the Software.
318
+
319
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
320
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
321
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
322
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
323
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
324
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
325
+ THE SOFTWARE.
326
+
327
+
328
+ Documentation generated 2020-11-11 09:29
329
+