我正在文件夹中制作一个 gem:
/Users/me/projects/ruby/gems/mygamename/
它的布局是这样的:
/Users/me/projects/ruby/gems/mygamename/mygamename.gemspec
/Users/me/projects/ruby/gems/mygamename/mygemname.rb
/Users/me/projects/ruby/gems/mygamename/lib/mygemname/file1.rb
/Users/me/projects/ruby/gems/mygamename/lib/mygemname/file2.rb
现在在我的另一个 ruby 项目中,我想在我的 Gemfile 中引用这个 gem,所以我做了:
gem 'mygemname', :path => "/Users/me/projects/ruby/gems/mygamename"
我知道我应该为我的 gem 编写测试以测试功能,但我很好奇我是否也可以从我的其他 ruby 项目(我在我的 Gemfile 中引用它的地方)进行集成测试。
如果我对 gem 进行更新,是否必须重新运行 bundle?还是它会继续从该文件夹中读取并获取更改?
关于如何从我的其他 ruby 项目测试它的任何其他建议?
同样,我将在 gem 本身中编写测试,但我想知道如果我想这样做,我该如何做。
最佳答案
您只需运行一次bundle install
。 Bundler 不会缓存或打包您的 gem,它直接指向您的文件夹。
重启规则与主应用中的相同。如果您更改 View 、 Assets 或自动加载的 ruby 文件,它们将自动重新加载。但是,如果您在应用程序中需要一些 lib 文件并更改了它们,则必须重新启动您的应用程序。默认情况下,Bundler 将需要 gem“mygemname”的“lib/mygemname.rb”,因此该文件将不可重新加载。
关于ruby - 开发 gem 时,更新后是否必须继续安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12558084/