Ruby gem相当于"pip install -e"?

Nat*_*ens 18 ruby gem

在Python中,我可以使用"可编辑"模式从源安装包pip install -e.然后我可以继续编辑代码,其他Python脚本会自动选择任何更改import library

是否有类似的工作流程来开发Ruby宝石?什么是使用库的"Ruby方式",因为它们正在开发,而不是每次我对源进行更改时编译和安装gem?

Ale*_*kin 9

可以使用两种常用方法bundler:

  1. 一个人执行bundle install --path vendor/bundle并且不运行,bundle update除非一切都经过测试.
  2. 一个告诉捆绑商使用本地版本的gem:
    • Gemfile(这是不支持的mymaingem.gemspec,由于RubyGems的maintainence问题)gem 'mycutegem', :git => 'git://github.com/myname/mycutegem', :branch => 'master';
    • 在命令行中:bundle config local.mycutegem /path_to_local_git/mycutegem.

第一种方法是将所有内容下载到当前项目的子文件夹中(这里是它vendor/bundle.)随意修改那里的所有内容,它将被反映出来.

第二种方法可能更好.您将从github克隆gem并指示bundle使用相应git存储库的本地克隆.此方法使您能够将对主gem的更改发布到存储库中.一旦依赖回购发布,最新版本将由您的宝石订阅者检索,假设他们没有指示他们bundler使用他们的本地人.

希望这可以帮助.


art*_*pov 5

假设你的宝石代码存在于一个文件夹中(比方说my_project/mygem/lib).您可以my_project使用mygem代码获得一些Ruby 代码.

我会做的就是添加mygem/lib$LOAD_PATH全局变量表示文件的开头.有点像:

$LOAD_PATH << File.expand_path('lib', './mygem') # Resolve global paths

require 'a_file' # Would require "mygem/lib/a_file.rb"
Run Code Online (Sandbox Code Playgroud)