Rails 和 Sinatra 应用程序之间共享的 Gem



我正在编写自己的宝石,它在Sinatra应用程序和Rails应用程序之间共享。

gem 会生成一个记录器,该记录器将写入项目根目录中的默认位置 - "/log/[logger_name]"。 我的问题是我无法计算两个应用程序之间通用的项目根目录。

有没有办法计算项目运行的路径,无论是Rails还是Sinatra应用程序?有没有一种优雅的方法可以在不使用正则表达式的情况下解决它?

由于 Rails 和 Sinatra 都基于 Rack,我会尝试使用Rack::Directory.new('').root获取项目根目录,并使用 logger 文件的相对路径连接它。

project_root = Rack::Directory.new('').root
logger_path = Pathname.new(project_root).join('log/production.log')

最新更新