我正在创建一个红宝石宝石,我打算在红宝石上发布它。不幸的是,有一件事我不能用Ruby完成,需要用Bash完成(从脚本控制RVM)。
是否可以在 gem 中包含 Bash 脚本,如果是,我将如何在 gem 上下文中从 Ruby 运行脚本?
这是可能的,但脚本只能在类 unix 环境中执行,其中包括 bash。您可以将.sh放入bin/
或share/
文件夹中,只需调用:
name = 'your_gem_name'
g = Gem::Specification.find_by_name( name )
system( File.join( g.full_gem_path, 'share/myscript.sh' ) )
当然,您始终可以使用捆绑器 gem 模块来控制当前的 gem,而不是运行 shell 脚本。