lib/hammer_cli/options/normalizers.rb in hammer_cli-0.19.2 vs lib/hammer_cli/options/normalizers.rb in hammer_cli-2.0.0
- old
+ new
@@ -109,14 +109,14 @@
end
end
class ListNested < AbstractNormalizer
class Schema < Array
- def description
+ def description(richtext: true)
'"' + reduce([]) do |schema, nested_param|
name = nested_param.name
- name = HighLine.color(name, :bold) if nested_param.required?
+ name = HighLine.color(name, :bold) if nested_param.required? && richtext
values = nested_param.validator.scan(/<[^>]+>[\w]+<\/?[^>]+>/)
value_pattern = if values.empty?
"<#{nested_param.expected_type.downcase}>"
else
values = values.map do |value|
@@ -170,10 +170,13 @@
end
class Bool < AbstractNormalizer
+ def allowed_values
+ ['yes', 'no', 'true', 'false', '1', '0']
+ end
def description
_('One of %s.') % ['true/false', 'yes/no', '1/0'].join(', ')
end
@@ -187,11 +190,11 @@
raise ArgumentError, _('Value must be one of %s.') % ['true/false', 'yes/no', '1/0'].join(', ')
end
end
def complete(value)
- ["yes ", "no "]
+ allowed_values.map { |v| v + ' ' }
end
end
class File < AbstractNormalizer
@@ -278,9 +281,10 @@
raise ArgumentError, _("'%s' is not a valid date.") % date
end
end
class EnumList < AbstractNormalizer
+ attr_reader :allowed_values
def initialize(allowed_values)
@allowed_values = allowed_values
end