Files
CliFx/CliFx/Domain/CommandOptionInput.cs
Alexey Golub c063251d89 Exclude some ToString() methods from coverage
These are only used for debug information and I'm okayish with them failing at runtime.
2020-08-19 22:39:43 +03:00

36 lines
1.0 KiB
C#

using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using CliFx.Internal.Extensions;
namespace CliFx.Domain
{
internal class CommandOptionInput
{
public string Alias { get; }
public IReadOnlyList<string> Values { get; }
public bool IsHelpOption => CommandOptionSchema.HelpOption.MatchesNameOrShortName(Alias);
public bool IsVersionOption => CommandOptionSchema.VersionOption.MatchesNameOrShortName(Alias);
public CommandOptionInput(string alias, IReadOnlyList<string> values)
{
Alias = alias;
Values = values;
}
public string GetRawAlias() => Alias switch
{
{Length: 0} => Alias,
{Length: 1} => $"-{Alias}",
_ => $"--{Alias}"
};
public string GetRawValues() => Values.Select(v => v.Quote()).JoinToString(" ");
[ExcludeFromCodeCoverage]
public override string ToString() => $"{GetRawAlias()} {GetRawValues()}";
}
}