我正在编写自己的瑰宝,它可以在Sinatra应用程序和Rails应用程序之间共享。
gem生成一个记录器,该记录器将写入项目根目录中的默认位置“ / log / [logger_name]”。 我的问题是,我无法计算两个应用程序之间通用的项目根目录。
是否有一种方法可以计算项目运行的路径,而不管它是Rails还是Sinatra应用程序?是否有一种无需使用正则表达式即可解决的优雅方法?
答案 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')