mister_bin 0.2.1 → 0.2.2

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: f9ead1a61f1fa10257fdada263fe53831d50eb347cb72511b9a84380f22c1fa0
4
- data.tar.gz: 98d279539bbcefe16e28a29d8106fbac79613ce6eb9a8adf80359a7204c5933c
3
+ metadata.gz: 7d02c3dbeffc01ef74b5352108585791cfc5abcece9071c1b28fe1ea621809f5
4
+ data.tar.gz: 207c687438a4c780a28b71bae3e6669db003239ed5d1eb565258f03a260638c0
5
5
  SHA512:
6
- metadata.gz: c43175939978e46c952ca8d89b02111e8a5f6c001d1c973e6c18bed8da09cc81d2aa3fbb186896bf94bc0d7459d050ecac7972aefa899803f18282b9740110e0
7
- data.tar.gz: 977f09d4e624c8870c0011a22d4cf6143751246b21b0dcdc19e81a225c6400abdb0e8e6fff4bb82d1c9a1c5c91cc05341c8a242d7e564017f5dbaf6661f08fa0
6
+ metadata.gz: 8684082e9172f1f80e03992637f3b2248e802e7ba4f52309a615f95b3d4eca9a82005f54a91b8b073256a15358be563c4947dd4329919450591421b33eb79d2b
7
+ data.tar.gz: 7a28ea5141dd993b8ca3ab4b4d903f3922d555ca264c0fa24a9cbea42f4a9b84a8759c8470fe47d8ffcdd1fa4edd1275599026eedb38483ab3023539c96fd270
data/README.md CHANGED
@@ -205,8 +205,11 @@ The below example outlines all available DSL commands.
205
205
 
206
206
 
207
207
  ```ruby
208
+ # Optional summary string
209
+ summary "A short sentence or paragraph describing the command"
210
+
208
211
  # Optional help string
209
- help "A short sentence or paragraph describing the command"
212
+ help "A longer explanation can go here"
210
213
 
211
214
  # Version string for the command
212
215
  version "0.1.1"
@@ -13,7 +13,7 @@ module MisterBin
13
13
  end
14
14
 
15
15
  def metadata
16
- script.evaluate
16
+ script.metadata
17
17
  end
18
18
 
19
19
  private
@@ -8,24 +8,29 @@ module MisterBin
8
8
  include Colsole
9
9
 
10
10
  attr_reader :usages, :options, :examples, :params
11
- attr_accessor :help, :version
11
+ attr_accessor :summary, :help, :version
12
12
 
13
13
  def initialize
14
- @usages = []
15
- @options = []
16
- @params = []
14
+ @version = '0.0.0'
15
+ @help = nil
16
+ @summary = nil
17
+ @usages = []
18
+ @options = []
19
+ @params = []
17
20
  @examples = []
18
- @version = '0.0.0'
19
- @help = nil
20
21
  end
21
22
 
22
23
  def docopt
23
- [help_string, usage_string, options_string,
24
+ [summary_string, help_string, usage_string, options_string,
24
25
  params_string, examples_string].compact.join "\n"
25
26
  end
26
27
 
27
28
  private
28
29
 
30
+ def summary_string
31
+ summary ? word_wrap(summary) + "\n" : nil
32
+ end
33
+
29
34
  def help_string
30
35
  help ? word_wrap(help) + "\n" : nil
31
36
  end
@@ -15,35 +15,32 @@ module MisterBin
15
15
 
16
16
  def execute(argv=[])
17
17
  build_docopt
18
- args = Docopt.docopt docopt, version: maker.version, argv: argv
19
- exitcode = action_block.call args if action_block
20
- exitcode.is_a?(Numeric) ? exitcode : 0
18
+ execute! argv
21
19
  rescue Docopt::Exit => e
22
20
  puts e.message
23
21
  1
24
22
  end
25
23
 
26
- def evaluate
27
- instance_eval script
28
- metadata
29
- end
30
-
31
24
  def docopt
32
25
  maker.docopt
33
26
  end
34
27
 
35
28
  def metadata
36
- { summary: help, version: version }
29
+ @metadata ||= metadata!
37
30
  end
38
31
 
39
32
  # DSL
40
33
 
41
- def help(text=nil)
42
- text ? maker.help = text : maker.help
34
+ def summary(text)
35
+ maker.summary = text
36
+ end
37
+
38
+ def help(text)
39
+ maker.help = text
43
40
  end
44
41
 
45
- def version(text=nil)
46
- text ? maker.version = text : maker.version
42
+ def version(text)
43
+ maker.version = text
47
44
  end
48
45
 
49
46
  def usage(text)
@@ -68,6 +65,21 @@ module MisterBin
68
65
 
69
66
  private
70
67
 
68
+ def metadata!
69
+ instance_eval script
70
+
71
+ {
72
+ summary: (maker.summary || maker.help),
73
+ version: maker.version
74
+ }
75
+ end
76
+
77
+ def execute!(argv)
78
+ args = Docopt.docopt docopt, version: maker.version, argv: argv
79
+ exitcode = action_block.call args if action_block
80
+ exitcode.is_a?(Numeric) ? exitcode : 0
81
+ end
82
+
71
83
  def build_docopt
72
84
  @maker = nil
73
85
  instance_eval script
@@ -1,3 +1,3 @@
1
1
  module MisterBin
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mister_bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit