def clauses(cond = nil)
      (cond ? @clauses.select { |item| cond.equal? item.type } : @clauses)
        .map(&:to_s)
    end
def clauses(cond = nil)
      (cond ? @clauses.select { |item| cond.equal? item.type } : @clauses)
        .map(&:to_s)
    end
@!method initialize(type, *attributes, &block)
 Initializes the statement with a type, attributes and block

 @param (see QueryBuilder::Clause)
 @param [Proc] block
   The block that returns an array of clauses for the statement

 @!method clauses(type = nil)
 Returns array of chunks of code for the statement's clauses

 @param [Symbol] type The optional type to select clauses by

 @return [Array<String>]