作为 RSpec 的一部分,我需要引用一个包含在我所依赖的 gem 中的文件(称之为 gem foo)。我控制 gem foo,所以我可以根据需要对其进行更改。
Gem 'foo' 包含一个我需要在 rspec 规范中引用的文件。 是否有相当稳定的 RubyGem 或 Bundler API 来确定“foo”基目录?
假设我的 Gemfile 中已经需要“foo”: 在 Gemfile 中:
gem 'foo'
我想做这样的事情(在 something_spec.rb 中):
filename = File.expand_path('examples/xml/result.xml', Gem.gem_base_path('foo'))
什么是 gem_base_path API 调用?
最佳答案
我建议在您的 gem 中创建一个函数来执行此操作:
module Foo
class Configuration
def self.result_xml_path
File.realpath("../examples/xml/result.xml")
end
end
end
然后您可以在规范中执行以下操作:
filename = Foo::Configuration.result_xml_path
这要安全得多,因为您是从 gem 获取所有信息的。它看起来也更干净。
关于ruby-on-rails - gem 的基本/主目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5070322/