mister_bin 0.2.2 → 0.2.3
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 +9 -1
- data/lib/mister_bin/docopt_maker.rb +26 -13
- data/lib/mister_bin/runner.rb +5 -1
- data/lib/mister_bin/script.rb +4 -0
- data/lib/mister_bin/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 992b34023bc6042c8e5cada1a4d33674df2fda7856e3d67ec07e3e4607253ad5
|
4
|
+
data.tar.gz: 1943a0338104dcbc63c14a62526d113ad2124443f694536aeec38a650dc49375
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d9454d65eef5a5f1f53ce6198011331ef772fece59fe831f1abb33d616f3e4847f2d6ff40281bb8aa6d50f40ede1616b5f012109df942460c61efb0fa7ea7e8
|
7
|
+
data.tar.gz: 03dfe016fe75b4baa7da4fef059396f3534168ba284033b5037afd715b4e86efbf0461d0972e498828764df9f0b44034d647a570bd01fdd21ba3feede5c86798
|
data/README.md
CHANGED
@@ -152,6 +152,7 @@ In addition, you can provide an options hash:
|
|
152
152
|
```ruby
|
153
153
|
options = {
|
154
154
|
header: 'My command line app'
|
155
|
+
version: '1.2.3',
|
155
156
|
footer: 'Use --help for additional info',
|
156
157
|
basedir: __dir__,
|
157
158
|
isolate: true
|
@@ -160,6 +161,10 @@ options = {
|
|
160
161
|
runner = MisterBin::Runner.new 'appname', options
|
161
162
|
```
|
162
163
|
|
164
|
+
#### `version`
|
165
|
+
|
166
|
+
Version number to display when running the main executable with `--version`.
|
167
|
+
|
163
168
|
#### `header`
|
164
169
|
|
165
170
|
Text to display before the list of commands.
|
@@ -211,7 +216,7 @@ summary "A short sentence or paragraph describing the command"
|
|
211
216
|
# Optional help string
|
212
217
|
help "A longer explanation can go here"
|
213
218
|
|
214
|
-
#
|
219
|
+
# Optional version string for the command
|
215
220
|
version "0.1.1"
|
216
221
|
|
217
222
|
# Usage patterns. You can use either a compact docopt notation, or provide
|
@@ -229,6 +234,9 @@ option "-f --force", "Force delete"
|
|
229
234
|
# Describe any parameters
|
230
235
|
param "NAME", "The name of the repository"
|
231
236
|
|
237
|
+
# Describe any environment variables that your app cares about
|
238
|
+
environment "SECRET", "There is no spoon"
|
239
|
+
|
232
240
|
# Provide examples
|
233
241
|
example "app ls"
|
234
242
|
example "app ls --all"
|
@@ -7,22 +7,23 @@ module MisterBin
|
|
7
7
|
class DocoptMaker
|
8
8
|
include Colsole
|
9
9
|
|
10
|
-
attr_reader :usages, :options, :examples, :params
|
10
|
+
attr_reader :usages, :options, :examples, :params, :env_vars
|
11
11
|
attr_accessor :summary, :help, :version
|
12
12
|
|
13
13
|
def initialize
|
14
|
-
@version =
|
14
|
+
@version = nil
|
15
15
|
@help = nil
|
16
16
|
@summary = nil
|
17
17
|
@usages = []
|
18
18
|
@options = []
|
19
19
|
@params = []
|
20
20
|
@examples = []
|
21
|
+
@env_vars = []
|
21
22
|
end
|
22
23
|
|
23
24
|
def docopt
|
24
25
|
[summary_string, help_string, usage_string, options_string,
|
25
|
-
params_string, examples_string].compact.join "\n"
|
26
|
+
params_string, env_string, examples_string].compact.join "\n"
|
26
27
|
end
|
27
28
|
|
28
29
|
private
|
@@ -52,22 +53,23 @@ module MisterBin
|
|
52
53
|
|
53
54
|
result << " -h --help"
|
54
55
|
result << " Show this help\n"
|
55
|
-
|
56
|
-
|
56
|
+
|
57
|
+
if version
|
58
|
+
result << " --version"
|
59
|
+
result << " Show version number\n"
|
60
|
+
end
|
61
|
+
|
57
62
|
result.join "\n"
|
58
63
|
end
|
59
64
|
|
60
65
|
def params_string
|
61
66
|
return nil if params.empty?
|
67
|
+
key_value_block 'Parameters:', params
|
68
|
+
end
|
62
69
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
result << word_wrap(" #{param[1]}")
|
67
|
-
result << ""
|
68
|
-
end
|
69
|
-
|
70
|
-
result.join "\n"
|
70
|
+
def env_string
|
71
|
+
return nil if env_vars.empty?
|
72
|
+
key_value_block 'Environment Variables:', env_vars
|
71
73
|
end
|
72
74
|
|
73
75
|
def examples_string
|
@@ -78,5 +80,16 @@ module MisterBin
|
|
78
80
|
result << ""
|
79
81
|
result.join "\n"
|
80
82
|
end
|
83
|
+
|
84
|
+
def key_value_block(caption, pairs)
|
85
|
+
result = [caption]
|
86
|
+
pairs.each do |key, value|
|
87
|
+
result << " #{key}"
|
88
|
+
result << word_wrap(" #{value}")
|
89
|
+
result << ""
|
90
|
+
end
|
91
|
+
|
92
|
+
result.join "\n"
|
93
|
+
end
|
81
94
|
end
|
82
95
|
end
|
data/lib/mister_bin/runner.rb
CHANGED
@@ -4,7 +4,7 @@ module MisterBin
|
|
4
4
|
class Runner
|
5
5
|
include Colsole
|
6
6
|
|
7
|
-
attr_reader :name, :basedir, :header, :footer, :isolate
|
7
|
+
attr_reader :name, :basedir, :header, :footer, :isolate, :version
|
8
8
|
|
9
9
|
def initialize(name, opts={})
|
10
10
|
@name = name
|
@@ -12,11 +12,15 @@ module MisterBin
|
|
12
12
|
@footer = opts[:footer]
|
13
13
|
@isolate = opts[:isolate]
|
14
14
|
@basedir = opts[:basedir]
|
15
|
+
@version = opts[:version]
|
15
16
|
end
|
16
17
|
|
17
18
|
def run(argv=[])
|
18
19
|
if argv.empty?
|
19
20
|
show_subs
|
21
|
+
elsif argv == ['--version'] and version
|
22
|
+
puts version
|
23
|
+
return 1
|
20
24
|
else
|
21
25
|
execute argv
|
22
26
|
end
|
data/lib/mister_bin/script.rb
CHANGED
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.2.
|
4
|
+
version: 0.2.3
|
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-05-
|
11
|
+
date: 2018-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colsole
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '10.0'
|
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: '
|
54
|
+
version: '10.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rdoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '6.0'
|
62
62
|
type: :development
|
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: '
|
68
|
+
version: '6.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '0.
|
131
|
+
version: '0.16'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0.
|
138
|
+
version: '0.16'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: yard
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|