jjzjj

shelled-out

全部标签

ruby - 使用 Ruby gem 部署 shell 脚本并安装在 bin 目录中

我希望在我的gem的bin目录中放置一个shell脚本,以及属于该包的其他Ruby程序。我希望将这个shell脚本按原样安装在bin目录中(即,没有包装器)。Rubygems有可能吗?如果不可能的话,我会很高兴安装后Hook。有人有这方面的经验吗? 最佳答案 这里描述了这个问题:https://github.com/rubygems/rubygems/issues/88如果您正在开发的gem仅供您自己使用,您可以简单地安装它geminstall--no-wrappermy_gem我认为您最好编写一个运行bash脚本的ruby​​脚本

ruby - 我怎样才能像 shell 那样拆分字符串来填充 ARGV?

我想要一个Ruby方法或一个正则表达式,它们可以让我将一串命令行参数拆分成一个类似ARGV的数组。我要问的是类似于thisquestion,但在Ruby中。我正在为使用Trollop处理命令行输入的Ruby程序编写单元测试(尽管这个问题对于任何其他选项解析器都是相同的)。我要测试的方法如下所示:defparse_args(args)Trollop::options(args)do#...parseoptionsbasedonflagsendend在我的程序中,我调用了parse_args(ARGV)。在我的测试中,我认为我可以传入一个按空格拆分的字符串,但这不是ARGV的行为。比较以下

ruby-on-rails - 找不到 id=sign_out 的用户

注销链接在我的Rails应用程序中不起作用。我检查了下面列出的routes.rb,我的application.html.erb看起来遵循正确的路径。出现以下错误。ActiveRecord::RecordNotFoundinUsersController#showCouldn'tfindUserwithid=sign_outRails.root:/Users/patrickwalsh/rails_projects/ytutorialApplicationTrace|FrameworkTrace|FullTraceapp/controllers/users_controller.rb:4:

ruby - 如何让 fish shell 默认使用 rvm ruby

我在MacOSX10.9.1上使用fishshell2.10。我想在我的终端中使用我使用RVM作为默认安装的Ruby,但我似乎无法完成这项工作。我已经尝试过rvmuse2.1.0--default但在打开一个新终端时我仍然得到以下信息:>whichruby/usr/bin/ruby运行rvm命令会加载ruby​​:>whichruby/usr/bin/ruby>rvm[...]>whichruby/Users/alex/.rvm/rubies/ruby-2.1.0/bin/ruby但每次我打开一个新终端时都必须这样做很烦人。 最佳答案

ruby - 从 Ruby(不是 shell)使用 Compass

我正在用Ruby构建一个脚本,我想在其中使用Compass编译单个SCSS文件。我试图使它尽可能简单,并希望避免使用config.rb文件。我只想通过直接Ruby设置几个设置,并告诉Compass将单个SCSS文件编译成一个CSS文件。我知道这必须是可能的,但我还没有找到任何关于如何做到这一点的合适文档。任何帮助将不胜感激。 最佳答案 你是对的,关于如何从Ruby使用Compass并没有真正全面的文档。这很不幸,但我们不要让文档等小细节阻止我们!第一次尝试当我想做同样的事情时,我只是在compass周围闲逛source并且能够将这个

ruby - 如何指定用于 ruby​​ 系统调用的 shell?

我正在尝试通过system(或使用反引号)从ruby​​运行命令,但遇到了问题。当我尝试调用一个命令时,shell无法找到它,即使我知道如果我直接调用它它是有效的。例如:`zip`>>sh:zip:commandnotfound问题似乎是ruby​​使用的是shshell,其中$PATH设置不正确,而不是bash,我不确定为什么。运行我的应用程序的用户默认设置为使用bash。有没有办法告诉ruby​​使用bash而不是sh? 最佳答案 据我所知,唯一的方法是显式调用shell,例如`bash-czip`或`#{ENV['SHELL'

ruby - 你如何将 shell 输出通过管道传递给 ruby​​ -e?

假设我在我的终端中输入了一些东西,比如:ls|grepphrase这样做之后我意识到我想删除所有这些文件。我想使用Ruby来这样做,但不太清楚要将什么传递给它。ls|grepphrase|ruby-e"whatdoIputinheretogothrougheachlinebyline?" 最佳答案 以此为起点:ls~|ruby-ne'print$_if$_[/^D/]'哪个返回:DesktopDocumentsDownloadsDropbox-n标志表示“遍历所有传入行”并将它们存储在“默认”变量$_中。我们没有看到该变量使用太多,

ruby - 如何将 Rubymine IDE 调试器附加到 shell 进程?

我想使用Rubymine的IDE调试器来调试在命令shell中运行的ruby​​进程,因为它是生成的,例如通过“railsconsole”。在运行网络服务器(从Rubymine中)或测试套件(也从Rubymine中运行)时,我已经从调试器中获得了很大的收获。但是,如果该进程不是由Rubymine启动的,我不知道如何附加调试器。我在带有SunJava1.6.0_26、RubyREE1.8.7和最新调试gems的Ubuntu上使用Rubymine3.2.4版本:ruby-debug-base(0.10.4)ruby-debug-ide(0.4.17.beta8)想法?

ruby - 使用适当的参数转义从 ruby​​ 调用 shell 命令

我想安全地做以下事情system"echo'#{params[:message]}'>/dev/log"调用native命令时转义参数的正确方法是什么?(邪恶输入示例:';rm-Rf*;echo'我赢了。) 最佳答案 如果你这样做system"echo",params[:message]然后第二个参数,将作为参数发送,它不会被执行。 关于ruby-使用适当的参数转义从ruby​​调用shell命令,我们在StackOverflow上找到一个类似的问题: htt

ruby - 如何从当前 shell 中卸载 RVM?

如何从当前shell中卸载RVM?我找到了this,但我不确定如何使用它。它没有任何记录。 最佳答案 __rvm_unload是一个shell函数,可以像普通命令一样运行:$__rvm_unload 关于ruby-如何从当前shell中卸载RVM?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/19420722/