RunInfoBuilder v2.0.0 Release Notes

Release Date: 2019-01-21 // about 1 year ago
  • 🚀 This release brings several enhancements and features that allow for building a better and more reasonable API.

    Global Options

    The root Command<TRunInfo> now has a new GlobalOptions property that allow you to configure Options that are accessible to that Command and any of its SubCommands. This allows you to configure an Option that should be available for the Command or its SubCommands only once. The behavior of Options and general Command processing has not changed, and the Command or SubCommand specific options are still locally scoped to where it's declared.

    builder.Commands.Add(new Command<TRunInfo>
    {
        Key = "command_key",
        // other properties like Arguments and Options omited for brevity
        GlobalOptions =
        {
            // add any number of global options here
        },
        OnMatched = runInfo => 
        {
            // do something with runInfo
            return ProcessResult.Continue;
        }
    });
    

    OnMatched Callback for Commands

    0️⃣ Commands, SubCommands, and the DefaultCommand now have a new OnMatched property, which is of type Func<TRunInfo, ProcessStageResult>. This provides a hook for you to provide a custom callback that is immediately fired when a command is matched and begins processing.

    👀 Refer to the Command configuration above this section to see how it's set.

    👀 OnParseErrorUseMessage

    📜 In several places where the Parser is used, you can now provide a callback that accepts the raw program argument and returns a customized error message to include as the exception's message.

    The 3 types they're currently available in are PropertyArgument, SequenceArgument, and Option.

    HelpManager's InvokeOnBuildFail

    🏗 Method was previously named DisplayOnBuildFail. It also now requires a new bool argument named suppressException, allowing you to decide whether to suppress exceptions or not. Previously, if the help menu was set to auto invoke on build fail, the exception would be suppressed, with no option to do otherwise.

    🆕 New ArgsNullOrEmptyReturns Hook

    🏗 A new method was added to the builder's Hooks. You can now provide a Func<TReturn> that will be invoked if the program arguments is either null or empty. The builder will then return whatever is returned by that custom function.


Previous changes from v1.0.0

  • 🎉 Initial release of the library.

    Core features included:

    • 📜 program arguments parsing
    • 📜 parser
    • help menu
    • 🔖 version