class HammerCLI::Options::Normalizers::ListNested::Schema

Public Instance Methods

description() click to toggle source
# File lib/hammer_cli/options/normalizers.rb, line 114
def description
  '"' + reduce([]) do |schema, nested_param|
    name = nested_param.name
    name = HighLine.color(name, :bold) if nested_param.required?
    values = nested_param.validator.scan(/<[^>]+>[\w]+<\/?[^>]+>/)
    value_pattern = if values.empty?
                      "<#{nested_param.expected_type.downcase}>"
                    else
                      values = values.map do |value|
                        value.gsub(/(<\/?[^>]+>)*([\.,]*)*/, '')
                      end
                      "[#{values.join('|')}]"
                    end
    schema << "#{name}=#{value_pattern}"
  end.join('\,').concat(', ... "')
end