runfile 0.10.3 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/runfile/docopt_helper.rb +22 -10
- data/lib/runfile/dsl.rb +6 -0
- data/lib/runfile/runner.rb +10 -1
- data/lib/runfile/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: 1b9025fd4b3e8a2ee35daaeb3b9c058732bfc88fc88891381761b2ee80b8d7fc
|
4
|
+
data.tar.gz: 7586f94445866e5819a7d29667056c7f2cca94ed4b41e448396c17e9964bc474
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87af85bbce27734b356fee01ed2097d5f77fc9fdc2f44f251cf5ccb07562944bc53c9b52c30602d0b991e5c6b9eb03ddb8195b23923812d4184bd5164cec9401
|
7
|
+
data.tar.gz: d3ac178489ca8e8a3a99090d035e2d57cf55d5f93a8199d18a7ac9150d27d2ac48b1c4d70b1d45f9cf2b79f55327aeb1847b0f4a9ae73749cf787ea47b90bb58
|
@@ -22,6 +22,7 @@ module Runfile
|
|
22
22
|
@summary = options.summary
|
23
23
|
@actions = options.actions
|
24
24
|
@options = options.options
|
25
|
+
@params = options.params
|
25
26
|
@examples = options.examples
|
26
27
|
end
|
27
28
|
|
@@ -35,6 +36,7 @@ module Runfile
|
|
35
36
|
doc += docopt_usage
|
36
37
|
doc += docopt_commands width
|
37
38
|
doc += docopt_options width
|
39
|
+
doc += docopt_params width
|
38
40
|
doc += docopt_examples width
|
39
41
|
doc.join "\n"
|
40
42
|
end
|
@@ -74,17 +76,12 @@ module Runfile
|
|
74
76
|
@options['Options'] = {} unless @options['Options']
|
75
77
|
@options['Options']['-h --help'] = 'Show this screen'
|
76
78
|
@options['Options']['--version'] = 'Show version number' if @version
|
79
|
+
section_block @options, width
|
80
|
+
end
|
77
81
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
values.each do |flag, text|
|
82
|
-
helpline = " #{text}"
|
83
|
-
wrapped = word_wrap helpline, width
|
84
|
-
doc << " #{flag}\n#{wrapped}\n"
|
85
|
-
end
|
86
|
-
end
|
87
|
-
doc
|
82
|
+
# Return all docopt params for 'Params' section
|
83
|
+
def docopt_params(width)
|
84
|
+
section_block @params, width
|
88
85
|
end
|
89
86
|
|
90
87
|
# Return all docopt lines for the 'Examples' section
|
@@ -101,6 +98,21 @@ module Runfile
|
|
101
98
|
doc
|
102
99
|
end
|
103
100
|
|
101
|
+
# Return a generic block containing scope section (e.g. "Options"),
|
102
|
+
# followed by key value paragraphs.
|
103
|
+
def section_block(definitions, width)
|
104
|
+
doc = []
|
105
|
+
definitions.each do |scope, values|
|
106
|
+
doc << "#{scope}:"
|
107
|
+
values.each do |label, text|
|
108
|
+
helpline = " #{text}"
|
109
|
+
wrapped = word_wrap helpline, width
|
110
|
+
doc << " #{label}\n#{wrapped}\n"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
doc
|
114
|
+
end
|
115
|
+
|
104
116
|
# Call the docopt handler, which will either return a parsed
|
105
117
|
# arguments list, or halt execution and show usage.
|
106
118
|
def args(argv)
|
data/lib/runfile/dsl.rb
CHANGED
@@ -43,6 +43,12 @@ module Runfile
|
|
43
43
|
Runner.instance.add_option flag, text, scope
|
44
44
|
end
|
45
45
|
|
46
|
+
# Add a parameter (can be called multiple times)
|
47
|
+
# param 'FOLDER', 'Folder to copy'
|
48
|
+
def param(name, text, scope=nil)
|
49
|
+
Runner.instance.add_param name, text, scope
|
50
|
+
end
|
51
|
+
|
46
52
|
# Set an example command (can be called multiple times)
|
47
53
|
# example 'server --background'
|
48
54
|
def example(text)
|
data/lib/runfile/runner.rb
CHANGED
@@ -13,7 +13,8 @@ module Runfile
|
|
13
13
|
include SettingsMixin
|
14
14
|
|
15
15
|
attr_accessor :last_usage, :last_help, :name, :version,
|
16
|
-
:summary, :namespace, :superspace, :actions, :examples, :options
|
16
|
+
:summary, :namespace, :superspace, :actions, :examples, :options,
|
17
|
+
:params
|
17
18
|
|
18
19
|
# Initialize all variables to sensible defaults.
|
19
20
|
def initialize
|
@@ -23,6 +24,7 @@ module Runfile
|
|
23
24
|
@namespace = nil # dsl: command
|
24
25
|
@actions = {} # dsl: action
|
25
26
|
@options = {} # dsl: option
|
27
|
+
@params = {} # dsl: param
|
26
28
|
@examples = [] # dsl: example
|
27
29
|
@name = "Runfile" # dsl: name
|
28
30
|
@version = false # dsl: version
|
@@ -72,6 +74,13 @@ module Runfile
|
|
72
74
|
@options[scope][flag] = text
|
73
75
|
end
|
74
76
|
|
77
|
+
# Add a patameter and its help text.
|
78
|
+
def add_param(name, text, scope=nil)
|
79
|
+
scope or scope = 'Parameters'
|
80
|
+
@params[scope] ||= {}
|
81
|
+
@params[scope][name] = text
|
82
|
+
end
|
83
|
+
|
75
84
|
# Add example command.
|
76
85
|
def add_example(command)
|
77
86
|
@examples << (@namespace ? "#{@namespace} #{command}" : command)
|
data/lib/runfile/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runfile
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.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-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colsole
|