public RubyClientCodegen() { super(); modelPackage = "models"; apiPackage = "api"; outputFolder = "generated-code" + File.separator + "ruby"; modelTemplateFiles.put("model.mustache", ".rb"); apiTemplateFiles.put("api.mustache", ".rb"); embeddedTemplateDir = templateDir = "ruby"; typeMapping.clear(); languageSpecificPrimitives.clear(); reservedWords = new HashSet<String>( Arrays.asList( // local variable names used in API methods (endpoints) "path", "query_params", "header_params", "_header_accept", "_header_accept_result", "_header_content_type", "form_params", "post_body", "auth_names", // ruby reserved keywords "__FILE__", "and", "def", "end", "in", "or", "self", "unless", "__LINE__", "begin", "defined?", "ensure", "module", "redo", "super", "until", "BEGIN", "break", "do", "false", "next", "rescue", "then", "when", "END", "case", "else", "for", "nil", "retry", "true", "while", "alias", "class", "elsif", "if", "not", "return", "undef", "yield")); languageSpecificPrimitives.add("int"); languageSpecificPrimitives.add("array"); languageSpecificPrimitives.add("map"); languageSpecificPrimitives.add("string"); languageSpecificPrimitives.add("DateTime"); typeMapping.put("string", "String"); typeMapping.put("char", "String"); typeMapping.put("int", "Integer"); typeMapping.put("integer", "Integer"); typeMapping.put("long", "Integer"); typeMapping.put("short", "Integer"); typeMapping.put("float", "Float"); typeMapping.put("double", "Float"); typeMapping.put("number", "Float"); typeMapping.put("date", "Date"); typeMapping.put("DateTime", "DateTime"); typeMapping.put("boolean", "BOOLEAN"); typeMapping.put("array", "Array"); typeMapping.put("List", "Array"); typeMapping.put("map", "Hash"); typeMapping.put("object", "Object"); typeMapping.put("file", "File"); // remove modelPackage and apiPackage added by default Iterator<CliOption> itr = cliOptions.iterator(); while (itr.hasNext()) { CliOption opt = itr.next(); if (CodegenConstants.MODEL_PACKAGE.equals(opt.getOpt()) || CodegenConstants.API_PACKAGE.equals(opt.getOpt())) { itr.remove(); } } cliOptions.add( new CliOption(GEM_NAME, "gem name (convention: underscore_case).") .defaultValue("swagger_client")); cliOptions.add( new CliOption( MODULE_NAME, "top module name (convention: CamelCase, usually corresponding" + " to gem name).") .defaultValue("SwaggerClient")); cliOptions.add(new CliOption(GEM_VERSION, "gem version.").defaultValue("1.0.0")); cliOptions.add(new CliOption(GEM_LICENSE, "gem license. ").defaultValue("Apache-2.0")); cliOptions.add(new CliOption(GEM_HOMEPAGE, "gem homepage. ").defaultValue("http://swagger.io")); cliOptions.add( new CliOption(GEM_SUMMARY, "gem summary. ") .defaultValue("A ruby wrapper for the swagger APIs")); cliOptions.add( new CliOption(GEM_DESCRIPTION, "gem description. ") .defaultValue("This gem maps to a swagger API")); cliOptions.add(new CliOption(GEM_AUTHOR, "gem author (only one is supported).")); cliOptions.add(new CliOption(GEM_AUTHOR_EMAIL, "gem author email (only one is supported).")); }