def build(which = :all)
      return to_enum(:build, which) unless block_given?
      select_forms(which).each { |f| yield proc { f.build(self) } }
    end
def build(which = :all)
      return to_enum(:build, which) unless block_given?
      select_forms(which).each { |f| yield proc { f.build(self) } }
    end
Given a set of forms to build, it yields blocks that can be called to
 build a form.

 @param which [::Symbol, <::Symbol>] If this is `:all`, all of the forms
   available are built; otherwise, it only builds the forms whose names
   are listed.
 @yield [build] Yields for each form that can be built.
 @yieldparam build [::Proc<void>] A block that can be called to build
   a form.
 @return [void]