草庐IT

element_class_list

全部标签

ruby - class_eval、class_exec、module_eval 和 module_exec 之间有什么区别?

我正在阅读Module文档,但似乎无法理解它们之间的差异以及应该在何处使用。eval与exec有何不同? 最佳答案 我将通过在您的问题中包含instance_{eval|exec}来回答您的问题。{instance|module|class}_{eval|exec}的所有变体都会更改当前上下文,即self的值:classArraypself#prints"Array"43.instance_eval{pself}#prints"43"end现在说说区别。eval版本接受字符串或block,而exec版本只接受block但允许您向其传

ruby - 在ruby中调用父类(super class)中的另一个方法

classAdefaputs'in#a'endendclassB 最佳答案 classB 关于ruby-在ruby中调用父类(superclass)中的另一个方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1251178/

ruby 设计模式 : How to make an extensible factory class?

好吧,假设我有Ruby程序来读取版本控制日志文件并对数据进行处理。(我不知道,但情况类似,我对这些类比很感兴趣)。假设现在我想支持Bazaar和Git。假设程序将使用某种参数执行,表明正在使用哪个版本控制软件。鉴于此,我想制作一个LogFileReaderFactory,它给定一个版本控制程序的名称,它将返回一个适当的日志文件阅读器(从一个通用的子类化)来读取日志文件并吐出一个规范的内部表示。所以,当然,我可以制作BazaarLogFileReader和GitLogFileReader并将它们硬编码到程序中,但我希望它的设置方式是添加对新版本控制程序的支持就像添加新类文件一样简单在Ba

ruby - 如何理解class_eval()和instance_eval()的区别?

Foo=Class.newFoo.class_evaldodefclass_bar"class_bar"endendFoo.instance_evaldodefinstance_bar"instance_bar"endendFoo.class_bar#=>undefinedmethod‘class_bar’forFoo:ClassFoo.new.class_bar#=>"class_bar"Foo.instance_bar#=>"instance_bar"Foo.new.instance_bar#=>undefinedmethod‘instance_bar’for#仅根据方法的名称,我

ruby-on-rails - ruby rails 3 : "superclass mismatch for class ..."

平台:MacOSX10.6在我的终端中,我使用“railsc”启动Ruby控制台在按照RubyonRails3教程构建类时:classWord我收到错误信息:TypeError:superclassmismatchforclassWordfrom(irb):33from/Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in`start'from/Users/matthew/.rvm/gems/ruby-1.9.2-p18

ruby 风格 : How to check whether a nested hash element exists

考虑存储在散列中的“人”。两个例子是:fred={:person=>{:name=>"Fred",:spouse=>"Wilma",:children=>{:child=>{:name=>"Pebbles"}}}}slate={:person=>{:name=>"Mr.Slate",:spouse=>"Mrs.Slate"}}如果“person”没有任何child,则“children”元素不存在。所以,对于Slate先生,我们可以检查他是否有parent:slate_has_children=!slate[:person][:children].nil?那么,如果我们不知道“slat

ruby - rbenv install --list 不列出版本 2.1.2

我在OSX10.9.3MacBookPro上通过Homebrew安装了rbenv:brewupdatebrewupgraderbenvruby-build根据rbenvinstall--list在我的笔记本电脑上Ruby2.1.0-dev是最新的。 最佳答案 rbenv和ruby-build一般都是从Github克隆安装的;就是这样theauthorsrecommendweinstallit.gitclonehttps://github.com/sstephenson/rbenv.git~/.rbenvgitclonehttps:/

ruby - class << self vs self.method with Ruby : what's better?

这RubyStyleGuide告诉我们最好使用self.method_name而不是classmethod_name。但是为什么?classTestClass#badclass是否存在性能问题? 最佳答案 class善于将所有类方法放在同一个block中。如果在defself.method中添加方法form则不能保证(除了惯例和一厢情愿的想法)不会有额外的类方法隐藏在文件的后面。defself.method擅长显式声明方法是类方法,而使用class你必须自己去找容器。这些中哪一个对您来说更重要是一个主观决定,并且还取决于诸如有多少其

ruby 疯狂 : Class vs Object?

我刚开始玩JRuby。这是我的第一篇ruby帖子。我很难理解Ruby中的类与对象。它并不像其他面向对象语言中的类和对象那样。举个例子Class.is_a?Object返回真和Object.is_a?Object也是。所以类和对象都是对象又来了一个Class.is_a?Class返回真和Object.is_a?Class也是。等等,我还没说完Object.instance_of?ClassClass.instance_of?Class都对Object.instance_of?ObjectClass.instance_of?Object两者都是错误的。是的,没有什么可以是对象的实例。和Cl

ruby-on-rails - rails : An elegant way to display a message when there are no elements in database

我意识到我正在编写很多与此类似的代码:Youhavenomessages.Ruby和/或Rails中是否有任何构造可以让我跳过它第一个条件?那么当迭代器/循环一次都不会进入时会执行吗?为了示例:Youhavenomessages. 最佳答案 你也可以这样写:Youhavenomessages. 关于ruby-on-rails-rails:Anelegantwaytodisplayamessagewhentherearenoelementsindatabase,我们在StackOverfl