Using the Ruby Runtime with Vercel Functions
The Ruby runtime is used by Vercel to compile Ruby Vercel functions that define a singular HTTP handler from .rb files within an /api directory at your project's root.
Ruby files must have one of the following variables defined:
Handlerproc that matches thedo |request, response|signature.Handlerclass that inherits from theWEBrick::HTTPServlet::AbstractServletclass.
For example, define a index.rb file inside a /api directory as follows:
require 'cowsay'
Handler = Proc.new do |request, response|
name = request.query['name'] || 'World'
response.status = 200
response['Content-Type'] = 'text/text; charset=utf-8'
response.body = Cowsay.say("Hello #{name}", 'cow')
endAn example index.rb file inside an
/api directory.
Inside a Gemfile define:
source "https://rubygems.org"
gem "cowsay", "~> 0.3.0"An example Gemfile file that defines
cowsay as a dependency.
New deployments use Ruby 3.3.x as the default version.
You can specify the version of Ruby by defining ruby in a Gemfile, like so:
source "https://rubygems.org"
ruby "~> 3.3.x"This runtime supports installing dependencies defined in the Gemfile. Alternatively, dependencies can be vendored with the bundler install --deployment command (useful for gems that require native extensions). In this case, dependencies are not built on deployment.
Was this helpful?