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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d02c3dbeffc01ef74b5352108585791cfc5abcece9071c1b28fe1ea621809f5
4
- data.tar.gz: 207c687438a4c780a28b71bae3e6669db003239ed5d1eb565258f03a260638c0
3
+ metadata.gz: 992b34023bc6042c8e5cada1a4d33674df2fda7856e3d67ec07e3e4607253ad5
4
+ data.tar.gz: 1943a0338104dcbc63c14a62526d113ad2124443f694536aeec38a650dc49375
5
5
  SHA512:
6
- metadata.gz: 8684082e9172f1f80e03992637f3b2248e802e7ba4f52309a615f95b3d4eca9a82005f54a91b8b073256a15358be563c4947dd4329919450591421b33eb79d2b
7
- data.tar.gz: 7a28ea5141dd993b8ca3ab4b4d903f3922d555ca264c0fa24a9cbea42f4a9b84a8759c8470fe47d8ffcdd1fa4edd1275599026eedb38483ab3023539c96fd270
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
- # Version string for the command
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 = '0.0.0'
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
- result << " --version"
56
- result << " Show version number\n"
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
- result = ["Parameters:"]
64
- params.each do |param|
65
- result << " #{param[0]}"
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
@@ -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
@@ -59,6 +59,10 @@ module MisterBin
59
59
  maker.examples << text
60
60
  end
61
61
 
62
+ def environment(name, value)
63
+ maker.env_vars << [name, value]
64
+ end
65
+
62
66
  def action(&block)
63
67
  @action_block = block
64
68
  end
@@ -1,3 +1,3 @@
1
1
  module MisterBin
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
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.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-05 00:00:00.000000000 Z
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: '9.0'
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: '9.0'
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: '5.1'
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: '5.1'
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.15'
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.15'
138
+ version: '0.16'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: yard
141
141
  requirement: !ruby/object:Gem::Requirement