mister_bin 0.4.1 → 0.5.0
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/README.md +6 -2
- data/lib/mister_bin/command.rb +20 -2
- data/lib/mister_bin/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 625bef48b831c9b258cbfbb1ea2e02e756604d8d09111d0db95aa670fcd5b002
|
4
|
+
data.tar.gz: fdb6c17c82ac45329073c95f9303359625ae76ea243db933d1b63df42833c533
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7326953c18b22157cb2fc8eadd3d32fe88ba6878e63225fc1e08a0d96417a7a004c52e29fdc2c081c38fc40882b32f350f3c4e8216364d6c4c58d56ff441715b
|
7
|
+
data.tar.gz: e749163878edec4ea78846a6e309713225818016bb337831412c01032b77114539fe2f86aae02df375471a63a1ed0036be616c21c10d361a79dc04ca59ac9163
|
data/README.md
CHANGED
@@ -200,13 +200,15 @@ version "0.1.1"
|
|
200
200
|
|
201
201
|
# Usage patterns. You can use either a compact docopt notation, or provide
|
202
202
|
# multiple usage calls.
|
203
|
-
# The first two will create the same result as the last one.
|
204
203
|
usage "app ls"
|
205
|
-
usage "app ls --all"
|
206
204
|
usage "app ls [--all]"
|
207
205
|
usage "app new NAME"
|
208
206
|
|
209
207
|
# Describe any subcommands
|
208
|
+
# Note that this has an additional important use:
|
209
|
+
# - For each command defined with the `command` directive, we will search
|
210
|
+
# for a method with the same name and a `_command` suffix.
|
211
|
+
# - If no such method is found, we will call the generic `run` method.
|
210
212
|
command "ls", "Show list of files"
|
211
213
|
command "new", "Pretend to create a new application"
|
212
214
|
|
@@ -234,8 +236,10 @@ Several examples of real world use of Mister Bin in the wild (well,
|
|
234
236
|
|
235
237
|
- [Kojo][2] - Command line utility for generating config files from templates and definition files
|
236
238
|
- [Madman][3] - The Markdown Swiss Army Knife
|
239
|
+
- [AudioAddict][4] - Command line utility for the AudioAddict radio network
|
237
240
|
|
238
241
|
|
239
242
|
[1]: http://docopt.org/
|
240
243
|
[2]: https://github.com/DannyBen/kojo
|
241
244
|
[3]: https://github.com/DannyBen/madman
|
245
|
+
[4]: https://github.com/DannyBen/audio_addict
|
data/lib/mister_bin/command.rb
CHANGED
@@ -12,7 +12,9 @@ module MisterBin
|
|
12
12
|
|
13
13
|
def execute(argv=[])
|
14
14
|
args = Docopt.docopt docopt, version: maker.version, argv: argv
|
15
|
-
|
15
|
+
instance = new
|
16
|
+
target = find_target_command instance, args
|
17
|
+
exitcode = instance.send target, args
|
16
18
|
exitcode.is_a?(Numeric) ? exitcode : 0
|
17
19
|
|
18
20
|
rescue Docopt::Exit => e
|
@@ -43,6 +45,7 @@ module MisterBin
|
|
43
45
|
end
|
44
46
|
|
45
47
|
def command(name, text)
|
48
|
+
target_commands << name.to_sym
|
46
49
|
maker.commands << [name, text]
|
47
50
|
end
|
48
51
|
|
@@ -58,7 +61,7 @@ module MisterBin
|
|
58
61
|
maker.env_vars << [name, value]
|
59
62
|
end
|
60
63
|
|
61
|
-
|
64
|
+
protected
|
62
65
|
|
63
66
|
def maker
|
64
67
|
@maker ||= DocoptMaker.new
|
@@ -68,6 +71,21 @@ module MisterBin
|
|
68
71
|
maker.docopt
|
69
72
|
end
|
70
73
|
|
74
|
+
private
|
75
|
+
|
76
|
+
def target_commands
|
77
|
+
@target_commands ||= []
|
78
|
+
end
|
79
|
+
|
80
|
+
def find_target_command(instance, args)
|
81
|
+
target_commands.each do |target|
|
82
|
+
method_name = :"#{target}_command"
|
83
|
+
return method_name if instance.respond_to? method_name and args[target.to_s]
|
84
|
+
end
|
85
|
+
:run
|
86
|
+
end
|
87
|
+
|
71
88
|
end
|
89
|
+
|
72
90
|
end
|
73
91
|
end
|
data/lib/mister_bin/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mister_bin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danny Ben Shitrit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colsole
|