lib/validation/condition.rb
def ALL(condition, *conditions)
      conditions = [condition, *conditions]
      unless conditions.all?{|c|conditionable? c}
        raise TypeError, 'wrong object for condition'
      end

      ->list{
        enum = (
          (list.respond_to?(:each_value) && list.each_value) or
          (list.respond_to?(:all?) && list) or
          (list.respond_to?(:each) && list.each) or
          return false
        )

        conditions.all?{|cond|
          enum.all?{|v|
            _valid? cond, v
          }
        }
      }
    end
def ALL(condition, *conditions)
      conditions = [condition, *conditions]
      unless conditions.all?{|c|conditionable? c}
        raise TypeError, 'wrong object for condition'
      end

      ->list{
        enum = (
          (list.respond_to?(:each_value) && list.each_value) or
          (list.respond_to?(:all?) && list) or
          (list.respond_to?(:each) && list.each) or
          return false
        )

        conditions.all?{|cond|
          enum.all?{|v|
            _valid? cond, v
          }
        }
      }
    end
A condition builder.
 @param condition [Proc, Method, #===]
 @param conditions [Proc, Method, #===]
 @return [lambda]
   this lambda return true
   if all included objects match all conditions