# Ruby Configuration Options
Source: https://speakeasy.com/docs/speakeasy-reference/generation/ruby-config

import { Table } from "@/mdx/components";



 This section details the available configuration options for the Ruby SDK. All configuration is managed in the `gen.yaml` file under the `ruby` section.

## Version and general configuration

```yml
ruby:
  version: 1.2.3
  author: "Author Name"
  packageName: "custom-sdk"
```

<Table 
  data={[
    { name: "version", required: "true", default: "0.0.1", description: "The current version of the SDK." },
    { name: "packageName", required: "true", default: "openapi", description: "The name of the package." },
    { name: "author", required: "true", default: "Speakeasy", description: "The name of the author of the published package." }
  ]}
  columns={[
    { key: "name", header: "Name" },
    { key: "required", header: "Required" },
    { key: "default", header: "Default Value" },
    { key: "description", header: "Description" }
  ]}
/>

## Method and parameter management
```yml
ruby:
  maxMethodParams: 4
```

<Table 
  data={[
    { name: "[maxMethodParams](/docs/customize/methods)", required: "false", default: "4", description: "Sets the maximum number of parameters before an input object is created. `0` means input objects are always used." }
  ]}
  columns={[
    { key: "name", header: "Name" },
    { key: "required", header: "Required" },
    { key: "default", header: "Default Value" },
    { key: "description", header: "Description" }
  ]}
/>

## Module management

```yml
ruby:
  module: "OpenApiSdk"
```

<Table 
  data={[
    { name: "module", required: "true", default: "OpenAPISdk", description: "[See Docs](https://ruby-doc.org/core-2.5.3/Module.html)." }
  ]}
  columns={[
    { key: "name", header: "Name" },
    { key: "required", header: "Required" },
    { key: "default", header: "Default Value" },
    { key: "description", header: "Description" }
  ]}
/>

## Import management

```yml
ruby:
  imports:
    option: "openapi"
    paths:
      callbacks: models/callbacks
      errors: models/errors
      operations: models/operations
      shared: models/components
      webhooks: models/webhooks
```

<Table 
  data={[
    { field: "option", required: "false", default: "\"openapi\"", description: "Defines the type of import strategy. Typically set to `\"openapi\"`, indicating that the structure is based on the OpenAPI document." },
    { field: "paths", required: "false", default: "{}", description: "Customizes where different parts of the SDK (e.g., callbacks, errors, and operations) will be imported from." }
  ]}
  columns={[
    { key: "field", header: "Field" },
    { key: "required", header: "Required" },
    { key: "default", header: "Default Value" },
    { key: "description", header: "Description" }
  ]}
/>

### Import paths

<Table 
  data={[
    { component: "callbacks", default: "models/callbacks", description: "The directory where callback models will be imported from." },
    { component: "errors", default: "models/errors", description: "The directory where error models will be imported from." },
    { component: "operations", default: "models/operations", description: "The directory where operation models (i.e., API endpoints) will be imported from." },
    { component: "shared", default: "models/components", description: "The directory for shared components, such as reusable schemas, and data models imported from the OpenAPI spec." },
    { component: "webhooks", default: "models/webhooks", description: "The directory for webhook models, if the SDK includes support for webhooks." }
  ]}
  columns={[
    { key: "component", header: "Component" },
    { key: "default", header: "Default Value" },
    { key: "description", header: "Description" }
  ]}
/>