-
Notifications
You must be signed in to change notification settings - Fork 395
Aggregate exceptions when parsing a settings hashtable #1275
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
travisclagrone
wants to merge
83
commits into
PowerShell:master
from
travisclagrone:aggregate-settings-file-exceptions
Closed
Changes from all commits
Commits
Show all changes
83 commits
Select commit
Hold shift + click to select a range
f8f8083
Annotatively research current state of exception handling surrounding…
travisclagrone b75dced
Throw a contextful terminating error if processing the argument of 'I…
travisclagrone 6648344
Refine id and category of error for when processing value of `Invoke-…
travisclagrone 0472359
Revert "Annotatively research current state of exception handling sur…
travisclagrone a012dec
Do not attempt id and category inference for the error to throw when …
travisclagrone 88ab1ec
Remove `using System.IO`
travisclagrone 2faab31
Revert "Remove `using System.IO`"
travisclagrone 05f6795
Remove unused local variable, 'validKeys'
travisclagrone cc3323b
Remove GetDictionaryFromHashtable(Hashtable)
travisclagrone 70035d6
Validate that no key is null
travisclagrone e3037f7
Validate that every key is a string
travisclagrone b6ac61b
Validate that no value is null
travisclagrone 4cf6aca
Validate that every key is unique, ignoring case
travisclagrone 3a5380b
Extract validation of "Rules" setting dictionary type from method Str…
travisclagrone 4ace3b9
Extract validation of dictionary key case-insensitivity from method S…
travisclagrone cfd7037
Extract validation of "Rules" setting values dictionary types from me…
travisclagrone 0736242
Remove method Settings.ConvertToRuleArgumentType(Dictionary<string, o…
travisclagrone c1e9da5
Merge branch 'refactor-out-ConvertToRuleArgumentType' into refactor-o…
travisclagrone ef510c9
Refactor validation of setting "Rules" type to accommodate finer-fide…
travisclagrone cd031f8
Validate that each key of the "Rules" setting is nonnull
travisclagrone 0193e28
Validate that each key of the "Rules" setting is a string
travisclagrone 74df2e1
Validate that each key of the "Rules" setting is unique, ignoring case
travisclagrone 5baba1e
Validate that each value of the "Rules" setting is nonnull
travisclagrone b495b24
Refactor validation that each value of the "Rules" setting is a dicti…
travisclagrone f55735f
Validate that each setting rule argument key is nonnull
travisclagrone 062bbd3
Validate that each setting rule argument key is of type string
travisclagrone 051f345
Validate that each setting rule argument key is unique, ignore case
travisclagrone ac1b17a
Validate that each setting rule argument value is nonnull
travisclagrone 1cfaa67
Assign parse of settings "Rules" to Settings.ruleArguments
travisclagrone 072e2f5
Merge branch 'refactor-out-GetDictionaryFromHashTable' into aggregate…
travisclagrone 98ec8f2
Validate (explicitly) that each setting key is nonnnull
travisclagrone 5a65743
Clean up validation that each setting key is a string type
travisclagrone 7862461
Clean up validation that each setting key is unique, ignoring case
travisclagrone 526ed3a
Clean up validation that each setting value is nonnull
travisclagrone ccbeccd
Clean up validation that the value for the 'Rules' setting is a dicti…
travisclagrone 5c56c85
Clean up validation that each 'Rules' setting rule key is nonnull
travisclagrone 1adb84a
Clean up validation that each setting rule key is a string type
travisclagrone feb0409
Clean up validation that each 'Rules' setting key is unique, ignoring…
travisclagrone 5a721ba
Clean up validation that each 'Rules' setting rule value is nonnull
travisclagrone 0f0f4c6
Clean up validation that each 'Rules' setting rule value is a diction…
travisclagrone 8dd5350
Refactor the new 'Setting*' resource strings standard format for exte…
travisclagrone 19fc6d4
Nest remaining successor loops for parsing 'Rules' setting
travisclagrone 9ba1ee9
Remove two now-unused resource strings
travisclagrone b2ac862
Clean up validation that 'Rules' setting rule argument key is nonnull
travisclagrone 63b5479
Clean up validation that each 'Rules' setting rule argument key is a …
travisclagrone 07cb4e3
Retroactively invoke String.ToLowerInvariant() on ruleName and argume…
travisclagrone c323a0b
Clean up validation that each 'Rules' setting rule argument key is un…
travisclagrone 12e3652
Clean up validation that each 'Rules' setting rule argument value is …
travisclagrone 237d226
Merge branch 'nest-Rules-setting-loops' into aggregate-settings-file-…
travisclagrone 82bc7d0
Add temp TODOs
travisclagrone 39d0063
Rename GetData interface
travisclagrone ceda89f
Add TODOs in GetData (now ParseSettingValueAsStrings)
travisclagrone 9f6e324
Validate that the string(s) setting value is nonnull
travisclagrone 6ced092
Convert a single string value to an unary array
travisclagrone 7b85fbe
Validate that the setting value is a collection
travisclagrone 1433176
Validate that each strings setting value element is nonnull
travisclagrone 17a3a42
Validate that each strings setting value element is a string type
travisclagrone f3a35d2
Tie off refactor GetData, and name it ParseSettingValueStringOrStrings
travisclagrone 82a4c44
Merge branch 'refactor-GetData_object_string' into aggregate-settings…
travisclagrone 6d974f0
Debug overzealous application of string.ToLowerInvariant()
travisclagrone 1c1022c
Standardize legacy method capitalization
travisclagrone fdc85cf
Update completed TODO comments
travisclagrone 1177b9a
Debug capitalization of setting names in exception messages
travisclagrone c588917
Scaffold method ParseSettingValueBoolean(object, string)
travisclagrone 275c7a8
Parse settings 'IncludeDefaultRules' and 'RecurseCustomRulePath' with…
travisclagrone 4e68735
Validate that boolean settings value is nonnull
travisclagrone 754c008
Validate that boolean setting value is a boolean type
travisclagrone be955e3
Complete parsing of boolean setting value
travisclagrone 26a7dde
Debug field assignment when parsing setting 'RecurseCustomRulePath'
travisclagrone 6d89b85
Merge branch 'define-method-ParseSettingValueBoolean_object_string' i…
travisclagrone dca15a8
Clean up unrecognized setting key handling
travisclagrone ea0d1b6
Aggregate exceptions within ParseSetingsHashtable(Hashtable)
travisclagrone f43dc67
Aggregate exceptions in ParseSettingValueBoolean(object, string) by a…
travisclagrone 09222c6
Aggregate exceptions in ParseSettingValueStringOrStrings(object, stri…
travisclagrone a1b7a8f
Merge branch 'implement-AggregateException-for-ParseSettingsHashtable…
travisclagrone ff27165
Merge branch 'master' into aggregate-settings-file-exceptions
travisclagrone cae559c
Debug exceptional element index incrementing in method Settings.Parse…
travisclagrone cf2504b
Trim trailing whitespace
travisclagrone c7ff89b
Do not `continue` if a "Rules" setting key is non-unique
travisclagrone d54384f
Refactor `Settings` constructor to use the guard chain pattern
travisclagrone 25710df
Refactor `ParseSettingsFile(string) => void` to `static ParseSettings…
travisclagrone 215f0e2
Fix sequencing of invocation of `ParseSettingsFileToHashtable` in `Se…
travisclagrone 417347a
Merge branch 'simplify-settings-constructor' into aggregate-settings-…
travisclagrone File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given that this is the only change in this file, I'm assuming this isn't used and can be taken out?