[erlang-questions] Deputy: Type Conversion and Validation

Ladislav Lenart lenartlad@REDACTED
Wed Apr 4 08:23:58 CEST 2012


You're welcome :-)

You can also add two more options - protected versions of {func,...}.
You are right that my concept can mask programming errors as input
errors. Personally, I don't see this as a problem in this context,
because all this is very easy to (unit) test. Hence I think I would
quickly discover such an omission. Nevertheless making true/false
synonyms may turn to be good enough.


Happy Erlang hacking,

Ladislav Lenart


On 3.4.2012 23:30, Tom Burdick wrote:
> I like the idea of making true/false synonymous with ok/false. I'm not
> sure wrapping the fun handler with a try/catch clause is the right
> thing to do though, in that case I believe it should be left as a
> programming error.
>
> I fixed the readme to reflect your comments, though I have not
> bothered to actually test whats in the readme which is horrible I
> know!
>
> Maybe later this week I'll do both! Thank you for the comments.
>
> Tom
>
>
> On Tue, Apr 3, 2012 at 1:37 PM, Ladislav Lenart<lenartlad@REDACTED>  wrote:
>> Hello.
>>
>> Nice little work :-)
>>
>> Just a few notes:
>> * Documentation typo in Proplist Usage - Rules is defined but later
>>   RuleSet is used.
>> * Documentation about Addon Type Conversion seems unfinished.
>> * Why the advanced API needs to be exported at all?
>> * I would modify interface of convert/2 to either:
>>   * return the result value directly | raise an error,
>>   * use tagged tuples {ok, Value} | error.
>> * I think check/3 returns errors in reversed order when stop is used.
>> * I would suggest to extend (both) {func,...} to
>>
>>       check_rule(Value, {func, Fun}) when is_function(Fun, 1) ->
>>           try
>>               Fun(Value)
>>           catch
>>               _:_ ->
>>                   error
>>           end;
>>
>>   This will enable you to write shorter rules. Instead of
>>
>>       Test = fun (Value) ->
>>           case Value>  1 andalso Value<  10 of
>>               true ->  ok;
>>               false ->  error
>>           end
>>       end
>>
>>   you will be able to write
>>
>>       Test = fun (Value) ->  true = Value>  1 andalso Value<  10, ok end
>>
>>   or (in a different style)
>>
>>       Test = fun (Value) ->
>>           true = Value>  1,
>>           true = Value<  10,
>>           ok
>>       end
>>
>>   and if you allow true as synonym for ok and false as synonym for error,
>>   you can omit ok at the end.
>>
>>
>> HTH,
>>
>> Ladislav Lenart
>>
>>
>>
>> On 3.4.2012 19:12, Tom Burdick wrote:
>>>
>>> After not finding a validation/conversion library I felt worked well
>>> for what I wanted (REST interface) I made my own.
>>>
>>> Would greatly appreciate any feedback!
>>>
>>> http://github.com/treetopllc/deputy
>>>
>>> Thanks!
>>>
>>> Tom
>>> _______________________________________________
>>> erlang-questions mailing list
>>> erlang-questions@REDACTED
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>
>>
>





More information about the erlang-questions mailing list