Ruby 制作机架CLI

Ruby 制作机架CLI,ruby,rack,Ruby,Rack,我试图创建一个类似于Rails的框架,但只关注GraphQL。Rails曾经很好的特性是,它为Rack提供了CLI接口和config.ru。因此,您可以调用rackup或调用bin/rails服务器,rails应用程序将运行。我通过将Rack应用程序放入一个单独的文件(config/application.rb)来模拟此功能,然后在config.ru和CLI中导入该文件,然后实例化并运行 但是,我对机架中间件有一个问题。由于在实例化的Rack应用程序中运行使用MyMiddleware时,Rack

我试图创建一个类似于Rails的框架,但只关注GraphQL。Rails曾经很好的特性是,它为Rack提供了CLI接口和config.ru。因此,您可以调用
rackup
或调用
bin/rails服务器
,rails应用程序将运行。我通过将Rack应用程序放入一个单独的文件(
config/application.rb
)来模拟此功能,然后在
config.ru
和CLI中导入该文件,然后实例化并运行


但是,我对机架中间件有一个问题。由于在实例化的Rack应用程序中运行
使用MyMiddleware
时,Rack middleware似乎可以神奇地工作,因此我不确定如何在config.ru和CLI中实现这一点。现在看起来我需要在一个单独的位置实例化应用程序,添加中间件,然后将其移交给config.ru或CLI。我可以这样做,但感觉必须有一种方法以更干净的方式连接中间件。例如,我可以以某种方式要求config.ru,然后运行它吗?或者我可以在实例化应用程序之前连接中间件吗?

config.ru
只是一个ruby文件,它由Rails加载,作为运行每个命令的一部分。如果你愿意的话,你可以像平常一样要求它

如果您想真正了解Rails是如何实现的,那么配置加载将隐藏在Rails CLI的这一部分中: