假设我有一个gem,其中一些方法被称为
def grit
@grit ||= Grit::Repo.new(path)
rescue Grit::NoSuchPathError
raise NoRepository.new('no repository for such path')
end
假设现在我从我的rails app调用这个方法。有没有办法从我的应用程序中获取此NoRepository
实例,或者我应该更改此方法以使其返回此实例?
答案 0 :(得分:1)
我不确定fetch
NoRepository
实例的含义。基本上,您引用NoRepository
实例的方式是从该错误中解救出来。
调用grit
方法并从NoRepository
救出的代码:
begin
grit()
rescue NoRepository => nr
# Here `nr` is the instance of NoRepository
end
答案 1 :(得分:0)
NoRepository
不是存储库的实例,是path
未引用有效git存储库时引发的异常。
该方法应该完全正常。
如果出于某种原因你需要获得一个repo实例而不通过grit
助手,你可以直接打电话
Grit::Repo.new(path)
传递路径,例如
Grit::Repo.new('/tmp/foo')