hookapp 2.0.3 → 2.0.8
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/AUTHORS.md +4 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +49 -66
- data/LICENSE +21 -0
- data/README.md +52 -19
- data/Rakefile +7 -3
- data/bin/hook +114 -78
- data/buildnotes.md +30 -0
- data/hook.rdoc +35 -11
- data/hookapp.gemspec +2 -2
- data/html/App.html +6 -18
- data/html/GLI/Commands/Doc.html +2 -10
- data/html/GLI/Commands/MarkdownDocumentListener.html +34 -230
- data/html/GLI/Commands.html +2 -10
- data/html/GLI.html +2 -10
- data/html/Hook.html +2 -15
- data/html/HookApp.html +99 -319
- data/html/Hooker.html +46 -24
- data/html/README_rdoc.html +49 -23
- data/html/String.html +28 -120
- data/html/created.rid +8 -8
- data/html/css/rdoc.css +21 -1
- data/html/index.html +38 -29
- data/html/js/navigation.js.gz +0 -0
- data/html/js/search_index.js +1 -1
- data/html/js/search_index.js.gz +0 -0
- data/html/js/searcher.js.gz +0 -0
- data/html/table_of_contents.html +33 -77
- data/lib/helpers/fuzzyfilefinder +0 -0
- data/lib/hook/hookapp.rb +39 -21
- data/lib/hook/hooker.rb +5 -2
- data/lib/hook/markdown_document_listener.rb +12 -2
- data/lib/hook/string.rb +4 -0
- data/lib/hook/version.rb +1 -1
- data/lib/hook.rb +5 -4
- data/test/helpers/hook-helpers.rb +76 -0
- data/test/hook_clip_test.rb +24 -0
- data/test/hook_clone_test.rb +30 -0
- data/test/hook_encode_test.rb +30 -0
- data/test/hook_link_test.rb +39 -0
- data/test/hook_list_test.rb +25 -0
- data/test/hook_remove_test.rb +34 -0
- data/test/hook_scripts_test.rb +21 -0
- metadata +19 -22
- data/test/default_test.rb +0 -14
- data/test/hookfiles/01.test +0 -0
- data/test/hookfiles/02.test +0 -0
- data/test/hookfiles/03.test +0 -0
- data/test/hookfiles/04.test +0 -0
- data/test/hookfiles/05.test +0 -0
- data/test/hookfiles/06.test +0 -0
- data/test/hookfiles/07.test +0 -0
- data/test/hookfiles/08.test +0 -0
- data/test/hookfiles/09.test +0 -0
- data/test/hookfiles/10.test +0 -0
- data/test/hookfiles/11.test +0 -0
- data/test/hookfiles/12.test +0 -0
data/lib/hook/hookapp.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'shellwords'
|
4
4
|
require 'uri'
|
5
5
|
# Hook.app functions
|
6
|
-
|
6
|
+
class HookApp
|
7
7
|
# Create a single regex for validation of an
|
8
8
|
# array by first char or full match.
|
9
9
|
def format_regex(options)
|
@@ -171,9 +171,9 @@ module HookApp
|
|
171
171
|
output = output_array(result, opts)
|
172
172
|
|
173
173
|
if opts[:format] =~ /^v/
|
174
|
-
"Search results for: #{search}\n---------\n" + output.join("\n")
|
174
|
+
"Search results for: #{search}\n---------\n" + output.join("\n") if output
|
175
175
|
else
|
176
|
-
output.join(separator)
|
176
|
+
output.join(separator) if output
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
@@ -233,7 +233,8 @@ module HookApp
|
|
233
233
|
raise "Error processing available hooks" if options.empty?
|
234
234
|
|
235
235
|
args = ['--layout=reverse-list',
|
236
|
-
'--header="esc: cancel, tab: multi-select, return: open
|
236
|
+
'--header="esc: cancel, tab: multi-select, ctrl-a: select all, return: open"',
|
237
|
+
'--bind ctrl-a:select-all',
|
237
238
|
'--prompt=" Select hooks > "',
|
238
239
|
'--multi',
|
239
240
|
'--tabstop=4',
|
@@ -246,16 +247,12 @@ module HookApp
|
|
246
247
|
fzf = File.join(File.dirname(__FILE__), '../helpers/fuzzyfilefinder')
|
247
248
|
|
248
249
|
sel = `echo #{Shellwords.escape(options.join("\n"))} | '#{fzf}' #{args.join(' ')}`.chomp
|
249
|
-
res = sel.split(/\n/).map
|
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 @@ module HookApp
|
|
281
278
|
warn "No hooks found for #{url}"
|
282
279
|
else
|
283
280
|
res = select_hook(marks)
|
284
|
-
res.
|
285
|
-
|
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 @@ module HookApp
|
|
334
333
|
end
|
335
334
|
|
336
335
|
# Delete all hooked files/urls from target file
|
337
|
-
def delete_all_hooks(url)
|
338
|
-
|
339
|
-
|
340
|
-
|
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 @@ module 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 @@ module 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 @@ module HookApp
|
|
479
481
|
end
|
480
482
|
end
|
481
483
|
else
|
482
|
-
|
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
@@ -15,6 +15,7 @@ module GLI
|
|
15
15
|
@io = File.new('README.md', 'w')
|
16
16
|
@nest = '#'
|
17
17
|
@arg_name_formatter = GLI::Commands::HelpModules::ArgNameFormatter.new
|
18
|
+
@parent_command = []
|
18
19
|
end
|
19
20
|
|
20
21
|
def beginning
|
@@ -26,6 +27,12 @@ module GLI
|
|
26
27
|
@io.puts IO.read('CREDITS.md')
|
27
28
|
@io.puts
|
28
29
|
end
|
30
|
+
|
31
|
+
if File.exist?('AUTHORS.md')
|
32
|
+
@io.puts IO.read('AUTHORS.md')
|
33
|
+
@io.puts
|
34
|
+
end
|
35
|
+
|
29
36
|
if File.exist?('LICENSE.md')
|
30
37
|
@io.puts IO.read('LICENSE.md')
|
31
38
|
@io.puts
|
@@ -89,7 +96,7 @@ module GLI
|
|
89
96
|
name = "[no-]#{name}" if name.to_s.length > 1
|
90
97
|
aliases = aliases.map { |_| _.to_s.length > 1 ? "[no-]#{_}" : _ }
|
91
98
|
end
|
92
|
-
invocations = ([name] + aliases).map { |_| "`" + add_dashes(_) + "`" }.join('|')
|
99
|
+
invocations = ([name] + aliases).map { |_| "`" + add_dashes(_).strip + "`" }.join('|')
|
93
100
|
@io.puts header("#{invocations}", 2)
|
94
101
|
@io.puts
|
95
102
|
@io.puts String(desc).strip
|
@@ -109,8 +116,10 @@ module GLI
|
|
109
116
|
|
110
117
|
# Gives you a command in the current context and creates a new context of this command
|
111
118
|
def command(name, aliases, desc, long_desc, arg_name, arg_options)
|
119
|
+
@parent_command.push ([name] + aliases).join('|')
|
112
120
|
arg_name_fmt = @arg_name_formatter.format(arg_name, arg_options, [])
|
113
|
-
|
121
|
+
arg_name_fmt = " `#{arg_name_fmt.strip}`" if arg_name_fmt
|
122
|
+
@io.puts header("`$ #{@exe}` <mark>`#{@parent_command.join(' ')}`</mark>#{arg_name_fmt}", 1)
|
114
123
|
@io.puts
|
115
124
|
@io.puts "*#{String(desc).strip}*"
|
116
125
|
@io.puts
|
@@ -121,6 +130,7 @@ module GLI
|
|
121
130
|
|
122
131
|
# Ends a command, and "pops" you back up one context
|
123
132
|
def end_command(_name)
|
133
|
+
@parent_command.pop
|
124
134
|
decrement_nest
|
125
135
|
@io.puts "* * * * * *\n\n" unless @nest.size > 2
|
126
136
|
end
|
data/lib/hook/string.rb
CHANGED
data/lib/hook/version.rb
CHANGED
data/lib/hook.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'hook/version
|
3
|
+
require 'hook/version'
|
4
4
|
require 'shellwords'
|
5
5
|
require 'cgi'
|
6
|
-
require '
|
7
|
-
require 'hook/
|
8
|
-
require 'hook/
|
6
|
+
require 'gli'
|
7
|
+
require 'hook/string'
|
8
|
+
require 'hook/hookapp'
|
9
|
+
require 'hook/hooker'
|
9
10
|
require 'hook/markdown_document_listener'
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'open3'
|
3
|
+
|
4
|
+
class ::Numeric
|
5
|
+
def pad_to(x)
|
6
|
+
"%0#{x.to_i}d" % self
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
module HookHelpers
|
11
|
+
HOOK_EXEC = File.join(File.dirname(__FILE__), '..', '..', 'bin', 'hook')
|
12
|
+
HOOK_FILES_DIR = File.join(File.dirname(__FILE__), '..', 'hookfiles')
|
13
|
+
HOOK_COMPLETIONS_DIR = File.join(File.dirname(__FILE__), '..', '..', 'lib', 'completion')
|
14
|
+
|
15
|
+
def create_temp_files
|
16
|
+
FileUtils.mkdir_p HOOK_FILES_DIR
|
17
|
+
10.times.with_index do |i|
|
18
|
+
new_file = File.join(HOOK_FILES_DIR, i.pad_to(2) + '.md')
|
19
|
+
File.open(new_file, 'w') do |f|
|
20
|
+
f.puts ("Hook Test File ##{i}")
|
21
|
+
end
|
22
|
+
hook('rm', '-a', '-f', new_file)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def clean_temp_files
|
27
|
+
FileUtils.rm_r HOOK_FILES_DIR, force: true
|
28
|
+
end
|
29
|
+
|
30
|
+
def assert_count_links(file, count, msg)
|
31
|
+
res = hook('ls', file).strip
|
32
|
+
|
33
|
+
links = res == 'No bookmarks' ? 0 : res.split(/\n/).size
|
34
|
+
|
35
|
+
assert_equal(count, links, msg)
|
36
|
+
end
|
37
|
+
|
38
|
+
def assert_links_include(file, pattern, msg)
|
39
|
+
result = hook('ls', file).strip
|
40
|
+
assert_match(/#{pattern}/, result, msg)
|
41
|
+
end
|
42
|
+
|
43
|
+
def hook(*args)
|
44
|
+
hook_with_env({}, *args)
|
45
|
+
end
|
46
|
+
|
47
|
+
def hook_with_stdin(input, *args)
|
48
|
+
pread_stdin({}, input, HOOK_EXEC, *args)
|
49
|
+
end
|
50
|
+
|
51
|
+
def hook_with_env(env, *args)
|
52
|
+
pread(env, HOOK_EXEC, *args)
|
53
|
+
end
|
54
|
+
|
55
|
+
def pread_stdin(env, input, *cmd)
|
56
|
+
out, err, status = Open3.capture3(env, 'bundle', 'exec', *cmd, :stdin_data => input)
|
57
|
+
unless status.success?
|
58
|
+
raise [
|
59
|
+
"Error (#{status}): #{cmd.inspect} failed", "STDOUT:", out.inspect, "STDERR:", err.inspect
|
60
|
+
].join("\n")
|
61
|
+
end
|
62
|
+
|
63
|
+
out
|
64
|
+
end
|
65
|
+
|
66
|
+
def pread(env, *cmd)
|
67
|
+
out, err, status = Open3.capture3(env, 'bundle', 'exec', *cmd)
|
68
|
+
unless status.success?
|
69
|
+
raise [
|
70
|
+
"Error (#{status}): #{cmd.inspect} failed", "STDOUT:", out.inspect, "STDERR:", err.inspect
|
71
|
+
].join("\n")
|
72
|
+
end
|
73
|
+
|
74
|
+
out
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'hook-helpers'
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
class ClipTest < Test::Unit::TestCase
|
5
|
+
include HookHelpers
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@basedir = HOOK_FILES_DIR
|
9
|
+
create_temp_files
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
clean_temp_files
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_clip
|
17
|
+
file = Dir.glob(File.join(HOOK_FILES_DIR, '*.md'))[0]
|
18
|
+
# Clear clipboard
|
19
|
+
`echo -n | pbcopy`
|
20
|
+
hook('clip', file)
|
21
|
+
clipboard = `pbpaste`.strip
|
22
|
+
assert_match(/^hook:.*?#{File.basename(file)}$/, clipboard, 'Clipboard should contain link to first file')
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'hook-helpers'
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
class CloneTest < Test::Unit::TestCase
|
5
|
+
include HookHelpers
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@basedir = HOOK_FILES_DIR
|
9
|
+
create_temp_files
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
clean_temp_files
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_clone
|
17
|
+
count = 3
|
18
|
+
|
19
|
+
files = Dir.glob(File.join(HOOK_FILES_DIR, '*.md'))
|
20
|
+
|
21
|
+
# Link all files to last file
|
22
|
+
hook('link', *files[0..count - 1])
|
23
|
+
links = hook('ls', files[count - 1]).strip
|
24
|
+
|
25
|
+
hook('clone', files[count-1], files[count])
|
26
|
+
cloned_links = hook('ls', files[count]).strip
|
27
|
+
|
28
|
+
assert_match(links, cloned_links, "#{files[count - 1]} links should match #{files[count]} links")
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'hook-helpers'
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
class EncodeTest < Test::Unit::TestCase
|
5
|
+
include HookHelpers
|
6
|
+
|
7
|
+
def setup
|
8
|
+
end
|
9
|
+
|
10
|
+
def teardown
|
11
|
+
end
|
12
|
+
|
13
|
+
# # FIXME: I don't know why this isn't getting output
|
14
|
+
# def test_encode_args
|
15
|
+
# result = hook('percent', 'encode', %(here's a "string?"))
|
16
|
+
# assert_match(/here%27s%20a%20%22string%3F%22/, result, 'URL encoded string should match')
|
17
|
+
# end
|
18
|
+
|
19
|
+
def test_encode_stdin
|
20
|
+
result = pread_stdin({}, %(here's a "string?"), HOOK_EXEC, 'percent', 'encode')
|
21
|
+
assert_match(/here%27s%20a%20%22string%3F%22/, result, 'URL encoded string should match')
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_encode_decode_stdin
|
25
|
+
original_string = %(here's a "string?")
|
26
|
+
encoded = pread_stdin({}, original_string, HOOK_EXEC, 'percent', 'encode')
|
27
|
+
decoded = pread_stdin({}, encoded, HOOK_EXEC, 'percent', 'decode')
|
28
|
+
assert_match(decoded, original_string, 'URL encoded string should match')
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'hook-helpers'
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
class LinkTest < Test::Unit::TestCase
|
5
|
+
include HookHelpers
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@basedir = HOOK_FILES_DIR
|
9
|
+
create_temp_files
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
clean_temp_files
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_link
|
17
|
+
count = 3
|
18
|
+
|
19
|
+
files = Dir.glob(File.join(HOOK_FILES_DIR, '*.md'))[0..(count - 1)]
|
20
|
+
|
21
|
+
# Link all files to last file
|
22
|
+
hook('link', *files)
|
23
|
+
|
24
|
+
assert_count_links(files[-1], count - 1, "Last file should have #{count - 1} links")
|
25
|
+
assert_count_links(files[0], 1, 'First file should have 1 link')
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_bi_link
|
29
|
+
count = 3
|
30
|
+
|
31
|
+
files = Dir.glob(File.join(HOOK_FILES_DIR, '*.md'))[0..(count - 1)]
|
32
|
+
|
33
|
+
# Link all files bi-directionally
|
34
|
+
hook('link', '-a', *files)
|
35
|
+
|
36
|
+
assert_count_links(files[-1], count - 1, "Last file should have #{count - 1} links")
|
37
|
+
assert_count_links(files[0], count - 1, "First file should have #{count - 1} links")
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'hook-helpers'
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
class ListTest < Test::Unit::TestCase
|
5
|
+
include HookHelpers
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@basedir = HOOK_FILES_DIR
|
9
|
+
create_temp_files
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
clean_temp_files
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_list
|
17
|
+
count = 2
|
18
|
+
files = Dir.glob(File.join(HOOK_FILES_DIR, '*.md'))[0..(count - 1)]
|
19
|
+
# Link all files to last file
|
20
|
+
hook('link', *files)
|
21
|
+
|
22
|
+
assert_count_links(files[-1], count - 1, "Last file should have #{count - 1} links")
|
23
|
+
assert_links_include(files[-1], File.basename(files[0]), 'Links on last file should include first file')
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'hook-helpers'
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
class RemoveTest < Test::Unit::TestCase
|
5
|
+
include HookHelpers
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@basedir = HOOK_FILES_DIR
|
9
|
+
create_temp_files
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
clean_temp_files
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_remove
|
17
|
+
count = 5
|
18
|
+
|
19
|
+
files = Dir.glob(File.join(HOOK_FILES_DIR, '*.md'))[0..(count - 1)]
|
20
|
+
|
21
|
+
# Link all files to last file
|
22
|
+
hook('link', *files)
|
23
|
+
|
24
|
+
assert_count_links(files[-1], count - 1, "Last file should start with #{count - 1} links")
|
25
|
+
|
26
|
+
hook('remove', files[-1], files[0])
|
27
|
+
|
28
|
+
assert_count_links(files[-1], count - 2, "Last file should have #{count - 2} links")
|
29
|
+
|
30
|
+
hook('remove', '--all', '--force', files[-1])
|
31
|
+
|
32
|
+
assert_count_links(files[-1], 0, "Last file should end with 0 links")
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'hook-helpers'
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
class ScriptsTest < Test::Unit::TestCase
|
5
|
+
include HookHelpers
|
6
|
+
|
7
|
+
def setup
|
8
|
+
end
|
9
|
+
|
10
|
+
def teardown
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_shell_scripts
|
14
|
+
%w[bash fish zsh].each do |sh|
|
15
|
+
source = IO.read(File.join(HOOK_COMPLETIONS_DIR, 'hook_completion.' + sh))
|
16
|
+
result = hook('scripts', sh)
|
17
|
+
|
18
|
+
assert_match(source, result, 'Script output should match')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hookapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brett Terpstra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aruba
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 6.
|
47
|
+
version: 6.3.2
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 6.
|
54
|
+
version: 6.3.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: gli
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.
|
61
|
+
version: 2.20.1
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.
|
68
|
+
version: 2.20.1
|
69
69
|
description:
|
70
70
|
email: me@brettterpstra.com
|
71
71
|
executables:
|
@@ -76,9 +76,11 @@ extra_rdoc_files:
|
|
76
76
|
- hook.rdoc
|
77
77
|
files:
|
78
78
|
- ".gitignore"
|
79
|
+
- AUTHORS.md
|
79
80
|
- CHANGELOG.md
|
80
81
|
- Gemfile
|
81
82
|
- Gemfile.lock
|
83
|
+
- LICENSE
|
82
84
|
- LICENSE.md
|
83
85
|
- OVERVIEW.md
|
84
86
|
- README.md
|
@@ -155,19 +157,14 @@ files:
|
|
155
157
|
- lib/hook/markdown_document_listener.rb
|
156
158
|
- lib/hook/string.rb
|
157
159
|
- lib/hook/version.rb
|
158
|
-
- test/
|
159
|
-
- test/
|
160
|
-
- test/
|
161
|
-
- test/
|
162
|
-
- test/
|
163
|
-
- test/
|
164
|
-
- test/
|
165
|
-
- test/
|
166
|
-
- test/hookfiles/08.test
|
167
|
-
- test/hookfiles/09.test
|
168
|
-
- test/hookfiles/10.test
|
169
|
-
- test/hookfiles/11.test
|
170
|
-
- test/hookfiles/12.test
|
160
|
+
- test/helpers/hook-helpers.rb
|
161
|
+
- test/hook_clip_test.rb
|
162
|
+
- test/hook_clone_test.rb
|
163
|
+
- test/hook_encode_test.rb
|
164
|
+
- test/hook_link_test.rb
|
165
|
+
- test/hook_list_test.rb
|
166
|
+
- test/hook_remove_test.rb
|
167
|
+
- test/hook_scripts_test.rb
|
171
168
|
- test/test_helper.rb
|
172
169
|
homepage: https://brettterpstra.com
|
173
170
|
licenses: []
|
@@ -193,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
190
|
- !ruby/object:Gem::Version
|
194
191
|
version: '0'
|
195
192
|
requirements: []
|
196
|
-
rubygems_version: 3.
|
193
|
+
rubygems_version: 3.2.16
|
197
194
|
signing_key:
|
198
195
|
specification_version: 4
|
199
196
|
summary: A CLI for Hook.app (macOS)
|
data/test/default_test.rb
DELETED
data/test/hookfiles/01.test
DELETED
File without changes
|
data/test/hookfiles/02.test
DELETED
File without changes
|
data/test/hookfiles/03.test
DELETED
File without changes
|
data/test/hookfiles/04.test
DELETED
File without changes
|
data/test/hookfiles/05.test
DELETED
File without changes
|
data/test/hookfiles/06.test
DELETED
File without changes
|
data/test/hookfiles/07.test
DELETED
File without changes
|
data/test/hookfiles/08.test
DELETED
File without changes
|
data/test/hookfiles/09.test
DELETED
File without changes
|
data/test/hookfiles/10.test
DELETED
File without changes
|
data/test/hookfiles/11.test
DELETED
File without changes
|
data/test/hookfiles/12.test
DELETED
File without changes
|