dk 0.1.0 → 0.1.1
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 +7 -7
- data/README.md +57 -3
- data/dk.gemspec +1 -1
- data/lib/dk.rb +3 -2
- data/lib/dk/local.rb +29 -0
- data/lib/dk/runner.rb +18 -6
- data/lib/dk/task.rb +6 -0
- data/lib/dk/test_runner.rb +9 -4
- data/lib/dk/version.rb +1 -1
- data/test/unit/local_tests.rb +43 -2
- data/test/unit/runner_tests.rb +16 -3
- data/test/unit/task_tests.rb +32 -0
- metadata +73 -60
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
---
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c14d5db8726cb02f2fd49b2925a6668c2ba4b2726f2bc8fe09930a59464e3bbf
|
4
|
+
data.tar.gz: 1e15c547e84c278fbe6f00bf3cd03ab87503fdf7cc7f88086389f8f72334da4d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 35fb927197d925fd5c67b46787a9ca696c048a0796c4cfc684f658e2ef728d379ae4291f6848de0de000c55857831c58c8517e3174ec55e988c134198604a036
|
7
|
+
data.tar.gz: b6ec29e8044f4921a0309a9e40f4ebddb173de26b00917bc3f0f8b6ecc0fa2ef1fc1b354a25d65f16dc6ec595629350d99e9abf8fbf894bc1506782b1a135bb0
|
data/README.md
CHANGED
@@ -30,6 +30,7 @@ Now route this task with a name so it can be run from the CLI:
|
|
30
30
|
```ruby
|
31
31
|
# in config/dk.rb or whatever
|
32
32
|
require 'dk'
|
33
|
+
require 'my_task'
|
33
34
|
|
34
35
|
Dk.configure do
|
35
36
|
|
@@ -46,6 +47,8 @@ my-task # my task that does something great
|
|
46
47
|
$ dk my-task
|
47
48
|
```
|
48
49
|
|
50
|
+
See [dk-abdeploy](https://github.com/redding/dk-abdeploy#usage) for another example using Dk tasks to deploy code.
|
51
|
+
|
49
52
|
### CLI
|
50
53
|
|
51
54
|
```
|
@@ -311,6 +314,8 @@ Each callback can be optionally configured with a set of params. Callbacks can
|
|
311
314
|
|
312
315
|
##### `ssh_hosts`
|
313
316
|
|
317
|
+
Use the `ssh_hosts` helper to set new ssh host lists values like you would on the main config:
|
318
|
+
|
314
319
|
```ruby
|
315
320
|
require 'dk/task'
|
316
321
|
|
@@ -331,10 +336,12 @@ class MyTask
|
|
331
336
|
end
|
332
337
|
```
|
333
338
|
|
334
|
-
|
339
|
+
Any subsequent tasks that are run will have these ssh hosts available to their `ssh` commands.
|
335
340
|
|
336
341
|
##### `run_task`
|
337
342
|
|
343
|
+
Use the `run_task` helper to run other tasks:
|
344
|
+
|
338
345
|
```ruby
|
339
346
|
require 'dk/task'
|
340
347
|
require 'my_other_task'
|
@@ -353,10 +360,12 @@ class MyTask
|
|
353
360
|
end
|
354
361
|
```
|
355
362
|
|
356
|
-
|
363
|
+
This method takes an optional set of param values. Any params given will be merged onto the global config params and made available to just the task being run.
|
357
364
|
|
358
365
|
##### `cmd`, `cmd!`
|
359
366
|
|
367
|
+
Use the `cmd` and `cmd!` helpers to run local system cmds:
|
368
|
+
|
360
369
|
```ruby
|
361
370
|
require 'dk/task'
|
362
371
|
|
@@ -371,10 +380,55 @@ class MyTask
|
|
371
380
|
end
|
372
381
|
```
|
373
382
|
|
374
|
-
|
383
|
+
Pass them a string system command to run and it runs it using [Scmd](https://github.com/redding/scmd). You can [optionally pass in an `:env` param](https://github.com/redding/scmd#environment-variables) with any ENV vars that need to be set. A `Dk::Local::Cmd` object is returned so you can access data such as the `stdout`, `stderr` and whether the command was successful or not.
|
375
384
|
|
376
385
|
The `cmd!` helper is identical to the `cmd` helper except that it raises a `Dk::Task::CmdRunError` if the command was not successful.
|
377
386
|
|
387
|
+
##### `start`
|
388
|
+
|
389
|
+
Use the `start` helper to asynchronously run a local system cmd:
|
390
|
+
|
391
|
+
```ruby
|
392
|
+
require 'dk/task'
|
393
|
+
|
394
|
+
class MyTask
|
395
|
+
include Dk::Task
|
396
|
+
|
397
|
+
def run!
|
398
|
+
# run, but don't block waiting on an exitstatus
|
399
|
+
server_cmd = start "bin/server"
|
400
|
+
|
401
|
+
server_cmd.running? # => true
|
402
|
+
server_cmd.pid # => 12345
|
403
|
+
server_cmd.exitstatus # => nil
|
404
|
+
|
405
|
+
# do other stuff...
|
406
|
+
|
407
|
+
server_cmd.wait # wait indefinitely until cmd exits
|
408
|
+
server_cmd.running? # => false
|
409
|
+
server_cmd.pid # => 12345
|
410
|
+
server_cmd.exitstatus # => 0
|
411
|
+
end
|
412
|
+
|
413
|
+
end
|
414
|
+
```
|
415
|
+
|
416
|
+
OR, you can also asynchorously run with timeouts:
|
417
|
+
|
418
|
+
```ruby
|
419
|
+
# run, but don't block waiting on an exitstatus
|
420
|
+
server_cmd = start "bin/server"
|
421
|
+
|
422
|
+
begin
|
423
|
+
server_cmd.wait(10)
|
424
|
+
rescue Dk::CmdTimeoutError => err
|
425
|
+
cmd.stop(10) # attempt to stop the cmd nicely, kill if doesn't stop in time
|
426
|
+
cmd.kill # OR, just kill the cmd now
|
427
|
+
end
|
428
|
+
```
|
429
|
+
|
430
|
+
This helper behaves just like `cmd` and `cmd!`. The only difference is it won't block waiting for the system command to run. It uses [Scmd](https://github.com/redding/scmd) to run system commmands and proxies most of its command API - see [the Scmd usage docs](https://github.com/redding/scmd#usage) for additional reference.
|
431
|
+
|
378
432
|
##### `ssh`, `ssh!`
|
379
433
|
|
380
434
|
```ruby
|
data/dk.gemspec
CHANGED
data/lib/dk.rb
CHANGED
@@ -20,7 +20,8 @@ module Dk
|
|
20
20
|
@config = Config.new
|
21
21
|
end
|
22
22
|
|
23
|
-
NoticeError
|
24
|
-
NoParamError
|
23
|
+
NoticeError = Class.new(RuntimeError)
|
24
|
+
NoParamError = Class.new(ArgumentError)
|
25
|
+
CmdTimeoutError = Class.new(RuntimeError)
|
25
26
|
|
26
27
|
end
|
data/lib/dk/local.rb
CHANGED
@@ -16,13 +16,34 @@ module Dk::Local
|
|
16
16
|
|
17
17
|
def to_s; self.cmd_str; end
|
18
18
|
|
19
|
+
def start(input = nil)
|
20
|
+
@scmd.start(input)
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
def wait(timeout = nil)
|
25
|
+
begin
|
26
|
+
@scmd.wait(timeout)
|
27
|
+
rescue Scmd::TimeoutError => e
|
28
|
+
raise Dk::CmdTimeoutError, e.message
|
29
|
+
end
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
def stop(timeout = nil)
|
34
|
+
@scmd.stop(timeout)
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
19
38
|
def run(input = nil)
|
20
39
|
@scmd.run(input)
|
21
40
|
self
|
22
41
|
end
|
23
42
|
|
43
|
+
def pid; @scmd.pid; end
|
24
44
|
def stdout; @scmd.stdout; end
|
25
45
|
def stderr; @scmd.stderr; end
|
46
|
+
def running?; @scmd.running?; end
|
26
47
|
def success?; @scmd.success?; end
|
27
48
|
|
28
49
|
def output_lines
|
@@ -65,6 +86,11 @@ module Dk::Local
|
|
65
86
|
@cmd_opts = opts
|
66
87
|
end
|
67
88
|
|
89
|
+
def start_input
|
90
|
+
return nil unless self.start_called?
|
91
|
+
self.start_calls.first.input
|
92
|
+
end
|
93
|
+
|
68
94
|
def run_input
|
69
95
|
return nil unless self.run_called?
|
70
96
|
self.run_calls.first.input
|
@@ -74,6 +100,9 @@ module Dk::Local
|
|
74
100
|
def stderr=(value); @scmd.stderr = value; end
|
75
101
|
def exitstatus=(value); @scmd.exitstatus = value; end
|
76
102
|
|
103
|
+
def start_calls; @scmd.start_calls; end
|
104
|
+
def start_called?; @scmd.start_called?; end
|
105
|
+
|
77
106
|
def run_calls; @scmd.run_calls; end
|
78
107
|
def run_called?; @scmd.run_called?; end
|
79
108
|
|
data/lib/dk/runner.rb
CHANGED
@@ -109,12 +109,16 @@ module Dk
|
|
109
109
|
self.logger.debug "===================================="
|
110
110
|
end
|
111
111
|
|
112
|
-
def
|
113
|
-
|
112
|
+
def start(*args)
|
113
|
+
build_and_start_local_cmd(*args)
|
114
114
|
end
|
115
115
|
|
116
|
-
def
|
117
|
-
|
116
|
+
def cmd(*args)
|
117
|
+
build_and_run_local_cmd(*args)
|
118
|
+
end
|
119
|
+
|
120
|
+
def ssh(*args)
|
121
|
+
build_and_run_remote_cmd(*args)
|
118
122
|
end
|
119
123
|
|
120
124
|
def has_run_task?(task_class)
|
@@ -150,9 +154,17 @@ module Dk
|
|
150
154
|
task_class.new(self, params)
|
151
155
|
end
|
152
156
|
|
153
|
-
def
|
157
|
+
def build_and_start_local_cmd(*args)
|
158
|
+
build_and_log_local_cmd(*args){ |cmd, input| cmd.start(input) }
|
159
|
+
end
|
160
|
+
|
161
|
+
def build_and_run_local_cmd(*args)
|
162
|
+
build_and_log_local_cmd(*args){ |cmd, input| cmd.run(input) }
|
163
|
+
end
|
164
|
+
|
165
|
+
def build_and_log_local_cmd(task, cmd_str, input, given_opts, &block)
|
154
166
|
local_cmd = build_local_cmd(task, cmd_str, input, given_opts)
|
155
|
-
log_local_cmd(local_cmd){ |cmd|
|
167
|
+
log_local_cmd(local_cmd){ |cmd| block.call(cmd, input) }
|
156
168
|
end
|
157
169
|
|
158
170
|
# input is needed for the `TestRunner` so it can use it with stubbing
|
data/lib/dk/task.rb
CHANGED
@@ -65,6 +65,12 @@ module Dk
|
|
65
65
|
@dk_runner.run_task(task_class, params)
|
66
66
|
end
|
67
67
|
|
68
|
+
def start(cmd_str, *args)
|
69
|
+
given_opts = args.last.kind_of?(::Hash) ? args.pop : nil
|
70
|
+
input = args.last
|
71
|
+
@dk_runner.start(self, cmd_str, input, given_opts)
|
72
|
+
end
|
73
|
+
|
68
74
|
def cmd(cmd_str, *args)
|
69
75
|
given_opts = args.last.kind_of?(::Hash) ? args.pop : nil
|
70
76
|
input = args.last
|
data/lib/dk/test_runner.rb
CHANGED
@@ -23,14 +23,19 @@ module Dk
|
|
23
23
|
TaskRun.new(task_class, params).tap{ |tr| self.runs << tr }
|
24
24
|
end
|
25
25
|
|
26
|
+
# track that a local cmd was started
|
27
|
+
def start(*args)
|
28
|
+
super(*args).tap{ |c| self.runs << c }
|
29
|
+
end
|
30
|
+
|
26
31
|
# track that a local cmd was run
|
27
|
-
def cmd(
|
28
|
-
super(
|
32
|
+
def cmd(*args)
|
33
|
+
super(*args).tap{ |c| self.runs << c }
|
29
34
|
end
|
30
35
|
|
31
36
|
# track that a remote cmd was run
|
32
|
-
def ssh(
|
33
|
-
super(
|
37
|
+
def ssh(*args)
|
38
|
+
super(*args).tap{ |c| self.runs << c }
|
34
39
|
end
|
35
40
|
|
36
41
|
# test task API
|
data/lib/dk/version.rb
CHANGED
data/test/unit/local_tests.rb
CHANGED
@@ -50,7 +50,7 @@ module Dk::Local
|
|
50
50
|
end
|
51
51
|
|
52
52
|
should have_readers :scmd, :cmd_str
|
53
|
-
should have_imeths :to_s, :run
|
53
|
+
should have_imeths :to_s, :start, :wait, :stop, :run
|
54
54
|
should have_imeths :stdout, :stderr, :success?, :output_lines
|
55
55
|
|
56
56
|
should "build an scmd with the cmd str and any given :env option" do
|
@@ -67,15 +67,56 @@ module Dk::Local
|
|
67
67
|
assert_equal subject.cmd_str, subject.to_s
|
68
68
|
end
|
69
69
|
|
70
|
-
should "demeter its scmd" do
|
70
|
+
should "demeter its scmd starts" do
|
71
|
+
assert_false @scmd_spy.start_called?
|
72
|
+
|
73
|
+
input = Factory.string
|
74
|
+
subject.start(input)
|
75
|
+
assert_true @scmd_spy.start_called?
|
76
|
+
assert_equal input, @scmd_spy.start_calls.last.input
|
77
|
+
|
78
|
+
wait_timeout = Factory.integer(10)
|
79
|
+
subject.wait(wait_timeout)
|
80
|
+
assert_true @scmd_spy.wait_called?
|
81
|
+
assert_equal wait_timeout, @scmd_spy.wait_calls.last.timeout
|
82
|
+
|
83
|
+
stop_timeout = Factory.integer(10)
|
84
|
+
subject.stop(stop_timeout)
|
85
|
+
assert_true @scmd_spy.stop_called?
|
86
|
+
assert_equal stop_timeout, @scmd_spy.stop_calls.last.timeout
|
87
|
+
|
88
|
+
assert_equal @scmd_spy.pid, subject.pid
|
89
|
+
assert_equal @scmd_spy.stdout, subject.stdout
|
90
|
+
assert_equal @scmd_spy.stderr, subject.stderr
|
91
|
+
assert_equal @scmd_spy.running?, subject.running?
|
92
|
+
assert_equal @scmd_spy.success?, subject.success?
|
93
|
+
end
|
94
|
+
|
95
|
+
should "demeter its scmd timeout errors" do
|
96
|
+
scmd_timeout_error_message = Factory.string
|
97
|
+
Assert.stub(@scmd_spy, :wait) do
|
98
|
+
raise Scmd::TimeoutError, scmd_timeout_error_message
|
99
|
+
end
|
100
|
+
|
101
|
+
subject.start
|
102
|
+
wait_timeout = Factory.integer(10)
|
103
|
+
e = assert_raises { subject.wait(wait_timeout) }
|
104
|
+
|
105
|
+
assert_equal Dk::CmdTimeoutError, e.class
|
106
|
+
assert_equal scmd_timeout_error_message, e.message
|
107
|
+
end
|
108
|
+
|
109
|
+
should "demeter its scmd runs" do
|
71
110
|
assert_false @scmd_spy.run_called?
|
72
111
|
input = Factory.string
|
73
112
|
subject.run(input)
|
74
113
|
assert_true @scmd_spy.run_called?
|
75
114
|
assert_equal input, @scmd_spy.run_calls.last.input
|
76
115
|
|
116
|
+
assert_equal @scmd_spy.pid, subject.pid
|
77
117
|
assert_equal @scmd_spy.stdout, subject.stdout
|
78
118
|
assert_equal @scmd_spy.stderr, subject.stderr
|
119
|
+
assert_equal @scmd_spy.running?, subject.running?
|
79
120
|
assert_equal @scmd_spy.success?, subject.success?
|
80
121
|
end
|
81
122
|
|
data/test/unit/runner_tests.rb
CHANGED
@@ -56,7 +56,7 @@ class Dk::Runner
|
|
56
56
|
should have_imeths :run, :run_task
|
57
57
|
should have_imeths :log_info, :log_debug, :log_error
|
58
58
|
should have_imeths :log_task_run, :log_cli_run
|
59
|
-
should have_imeths :cmd, :ssh
|
59
|
+
should have_imeths :start, :cmd, :ssh
|
60
60
|
should have_imeths :has_run_task?, :pretty_run_time
|
61
61
|
|
62
62
|
should "know its attrs" do
|
@@ -265,7 +265,7 @@ class Dk::Runner
|
|
265
265
|
exp = "#{(run_time * 10_000).round / 10.0}ms"
|
266
266
|
assert_equal exp, subject.pretty_run_time(run_time)
|
267
267
|
|
268
|
-
run_time = Factory.float
|
268
|
+
run_time = Factory.float(0.1) + 1.5
|
269
269
|
exp = "#{run_time.to_i / 60}:#{(run_time.round % 60).to_i.to_s.rjust(2, '0')}s"
|
270
270
|
assert_equal exp, subject.pretty_run_time(run_time)
|
271
271
|
end
|
@@ -308,7 +308,20 @@ class Dk::Runner
|
|
308
308
|
Assert.stub(subject, :pretty_run_time){ @pretty_run_time }
|
309
309
|
end
|
310
310
|
|
311
|
-
should "build, log and
|
311
|
+
should "build, log, and start local cmds" do
|
312
|
+
@runner.start(@task, @cmd_str, @cmd_input, @cmd_given_opts)
|
313
|
+
|
314
|
+
exp = [@cmd_str, @cmd_given_opts]
|
315
|
+
assert_equal exp, @local_cmd_new_called_with
|
316
|
+
|
317
|
+
assert_not_nil @local_cmd
|
318
|
+
assert_true @local_cmd.start_called?
|
319
|
+
assert_equal @cmd_input, @local_cmd.start_input
|
320
|
+
|
321
|
+
assert_equal exp_log_output(@local_cmd), @log_out
|
322
|
+
end
|
323
|
+
|
324
|
+
should "build, log, and run local cmds" do
|
312
325
|
@runner.cmd(@task, @cmd_str, @cmd_input, @cmd_given_opts)
|
313
326
|
|
314
327
|
exp = [@cmd_str, @cmd_given_opts]
|
data/test/unit/task_tests.rb
CHANGED
@@ -290,6 +290,38 @@ module Dk::Task
|
|
290
290
|
|
291
291
|
end
|
292
292
|
|
293
|
+
class StartPrivateHelpersTests < InitTests
|
294
|
+
|
295
|
+
should "start local cmds, calling to the runner" do
|
296
|
+
runner_start_called_with = nil
|
297
|
+
Assert.stub(@runner, :start) do |*args|
|
298
|
+
runner_start_called_with = args
|
299
|
+
Assert.stub_send(@runner, :start, *args)
|
300
|
+
end
|
301
|
+
|
302
|
+
cmd_str = Factory.string
|
303
|
+
cmd_input = Factory.string
|
304
|
+
cmd_opts = { Factory.string => Factory.string }
|
305
|
+
|
306
|
+
subject.instance_eval{ start(cmd_str, cmd_input, cmd_opts) }
|
307
|
+
exp = [subject, cmd_str, cmd_input, cmd_opts]
|
308
|
+
assert_equal exp, runner_start_called_with
|
309
|
+
|
310
|
+
subject.instance_eval{ start(cmd_str) }
|
311
|
+
exp = [subject, cmd_str, nil, nil]
|
312
|
+
assert_equal exp, runner_start_called_with
|
313
|
+
|
314
|
+
subject.instance_eval{ start(cmd_str, cmd_input) }
|
315
|
+
exp = [subject, cmd_str, cmd_input, nil]
|
316
|
+
assert_equal exp, runner_start_called_with
|
317
|
+
|
318
|
+
subject.instance_eval{ start(cmd_str, cmd_opts) }
|
319
|
+
exp = [subject, cmd_str, nil, cmd_opts]
|
320
|
+
assert_equal exp, runner_start_called_with
|
321
|
+
end
|
322
|
+
|
323
|
+
end
|
324
|
+
|
293
325
|
class CmdPrivateHelpersTests < InitTests
|
294
326
|
|
295
327
|
should "run local cmds, calling to the runner" do
|
metadata
CHANGED
@@ -1,69 +1,83 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: dk
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Kelly Redding
|
8
8
|
- Collin Redding
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2019-04-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: assert
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- !ruby/object:Gem::Version
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
22
20
|
version: 2.16.3
|
23
21
|
type: :development
|
24
|
-
version_requirements: *id001
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: much-plugin
|
27
22
|
prerelease: false
|
28
|
-
|
29
|
-
requirements:
|
30
|
-
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 2.16.3
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: much-plugin
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
32
34
|
version: 0.2.0
|
33
35
|
type: :runtime
|
34
|
-
version_requirements: *id002
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: scmd
|
37
36
|
prerelease: false
|
38
|
-
|
39
|
-
requirements:
|
40
|
-
- - ~>
|
41
|
-
- !ruby/object:Gem::Version
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.2.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: scmd
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
42
48
|
version: 3.0.3
|
43
49
|
type: :runtime
|
44
|
-
version_requirements: *id003
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
|
-
name: logsly
|
47
50
|
prerelease: false
|
48
|
-
|
49
|
-
requirements:
|
50
|
-
- - ~>
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version:
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 3.0.3
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: logsly
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.3.3
|
53
63
|
type: :runtime
|
54
|
-
|
55
|
-
|
56
|
-
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.3.3
|
70
|
+
description: '"Why''d you name this repo dk?" "Don''t know" (this is some automated
|
71
|
+
task runner thingy ala cap/rake)'
|
72
|
+
email:
|
57
73
|
- kelly@kellyredding.com
|
58
74
|
- collin.redding@me.com
|
59
|
-
executables:
|
75
|
+
executables:
|
60
76
|
- dk
|
61
77
|
extensions: []
|
62
|
-
|
63
78
|
extra_rdoc_files: []
|
64
|
-
|
65
|
-
|
66
|
-
- .gitignore
|
79
|
+
files:
|
80
|
+
- ".gitignore"
|
67
81
|
- Gemfile
|
68
82
|
- LICENSE
|
69
83
|
- README.md
|
@@ -118,32 +132,31 @@ files:
|
|
118
132
|
- test/unit/tree_runner_tests.rb
|
119
133
|
- tmp/.gitkeep
|
120
134
|
homepage: https://github.com/redding/dk
|
121
|
-
licenses:
|
135
|
+
licenses:
|
122
136
|
- MIT
|
123
137
|
metadata: {}
|
124
|
-
|
125
138
|
post_install_message:
|
126
139
|
rdoc_options: []
|
127
|
-
|
128
|
-
require_paths:
|
140
|
+
require_paths:
|
129
141
|
- lib
|
130
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
131
|
-
requirements:
|
132
|
-
-
|
133
|
-
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
142
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
139
152
|
requirements: []
|
140
|
-
|
141
153
|
rubyforge_project:
|
142
|
-
rubygems_version: 2.
|
154
|
+
rubygems_version: 2.7.7
|
143
155
|
signing_key:
|
144
156
|
specification_version: 4
|
145
|
-
summary: "
|
146
|
-
|
157
|
+
summary: '"Why''d you name this repo dk?" "Don''t know" (this is some automated task
|
158
|
+
runner thingy ala cap/rake)'
|
159
|
+
test_files:
|
147
160
|
- test/helper.rb
|
148
161
|
- test/support/config/dk.rb
|
149
162
|
- test/support/config/task_defs.rb
|