Raise an error when predicate is used outside a macro


If you write a rule in the following way:

Dry::Validation.Schema do

No exception will be raised because filled? will be accepted by method_missing as a valid predicate. Instead it will silently generate an empty rule without any validation.

This got me. I was a bit tired and I spent about 15 min trying to figure out what is wrong. I simply didn’t notice that I have a typo since I was expecting that a typo would give me an undefined method error.

I think that in such a case the gem should notice that the function call will have no effect and print a warning.

If you agree that it makes sense, I’d like to create the PR myself since I’d like to get a bit more familiar with the inner workings of dry validation.