hiiro 0.1.72 → 0.1.73
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/lib/hiiro/options.rb +44 -0
- data/lib/hiiro/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6e5da997129e859e2b39f52c5957b6ea731eeb67900ebb267e3ea5544cac6811
|
|
4
|
+
data.tar.gz: 824ada42a5049c88f49db82f610f041ebe7ba47bb16d37e144d4eab64c8a8206
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 47795b75ece248e052be1d00fcfe608207bcef0e264a6904273f51124e44493fc8f91f3bd2fcc7274c3361c5e873debf82573d135f7b8d8c12ae5845b5b5847f
|
|
7
|
+
data.tar.gz: 86ed2f56f85af8fa2b843dc30b05e0e3a86c41a1743a065ed953ab4ae81415175ccf7542e2e5e77ea4ca30868fb650f1774bcf233ac61536fd5ef8b6ddce2564
|
data/lib/hiiro/options.rb
CHANGED
|
@@ -12,9 +12,20 @@ class Hiiro
|
|
|
12
12
|
|
|
13
13
|
def initialize(&block)
|
|
14
14
|
@definitions = {}
|
|
15
|
+
flag(:help, short: 'h', desc: 'Show this help message')
|
|
15
16
|
instance_eval(&block) if block
|
|
16
17
|
end
|
|
17
18
|
|
|
19
|
+
def help_text
|
|
20
|
+
lines = []
|
|
21
|
+
@definitions.each do |name, defn|
|
|
22
|
+
next if name == :help
|
|
23
|
+
lines << defn.usage_line
|
|
24
|
+
end
|
|
25
|
+
lines << @definitions[:help].usage_line
|
|
26
|
+
lines.join("\n")
|
|
27
|
+
end
|
|
28
|
+
|
|
18
29
|
def flag(name, short: nil, default: false, desc: nil)
|
|
19
30
|
defn = Definition.new(name, short: short, type: :flag, default: default, desc: desc)
|
|
20
31
|
@definitions[name.to_sym] = defn
|
|
@@ -64,6 +75,20 @@ class Hiiro
|
|
|
64
75
|
@values[key] != @definitions[key].default
|
|
65
76
|
end
|
|
66
77
|
|
|
78
|
+
def help?
|
|
79
|
+
@values[:help]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def help_text
|
|
83
|
+
lines = []
|
|
84
|
+
@definitions.each do |name, defn|
|
|
85
|
+
next if name == :help
|
|
86
|
+
lines << defn.usage_line
|
|
87
|
+
end
|
|
88
|
+
lines << @definitions[:help].usage_line
|
|
89
|
+
lines.join("\n")
|
|
90
|
+
end
|
|
91
|
+
|
|
67
92
|
def to_h
|
|
68
93
|
@values.dup
|
|
69
94
|
end
|
|
@@ -188,6 +213,25 @@ class Hiiro
|
|
|
188
213
|
else value
|
|
189
214
|
end
|
|
190
215
|
end
|
|
216
|
+
|
|
217
|
+
def usage_line
|
|
218
|
+
parts = []
|
|
219
|
+
parts << (short_form ? "#{short_form}, #{long_form}" : " #{long_form}")
|
|
220
|
+
parts[0] = parts[0].ljust(20)
|
|
221
|
+
parts << value_hint unless flag?
|
|
222
|
+
parts << desc if desc
|
|
223
|
+
parts << "(default: #{default.inspect})" if default && !flag?
|
|
224
|
+
parts << "[multi]" if multi
|
|
225
|
+
parts.join(" ")
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
def value_hint
|
|
229
|
+
case type
|
|
230
|
+
when :integer then "<int>"
|
|
231
|
+
when :float then "<num>"
|
|
232
|
+
else "<value>"
|
|
233
|
+
end
|
|
234
|
+
end
|
|
191
235
|
end
|
|
192
236
|
end
|
|
193
237
|
end
|
data/lib/hiiro/version.rb
CHANGED