Ruby configuration
You can customize the behavior of the Ruby SDK generator in generators.yml:
auto-generate-idempotency-key
Overrides the API-wide api.settings.auto-generate-idempotency-key for this SDK. Set true to attach an idempotency-key header to eligible requests (POST and PUT by default) unless the caller provides one, or false to opt this SDK out when auto-generation is enabled API-wide. Pass an object to customize header-name and methods.
clientModuleName
Custom name for the client module. This allows you to customize the module name that wraps the generated client class.
customPagerName
Custom name for the pager class used in paginated endpoints. By default, the generator creates a standard pager class, but you can customize its name to match your SDK’s naming conventions.
customReadmeSections
Add custom sections to the generated README file. Each section requires a title and content.
The content supports template variables like {{ packageName }} that are replaced with actual values during generation.
enableWireTests
When enabled, generates mock server (wire) tests to verify that the SDK sends and receives HTTP requests as expected.
extraDependencies
Enterprise feature
This feature is available only for the Enterprise plan. To get started, reach out to support@buildwithfern.com.
Specify additional dependencies to include in the generated SDK’s gemspec. This is useful when you need to add custom gems that your SDK depends on.
extraDevDependencies
Enterprise feature
This feature is available only for the Enterprise plan. To get started, reach out to support@buildwithfern.com.
Specify additional development dependencies to include in the generated SDK’s Gemfile. These are dependencies used for development and testing but not required by end users.
maxRetries
The default number of retries for failed requests. When not set, the generated SDK uses its own built-in default. SDK users can still override this per-request via request options.
moduleName
Custom module name for the generated SDK. This sets the top-level Ruby module that wraps all generated code. By default, the module name is derived from the package name in your publish configuration or your organization name.
This generates code like:
offsetSemantics
Controls how the offset parameter is interpreted for auto-paginated endpoints.
item-index: The offset counts individual items (e.g., offset 20 skips the first 20 items).page-index: The offset counts pages (e.g., offset 3 skips to page 3).
omitFernHeaders
When enabled, the generated SDK omits the X-Fern-Language, X-Fern-SDK-Name, and X-Fern-SDK-Version headers from HTTP requests.
includePlatformHeaders
When enabled, the generated SDK sends a single structured User-Agent header of the form {sdkName}/{version} ({os}; {arch}) {runtime}/{runtimeVersion} (for example, my-sdk/0.0.1 (linux; x86_64) Ruby/3.2.0), carrying SDK, operating system, architecture, and runtime information in place of the default User-Agent and discrete platform headers. A configured user-agent template supplies the leading product token. If omitFernHeaders is enabled, no User-Agent or platform headers are sent and this option has no effect.
allowUserAgentAppInfo
When enabled, the generated client accepts an optional app_info keyword of the shape { name:, version:, comment: }, which appends a {name}/{version} ({comment}) product token to the User-Agent header so an application built on the SDK can identify itself to the API. The application passes a required name plus an optional version and comment; omitted or blank values are dropped from the token. An explicit User-Agent header takes precedence, and omitFernHeaders suppresses the header entirely.
requirePaths
Enterprise feature
This feature is available only for the Enterprise plan. To get started, reach out to support@buildwithfern.com.
Paths to files that will be auto-loaded when the gem is required. This is useful for including custom integrations or extensions that should be loaded automatically.
This will load lib/<gem>/custom_integration.rb and lib/<gem>/sentry_integration.rb when the gem is required.
<ParamField path=“user-agent” type=“string” default=“{packageName}/{version}” required= toc=>
Sets a custom User-Agent header template for requests sent by the generated SDK. The template is resolved at generation time and supports the {packageName}, {version}, {language}, {generatorVersion}, {organization}, and {apiName} placeholders.
This sends User-Agent: plantstore-ruby-sdk/0.1.0. With includePlatformHeaders enabled, the resolved value leads the structured header: User-Agent: plantstore-ruby-sdk/0.1.0 (linux; x86_64) Ruby/3.2.0. A value that doesn’t end in a version, such as plantstore/sdk-ruby, is used as-is. The allowUserAgentAppInfo token is appended after either form.
<ParamField path=“respectOptionalRequestBody” type=“boolean” default=“false” required= toc=>
Lets callers omit the request body on endpoints with an optional request body. A call that omits it sends no body and no Content-Type header, instead of an empty JSON object ({}). Enable this when your API treats a missing body differently from an empty one.
Only applies to request bodies declared as a single named type. Required bodies, inlined request properties, and form-urlencoded bodies are unaffected.</ParamField>