From 5f3f5781a61b89cd7f2aa19ee462a0ad839dd3c6 Mon Sep 17 00:00:00 2001 From: John Keiser Date: Fri, 18 Dec 2015 09:18:53 -0800 Subject: Typos --- nil-discussion.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/nil-discussion.md b/nil-discussion.md index e34bd48664..f0fb966f91 100644 --- a/nil-discussion.md +++ b/nil-discussion.md @@ -73,6 +73,8 @@ Things we want to be true: but *not* valid for `default: lazy { nil }` (or more likely, `default: lazy { other_property_that_could_be_nil }`). +## Possible Solutions + The possible solutions I can come up with are below. I think the one that meets all our criteria with the least complexity is "Properties with no default or `default: nil` are valid", with "Properties with no default are valid" running @@ -107,6 +109,8 @@ property :config_path, String, default: lazy { "#{path}/default_config.ini" } ### Properties with no default treat `nil` as valid +This is tied with the next one for my favorite. + This passes all of the rules, and is simple. If the default is not specified, then we are giving you a default, and we should take our own steps to make sure it is a valid one. @@ -118,12 +122,14 @@ property :x, String property :x, String, default: nil # ValidationError when declaring this ``` -This is not intuitive. It's the least bad of the alternatives in my opinion, -as the failure of intuition would be revealed immediately on declaration with a -clear error message. +This is not intuitive. It's not terrible in my opinion, as the failure of +intuition would be revealed immediately on declaration with a clear error +message. ### Properties with no default or `default: nil` are valid +This is tied with the previous one for my favorite. + In this, we solve the above problem by treating `default: nil` as valid (but no other construct). I don't think any other problems remain. This is arguably a bit more complex than the previous one, but it's also less surprising. -- cgit v1.2.1