草庐IT

git - 更聪明的 rebase 避免冗余工作?

全部标签

ruby - Ruby 模块包含为什么不是真正的 'multiple inheritance' 以及 Ruby 风格如何避免与多重继承相关的问题?

据说Matz说“mixins几乎可以做多重继承做的所有事情,而没有相关的缺点”(Matz的话)。首先,为什么Ruby模块包含不是“多重继承”?在我看来,模块和类之间的区别很小。当模块用作父类(superclass)时,不能实例化模块这一事实是无关紧要的。我也知道,连续的模块包含形成了一个从类向上延伸的继承链(不是树)。但是,对我来说,这不足以将它与“多重继承”区分开来,因为Python多重继承系统也“线性化”了父类(superclass)链(使用C3algorithm),只是Ruby的“线性化”过程要简单得多。那么,Ruby模块混入与Python等语言中的多重继承究竟有什么区别呢?为什

ruby - "(1..4).inject(&:+)"在 Ruby 中如何工作

我发现这段Ruby代码非常有趣(1..4).inject(&:+)好的,我知道inject是做什么的,我知道这段代码基本上等同于(1..4).inject(0){|a,n|a+n}但它究竟是如何工作的呢?为什么&:+和写block{|a,n|是一样的a+n}?为什么不需要初始值?我同意初始值为0,但是(1..4).inject(&:*)也可以,并且初始值必须为1... 最佳答案 来自Rubydocumentation:Ifyouspecifyasymbolinstead,theneachelementinthecollectionw

ruby-on-rails - 您使用 Rails 进行版本控制和部署的工作流程是什么?

尤其是在考虑新的Rails项目时,您的版本控制和部署工作流程是什么样的?你使用什么工具?我对Mac、*nix和Windows工作机器的答案很感兴趣。假设一个*nix服务器。如果需要,我会为清楚起见进行编辑。 最佳答案 使用预装的插件和卡住的gem创建我的个人Rails2.1.1模板的副本。更改数据库密码、session密码/名称和deploy.rb。根据需要在GitHub上创建私有(private)或公共(public)存储库。将空的Rails项目推送到GitHub。SSH到服务器并配置apache(从旧项目复制虚拟主机文件和mon

ruby - 如何阻止上帝留下陈旧的 Resque 工作流程?

我正在尝试了解如何监控travis-ci的resqueworker|与god以这样一种方式停止resquewatchviagod不会留下陈旧的工作进程。在下文中,我谈论的是工作进程,而不是fork作业子进程(即队列一直是空的)。当我像这样手动启动resqueworker时:$QUEUE=buildsrakeresque:work我会得到一个进程:$psx|grepresque7041s001S+0:05.04resque-1.13.0:Waitingforbuilds一旦我停止工作任务,这个过程就会消失。但是当我开始与上帝(exactconfigurationishere,基本上与re

ruby - 内省(introspection)模块类时 "#map(&proc)"习惯用法如何工作?

呈现成语我找到了一个interestingbutunexplainedalternative到一个公认的答案。该代码在REPL中显然有效。例如:moduleFooclassBardefbazendendendFoo.constants.map(&Foo.method(:const_get)).grep(Class)=>[Foo::Bar]但是,我并不完全理解这里使用的成语。特别是,我不明白&Foo的用法,它似乎是某种闭包,或者#grep的这种特定调用如何对结果进行操作。解析成语到目前为止,我已经能够解析其中的点点滴滴,但我并没有真正看到它们是如何组合在一起的。以下是我认为对示例代码的理

ruby - 为什么我们应该避免以其修饰符形式使用 rescue?

我会定义值(value)。但是这个值可能在散列的键值中。如果此键不存在,我将使用rescue定义值为nil。例如foo=bar[:a][:b][:c]救援nil但在实践中告诉我糟糕的风格,因为我在其修饰符形式中使用了rescue。我将更改逻辑以使用检查三个条件。foo=bar[:a][:b][:c]ifbar.key?(:a)&&bar[:a].key?(:b)&&bar[:a][:b].key?(:c)我真的很想知道为什么我们应该避免使用修饰符形式的rescue? 最佳答案 Whyshouldweavoidusingrescuei

Ruby 元编程,RSpec 的 'should' 是如何工作的?

我正在阅读RSpec,并试图弄清楚RSpec的“应该”是如何实现的。有人可以介绍一下这个函数的元性质是如何工作的吗?代码位于:http://github.com/dchelimsky/rspec/blob/master/lib/spec/expectations/extensions/kernel.rbTIA,-丹尼尔澄清:target.should==5target的值是如何传递给“should”的,而“should”又是“==”而不是5? 最佳答案 看看classOperatorMatcher.这一切都归结为Ruby允许您省略句

ruby - 检查 C 编译器是否工作...不

我最近卸载了Xcode4.2并重新安装了Xcode4.3.1。还安装了命令行工具。错误显示“C编译器不工作”。在搜索这个错误时,它说它发生在没有安装Xcode的情况下。我错过了什么?rvminstall1.9.3--with-gcc=clangInstallingRubyfromsourceto:/Users/ava/.rvm/rubies/ruby-1.9.3-preview1,thismaytakeawhiledependingonyourcpu(s)...ruby-1.9.3-preview1-#fetchingruby-1.9.3-preview1-#extractingrub

ruby-on-rails - 查询多条记录时如何避免ActiveRecord::RecordNotFound异常

我有这个代码:Article.find([1,2,3])但数据库中只有记录1和2。我得到这个异常(exception):"ActiveRecord::RecordNotFound(Couldn'tfindallOfferswithIDs(1,2,3)(found2results,butwaslookingfor3))"有没有办法只获取现有记录而不获取异常? 最佳答案 Article.find_all_by_id([1,2,3])是要走的路! 关于ruby-on-rails-查询多条记录时

ruby - Rspec 不工作,或提高不提高?

我正在一边学习TDD,一边编写一些小的ruby​​程序。我有以下类(class):classMyDirectorydefcheck(dir_name)unlessFile.directory?(dir_name)thenraiseRuntimeError,"#{dir_name}isnotadirectory"endendend我正在尝试用这个rspec测试来测试它。describeMyDirectorydoit"shoulderrorifdoesn'texist"doone=MyDirectory.newone.check("donee").shouldraise_exception