public string ToString(UnifiedName unifiedName) { StringBuilder sb = new StringBuilder( ); sb.Append(unifiedName.Parts.First( ).ToLower( )); foreach (string p in unifiedName.Parts) { if (p == unifiedName.Parts.First( )) { continue; } if (char.IsUpper(p[0])) { sb.Append(p); } else { sb.Append(char.ToUpper(p[0])); sb.Append(p.Substring(1)); } } return(sb.ToString( )); }
public void Init( ) { _un = new UnifiedName( "short", "test", "name", "FTW"); }
private IOption GetOptionForName(string name) { UnifiedName optUnName = _specDeriverConfig.PropertyNamingStyle.FromString(name); IOption opt = _spec.Options.FirstOrDefault(o => o.Name.Equals(optUnName)); if (opt == null) { throw new Exception( $"property {name} has no corresponding {nameof( IOption )} with unified name {optUnName}"); } return(opt); }
public Option( UnifiedName name, bool optional = true, char?flagAlias = null, IArgument dynamicArgument = null, IEnumerable <IArgument> args = null) : this( name, optional, flagAlias, dynamicArgument, args?.ToArray( )) { }
public Option( UnifiedName name, bool optional = true, char?flagAlias = null, IArgument dynamicArgument = null, params IArgument[] args) : base(optional, dynamicArgument, args) { if (name == null) { throw new NullReferenceException($"{nameof( name )} must not be null"); } Name = name; FlagAlias = flagAlias; }
public IItem GetItem(string propertyName) { PropertyInfo pi = _t.GetProperty(propertyName); if (pi == null) { throw new Exception($"{_t} has no property {propertyName}"); } IItem item; OptionAttribute oa = pi.GetCustomAttribute <OptionAttribute>( ); FlagAttribute fa = pi.GetCustomAttribute <FlagAttribute>( ); if (oa != null) { UnifiedName optionName = _specDeriverConfig.PropertyNamingStyle.FromString( string.IsNullOrEmpty(oa.Name)? pi.Name : oa.Name); item = _spec.Options.FirstOrDefault(o => o.Name.Equals(optionName)); if (item == null) { throw new Exception($"no option mapped to property {propertyName}"); } } else if (fa != null) { item = _spec.Flags.FirstOrDefault(f => f.Name == fa.Name); if (item == null) { throw new Exception($"no flag mapped to property {propertyName}"); } } else { throw new Exception($"no item mapped to property {propertyName}"); } return(item); }
public string ToString(UnifiedName unifiedName) { return(unifiedName.Parts.Aggregate( (a, b) => $"{FormatWordOrAbbreviation( a )}{_delimiter}{FormatWordOrAbbreviation( b )}")); }