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

时间:2018-06-20 13:42:52

标签: ruby-on-rails ruby ruby-on-rails-4 sinatra

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

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

是否有一种方法可以计算项目运行的路径,而不管它是Rails还是Sinatra应用程序?是否有一种无需使用正则表达式即可解决的优雅方法?

1 个答案:

答案 0 :(得分:1)

由于Rails和Sinatra都基于Rack,我将尝试使用Rack::Directory.new('').root获取项目根目录,并将其与记录器文件的相对路径连接起来。

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