草庐IT

hook_event_proc

全部标签

ruby - 为什么 to_proc 在 Ruby 改进中不起作用?

to_proc似乎不适用于细化中定义的方法:moduleArrayExtensionsrefineArraydodefsumreduce(0,:+)endendendusingArrayExtensionsputs[[1,2,3]].map{|array|array.sum}#=>6puts[[1,2,3]].map(&:sum)#=>array.rb:13:in`map':undefinedmethod`sum'for[1,2,3]:Array(NoMethodError)puts[1,2,3].method(:sum).to_proc.call#=>array.rb:14:in`m

ruby - Ruby 1.9 中更自然的 Proc 调用方式

我们知道,在Ruby1.9中有几种Proc调用方式f=->n{[:hello,n]}pf[:ruby]#=>[:hello,:ruby]pf.call(:ruby)#=>[:hello,:ruby]pf.(:ruby)#=>[:hello,:ruby]pf===:ruby#=>[:hello,:ruby]我很好奇,调用Proc的更“自然”方式是什么?“自然”可能意味着更像计算机科学。 最佳答案 第二个选项是迄今为止最常用的。pf.call(:ruby)#=>[:hello,:ruby]它使它更类似于标准方法。此外,一些库在验证参数检

ruby - Symbol#to_proc 自定义方法

我喜欢在Ruby中如何将方法作为block传递,就像这样使用Symbol#to_proc:[1.0,2.0,3.0].map(&:to_i)#=>[1,2,3]我还可以定义自己的lambda,times_two,并将其作为block传递:times_two=->(x){x*2}[1,2,3].map(×_two)#=>[2,4,6]虽然我似乎不能将times_two作为符号传递:[1,2,3].map(&:times_two)#=>ArgumentError:wrongnumberofarguments(0for1)然而,当我尝试用一​​种方法做同样的事情时,我得到了一个错误

ruby-on-rails - Heroku 拒绝成熟应用中的推送(pre-receive hook declined)

我得到了FAILED:http://devcenter.heroku.com/articles/bundler!Heroku推送被拒绝,无法通过Bundler安装gems到git@heroku.com:...![remoterejected]master->master(pre-receivehookdeclined)错误:未能将一些引用推送到…………..(完整列表见底部)这是一个目前在heroku上运行的应用程序,但heroku不允许gitpushherokumaster更新代码。但是,如果我将代码克隆到一个新文件夹并执行herokucreate以使用种子数据创建一个新应用程序,则新

ruby - 一元运算符和在 Ruby 中将 proc 作为参数传递

我无法理解下面这段代码。我想到了一元与号运算符并将proc作为参数传递给方法。但我真的无法将self传递给language.call。我是这样理解的:我们将self作为参数传递给proc/block语言。这对我来说没有任何意义。有人可以解释一下吗?:)classTranslatordefspeak&languagelanguage.call(self)endprotecteddeffrench'bonjour'enddefspanish'hola'enddefturkey'gobble'enddefmethod_missing(*args)'awkwardsilence'endend我

ruby - 如何计算使用 :focus in a git hook? 过滤的 RSpec 示例

我正在尝试编写一个Git预提交Hook,如果有一个标记有:focus的示例,它不会让用户提交。使用RSpec的API(即使它是私有(private)的也可以),有没有办法通过:focus过滤器找出示例的数量?我找到了example_count-instance_method.它可能很有用,但我不确定如何从外部脚本调用它。 最佳答案 Hereis一个Overcommit使用RSpecs私有(private)API的pre_commit钩子(Hook)通过:focus过滤器查找规范:require'rspec'moduleOvercom

已定义方法的 Ruby 钩子(Hook)?

我一直在谷歌上搜索这个问题,但没能找到答案,这让我觉得答案是否定的,但我想我会在这里问一下,以防有人确切知道。Ruby是否有钩子(Hook)用于定义方法(即在模块或类上)?如果不是,是否有人足够熟悉main对象的实现,知道当它们在顶层定义时,它是如何将方法精确地复制到Object的?对这个很好奇。感谢您提供任何信息:) 最佳答案 确实如此。模块#method_addedhttps://ruby-doc.org/core-2.2.2/Module.html#method-i-method_addedmoduleThingdefself

ruby - foo(&nil) 与 foo(&"not a proc") 的行为有何不同?

我从质问中发现[1,2,3].each(&nil)不会导致任何错误-它只是返回一个枚举器。相比之下,[1,2,3].each(&"")加注TypeError:wrongargumenttypeString(expectedProc)此外,&nil会导致block_given?返回假defblock_given_testerifblock_given?puts"Blockgiven"elseputs"Blocknotgiven"endendblock_given_tester(&nil)#=>Blocknotgiven这不是因为NilClass实现了to_proc-我检查了RDoc。我能

ruby-on-rails - 为什么 ruby​​ 中的 break 语句在使用 Proc.new 和符号时表现不同?

block的break语句(根据TheRubyProgrammingLanguage)定义如下:itcausestheblocktoreturntoitsiteratorandtheiteratortoreturntothemethodthatinvokedit.因此,当运行以下代码时,会导致LocalJumpError。deftestputs"enteringtestmethod"proc=Proc.new{puts"enteringproc";break}proc.call#LocalJumpError:iteratorhasalreadyreturnedputs"exitingt

ruby-on-rails - Capistrano 3 钩子(Hook)之前和之后

我刚转而使用Capistrano3,遇到了钩子(Hook)前后文档的一些问题。在文档中它显示了调用现有任务的以下内容before:starting,:ensure_userafter:finishing,:notify如果我使用这种语法,我会得到“不知道如何开始构建任务”相反,我必须执行以下操作才能完成我的任务。before"deploy:starting","dj:stop"after"deploy:finished","dj:start"dj任务位于Capistrano任务目录中的*.rake文件中。关于我可能遗漏的内容或文档是否需要更新的任何想法?ruby2.1.6rails4.