2.1" gem "sinatra-contrib", "~> 2.1" gem "puma", "~> 5.5" gem "activesupport", require: "active_support" gem "pry""> 2.1" gem "sinatra-contrib", "~> 2.1" gem "puma", "~> 5.5" gem "activesupport", require: "active_support" gem "pry""> 2.1" gem "sinatra-contrib", "~> 2.1" gem "puma", "~> 5.5" gem "activesupport", require: "active_support" gem "pry"">
# Gemfile

# frozen_string_literal: true

source "<https://rubygems.org>"
git_source(:github) {|repo_name| "<https://github.com/#{repo_name}>" }

ruby "3.0"

gem "sinatra", "~> 2.1"
gem "sinatra-contrib", "~> 2.1"
gem "puma", "~> 5.5"

gem "activesupport", require: "active_support"
gem "pry"

A Rack handler:

# config.ru
require './app'
run TheApp # or run Sinatra::Application
require "sinatra/base"
require "sinatra/json"
require "sinatra/reloader"

require "active_support"
require "active_support/core_ext"

class TheApp < Sinatra::Base
	configure :development do
    register Sinatra::Reloader
  end

	run! if app_file == $0
end