public void render()

in codegen/smithy-ruby-codegen/src/main/java/software/amazon/smithy/ruby/codegen/generators/ClientGenerator.java [98:143]


    public void render() {
        FileManifest fileManifest = context.getFileManifest();

        writer.writePreamble();

        List<String> additionalFiles =
                middlewareBuilder.writeAdditionalFiles(context);
        for (String require : additionalFiles) {
            writer.write("require_relative '$L'", removeRbExtension(require));
            LOGGER.finer("Adding client require: " + require);
        }

        if (additionalFiles.size() > 0) {
            writer.write("");
        }

        writer
                .openBlock("module $L", settings.getModule())
                .write("# An API client for $L",
                        settings.getService().getName())
                .write("# See {#initialize} for a full list of supported configuration options");

        String documentation = new ShapeDocumentationGenerator(model, symbolProvider, context.getService()).render();

        writer
                .writeInline("$L", documentation)
                .openBlock("class Client")
                .write("include Seahorse::ClientStubs")
                .write("\n@middleware = Seahorse::MiddlewareBuilder.new")
                .openBlock("\ndef self.middleware")
                .write("@middleware")
                .closeBlock("end")
                .call(() -> renderInitializeMethod())
                .call(() -> renderOperations())
                .write("\nprivate")
                .call(() -> renderApplyMiddlewareMethod())
                .call(() -> renderOutputStreamMethod())
                .closeBlock("end")
                .closeBlock("end");

        String fileName =
                settings.getGemName() + "/lib/" + settings.getGemName()
                        + "/client.rb";
        fileManifest.writeFile(fileName, writer.toString());
        LOGGER.fine("Wrote client to " + fileName);
    }