当Rails通过bundler加载我的gem时获取Gemfile的路径

时间:2013-01-18 19:08:13

标签: ruby-on-rails ruby ruby-on-rails-3 gem

我已经构建了一个带有开发依赖项,生成器和东西的小型rails开发工具包供我个人使用。我希望能够在加载gem时配置一些东西。对于像pry-rails这样的宝石,初始化程序的执行时间太晚了。

因此,在项目根目录中使用配置文件会很酷。虽然在我的gem加载时定义了Rails,但Rails.root返回nil。如何让项目获得root权限?它可以是hackish和一切,只适合一些人。

这是我的“初始化程序”,在绝对解决一个项目的配置时效果很好:

class MyDevkit < MonkeyDevkit
  # =======
  # = Pry =
  # =======
  # disable pry components completely
  #disable :pry

  # do not make pry rails default console
  #disable :pry, :console

  # ========
  # = Mail =
  # ========
  # disable mail components completely
  #disable :mail

  # disable letter opener
  #disable :mail, :letter_opener

  # ========
  # = Misc =
  # ========
  #disable :rack_profiler
  #disable :better_errors
  #disable :quiet_assets

  # comment to (temporary) disable the devkit completely
  kitify!
end

1 个答案:

答案 0 :(得分:2)

你可以尝试使用Dir.getwd获取当前工作目录(注意:当前工作目录并不意味着你的gem目录。它是一个调用ruby可执行文件的目录),这应该与你得到的相同来自Rails.root(除非某些宝石改变工作目录)