草庐IT

including

全部标签

ruby - Ruby Yard 是否具有与 RDoc :include: tag? 相当的功能

RDoc有:include:标签(参见thispage的底部),它将接受任意文本文件和格式,就好像它在包含开始的地方缩进一样。这是为文档示例提取源代码的好方法。是否Yard有类似的标签或功能吗? 最佳答案 目前YARD仅支持以以下形式嵌入来自其他对象文档字符串的文档:classFoo#Docstringheredefmethod;end#Hereissomemoredocsand{include:Foo#method}defbar;endend文件包含的计划含糊不清,但以前从未真正要求过,因此它的优先级不高。如果您想在http://

ruby-on-rails - Ruby - 我们可以在类中的任何地方使用 include 语句吗?

我们能否使用include语句在类中的任何位置包含模块,还是必须在类的开头?如果我在类声明的开头包含模块,方法重写会按预期工作。如果我如下所述在末尾包含,为什么它不起作用?#mym.rbmoduleMymdefhelloputs"aminthemodule"endend#myc.rbclassMycrequire'mym'defhelloputs"aminclass"endincludeMymendMyc.new.hello=>aminclass 最佳答案 当您包含一个模块时,它的方法不会替换此类中定义的方法,而是将它们注入(inj

ruby-on-rails - 运行抽佣 Assets :precompile before tests that include :js tag and skip otherwise

tl;博士——是否可以仅在测试主体中包含:js测试时运行单个命令(例如rakeassets:precompile)跑?--我正在开发一个Rails5、Ruby2.3.1应用程序,它有一个大型rspec测试套件。我们最近在应用程序中安装了webpackergem,这导致我们必须运行:$bundleexecrakeassets:precompile在运行测试之前。如果没有运行上述命令,测试将针对最近预编译的Assets运行。这引起了一些麻烦,因为开发人员忘记了这一步,然后用头撞墙,直到有人记得在运行测试套件之前运行它。理想情况下,我想简单地添加到spec/spec_helper.rb:co

ruby-on-rails - 数组参数上的 rspec 匹配器类似于 hash_including

在rspec中,您可以测试对方法的调用是否接收到一个参数,该参数是一个散列并且包含某些键或键值对。即:my_object.should_receive(:my_method).with(hash_including(:a=>'alpha'))有没有什么可以用数组完成类似的匹配?看起来像什么?my_object.should_receive(:my_method).with(array_including('alpha')) 最佳答案 这个怎么样:my_obj.should_receive(:my_method)do|arg|arg.

ruby - 为什么实例方法在include之后可以作为模块方法被调用?

在模块上定义的实例方法:moduleAdeffoo;:barendend当包含该模块时,似乎能够作为该模块的模块方法被调用:includeAA.foo#=>:bar这是为什么? 最佳答案 您将A包含到对象中。moduleAdefself.included(base)putsbase.inspect#Objectenddeffoo:barendendincludeAputsA.foo#:barputs2.foo#:bar#putsBasicObject.new.foo#thiswillfail还要注意顶层对象main是特殊的;它既是O

ruby-on-rails - 事件记录 :includes - how to use map with loaded associations?

我有一个小型Rails应用程序,我正在尝试获取一些订单统计信息。所以我有一个Admin模型和一个Order模型,具有一对多关联。classAdmin我正在尝试使用此查询获取特定订单:admins=Admin.where(...).includes(:orders).where('orders.operation=?','newgifts!')正如预期的那样工作。但是当我尝试像那样使用map制作json时admins.map{|a|[a.name,a.orders.pluck(:operation)]}Rails使用新查询再次加载订单,忽略已经加载的对象。(5.6ms)SELECT"or

ruby - 我可以在 case 语句中使用 .include?() 吗? ruby

我已经开始学习Ruby。我有一个构建游戏的小项目,并尝试创建一个函数来接收用户输入并相应地处理它。defGame.listenerprint">"whilelisten=$stdin.gets.chomp.downcasecaselistenwhen(listen.include?("navigate"))puts"Navigateto#{listen}"breakwhen($player_items.include?(listen))Items.use(listen)breakendputs"Notaoption"print">"endend但是,case语句无法检测到我输入了nav

ruby - 我怎样才能 "replace"通过 ruby​​ include 函数包含的模块

作为HowcanIreverseruby'sincludefunction的跟进,回答得很好,但事实证明我对实际问题的简化并不意味着该解决方案不适用。我现在面临这个问题(为保护身份而更改姓名!):moduleOldFormHelpersdeffooputs"foo"enddefbarputs"bar"endendmoduleHelpersincludeOldFormHelpersend这给了我:Helpers.instance_methods=>["bar","foo"]Helpers.ancestors=>[Helpers,OldFormHelpers]如果不fork,我真的无权修改

ruby - 设置.include?用于 Ruby 中的自定义对象

我有一个大致这样的类:classCattr_accessor:board#boardisamultidimensionalarray(representsamatrix)definitialize@board=...#initializeboardenddef==(other)@board==other.boardendend仍然,当我这样做时:s=Set.news.add(C.new)s.include?(C.new)#=>false为什么? 最佳答案 Set使用eql?和hash,而不是==,来测试两个对象是否相等。参见,例如,

ruby-on-rails - self.included——包含来自 Ruby 模块的类方法

我读了这篇文章:Rubymodules-includeddoendblock–但仍然不知道何时会在模块中使用self.includeddo...endblock。该帖子说,当您包含模块时,block中的代码将运行,但如果包含模块的唯一目的是什么,那有什么意义呢?无论如何都不需要运行该代码吗?为了运行该代码,不需要该block,对吧?下面这两个有什么区别:moduleMdefself.included(base)base.extendClassMethodsbase.class_evaldoscope:disabled,->{where(disabled:true)}endendmodu