blob: 59f98a4a29e7466fe4d186c8122782a74cfd8a29 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
module Mixlib
module CLI
class Formatter
# Create a string that includes both versions (short/long) of a flag name
# based on on whether short/long/both/neither are provided
#
# @param short [String] the short name of the option. Can be nil.
# @param long [String] the long name of the option. Can be nil.
# @return [String] the formatted flag name as described above
def self.combined_option_display_name(short, long)
usage = ""
# short/long may have an argument (--long ARG)
# splitting on " " and taking first ensures that we get just
# the flag name without the argument if one is present.
usage << short.split(" ").first if short
usage << "/" if long && short
usage << long.split(" ").first if long
usage
end
# @param opt_arry [Array]
#
# @return [String] a friendly quoted list of items complete with "or"
def self.friendly_opt_list(opt_array)
opts = opt_array.map { |x| "'#{x}'" }
return opts.join(" or ") if opts.size < 3
opts[0..-2].join(", ") + ", or " + opts[-1]
end
end
end
end
|