Skip to navigation

Adding custom code

View as Markdown
Enterprise feature

This feature is available only for the Enterprise plan. To get started, reach out to support@buildwithfern.com.

This page covers how to add custom logic, methods, and dependencies to your Ruby SDK.

Adding custom logic

To get started adding custom code:

These steps cover adding a new custom file to the SDK. To preserve line-level edits to a generated file, use Replay instead.
1

Create a new file and add your custom logic

lib/<gem_name>/helper.rb
module YourGem
class Helper
def self.my_helper
puts "Hello World!"
end
end
end
2

Add your file to .fernignore

.fernignore
# Specify files that shouldn't be modified by Fern
lib/<gem_name>/helper.rb
3

Consume the helper

Now your users can consume the helper function by importing it from the SDK.

require "your_gem"
YourGem::Helper.my_helper

Adding custom SDK methods

Fern also allows you to add custom methods to the SDK itself (e.g. client.my_method() ) by inheriting the Fern generated client and then extending it.

1

Update generators.yml configuration

Name your Fern-generated client something like BaseClient to reflect that this client will be extended.

generators.yml
- name: fern-ruby-sdk
version: 1.25.0
config:
clientClassName: BaseClient
2

Import and extend the generated client

First, import the Fern generated base client and extend it. Then, add whatever methods you want.

lib/<gem_name>/my_client.rb
require_relative "client"
module YourGem
class MyClient < BaseClient
def my_helper
puts "Hello World!"
end
end
end
3

Update .fernignore

Add the my_client.rb to .fernignore.

.fernignore
+ lib/<gem_name>/my_client.rb
4

Consume the method

Instead of constructing the generated client, your users will want to construct the extended client.

require "your_gem"
client = YourGem::MyClient.new

Now your users can consume the helper function by importing it from the SDK.

client.my_helper

Adding custom dependencies

To add gems that your custom code requires, update your generators.yml.

generators.yml
- name: fern-ruby-sdk
version: 1.25.0
config:
extraDependencies:
faraday: ">= 1.0"
extraDevDependencies:
rspec: "~> 3.0"