草庐IT

exec_proc

全部标签

ruby-on-rails - "bundle exec rake"没有 't honor "没有”

在从源代码安装GitLab时,我在运行诸如rake之类的二进制文件时遇到问题。我自己的Ruby或Rails项目从未见过类似的问题:#bundleconfigSetforyourlocalapp(/mnt/data/www/gitlab.bitcetera.com/source/gitlab/.bundle/config):"1"pathSetforyourlocalapp(/mnt/data/www/gitlab.bitcetera.com/source/gitlab/.bundle/config):"vendor/bundle"withoutSetforyourlocalapp(/m

ruby - Net::SSH::Multi 使用 session.exec,如何立即获得输出? ruby

所以我一直在尝试使用Net::SSH::Multi通过SSH登录多台机器,然后使用session.exec("some_command")在远程机器上执行shell命令。代码:#!/usr/bin/rubyrequire'rubygems'require'net/ssh'require'net/ssh/multi'Net::SSH::Multi.startdo|session|#Connecttoremotemachines###Changethis!!###session.use'user@server'loop=1whileloop==1printf(">>")command=ge

Ruby Lambda 与 Proc LocalJumpError

Ruby和StackOverflow新手在这里学习Ruby并遇到了我的第一个主要障碍。我真的很难全神贯注于Procs和Lambdas。这是我正在使用的代码。defprocBuilder(message)Proc.new{putsmessage;return}enddeftestputs"enteringmethod"p=procBuilder("enteringproc")p.callputs"exitmethod"endtest按照设计,这是为了抛出LocalJumpError,但我不明白为什么。如果我不得不猜测它做了什么,我猜它最初会在p=procBuilder("entering

ruby-on-rails - 使用和不使用 bundle exec 运行 rake 命令的区别

使用和不使用bundleexec运行rake命令的主要区别是什么?我看到很少有帖子说当您使用bundleexec运行命令时,它将在gem文件中定义的gems版本范围内运行。如果是这样,那么应该强制使用bundleexec运行rake命令? 最佳答案 bundleexecrakesome:task在您的包的上下文中运行rake任务。你没有明确提到Rails,但我看到你的帖子被标记为Rails,所以一个设计的例子可能如下所示:出于某种正当理由,您在系统上安装了虚构的whateva-whatevagem的2.0版。您决定要从某个地方下载一

ruby - 为什么 Ruby 在调用 to_proc 时只允许通过符号引用方法?

这个有效:strings=["1","2","3"]nums=strings.map(&:to_i)我们看到应用于Symbol对象的&(to_proc方法)变成了一个block。但是,这不起作用:strings=["1","2","3"]nums=strings.map(&to_i)nums=strings.map("to_i".to_sym.to_proc)#...neitherdoesthis为什么不起作用?没有其他方法可以编写上面的代码吗?我很困惑,因为有两种方法可以访问类的方法:"1".method(:to_i).call#worksaswellas"1".method("to

Ruby:否定传递给 proc 的散列?

在ruby​​中,以下表达式:x.filter{|n|n.偶数?也可以写成:x.filter(&:even?)所以,我想知道如何写这个表达式?x.filter{|n|!n.even?}不使用odd?方法 最佳答案 正如Sam和engineerskmnky在下面问题的评论中所说,不可能执行x.filter{|n|!甚至?直接操作(实际上是block内的两个操作)。我想这只是一个微不足道的例子而不是真正的代码,所以如果你有没有逆向方法的方法并且你不想创建一个,你可以通过以下方式创建一个lambda或proc:not_even=->(n)

ruby - 当 shell 环境不存在时,如何使用 RVM 从特定的 Ruby 版本运行 "bundle exec"

好吧,我要坦白-我仍然运行着大量的FCGI设置(只是配置了很多服务器)。我正在尝试使其适应rvm。在fcgi设置中,我可以指定要执行的命令行命令以运行我的应用程序(Sinatra、Rack、Bundler等),这就是我在没有rvm的情况下所做的"bin-path"=>"bundleexecrackup","bin-environment"=>("RACK_ENV"=>"development"),假设我的rackup文件只是config.ru。现在,在我的Mac上这有效:"bin-path"=>env.HOME+"/.rvm/gems/ruby-1.9.2-p180/bin/bundl

ruby - 明确地产生 n 值给 Symbol#to_proc

我discoveredtonightRuby的Symbol#to_proc处理第一个以外的其他产生值作为方法调用的参数。换句话说,这两个方法调用是等价的:yields_three{|a,b,c|a.foo(b,c)}yields_three(&:foo)我认为这可能是一个值得探索的强大(或至少有趣)的习语,因此我尝试了以下方法:classPlayerdefadd_score(points)@score+=pointsendendmy_array_of_players.zip(my_array_of_turn_scores).each(&:add_score)不幸的是,这不起作用:NoM

ruby - 比较 Procs 的内容,而不是结果

使用Ruby1.9.2问题比较两个过程的内容,而不是结果。我知道由于haltingproblem无法测试结果但没关系;反正我不想测试结果。例如proc{@x=="x"}==proc{@x=="x"}=>false#doh!返回false因为procs中的对象不一样。我笨拙的解决方案我有一个解决方案,有点像我想要的,但它并没有真正测试过程是否与我放入的内容“相等”。在我的特定情况下,我的过程的格式将始终是对实例变量的bool测试,如下所示:{@x=="x"&&@y!="y"||@z==String}我写了一个动态构建类并创建实例变量设置为指定值的方法:defcreate_proc_tes

initialize() 中的 Ruby proc 与 lambda

我今天早上发现proc.new在类初始化方法中工作,但不是lambda。具体来说,我的意思是:classTestClassattr_reader:proc,:lambdadefinitialize@proc=Proc.new{puts"HellofromProc"}@lambda=lambda{puts"Hellofromlambda"}endendc=TestClass.newc.proc.callc.lambda.call在上述情况下,结果将是:HellofromProctest.rb:14:in`':undefinedmethod`call'fornil:NilClass(NoM