草庐IT

line-breaks

全部标签

ruby - __LINE__ 和 __FILE__ 常量在 Ruby 中是如何实现的?

似乎__FILE__和__LINE__常量会随着当前文件和正在执行的行号动态更新,我想知道Ruby中的行为是如何实现的?源码我已经grep过了,但是__LINE__和__FILE__出现的杂音太多了,不知道有没有人能帮我指出源码并提供了解其行为的线索。用Rubinis或MRI解释都可以。 最佳答案 __FILE__和__LINE__都被文字替换了directlyintheparser:casekeyword__FILE__:returnNEW_STR(rb_external_str_new_with_enc(ruby_sourcef

ruby - 如何在案例中使用 "break"...而在 Ruby 中

因此,我尝试了break、next和return。它们都给出错误,exit当然有效,但是完全退出。那么,如何结束一个案例...什么时候“太快了?”例子:casexwheny;beginifsomethingendend(以上是某种形式的伪代码,只是为了给出我要问的内容的一般概念[begin...end用于希望break能工作]。而且,当我在做这件事时,有没有更优雅的方式将block传递给case...when? 最佳答案 有什么问题:casexwheny;if!somethingendend请注意,if!something与unle

ruby - 创建 Compass 项目时出现的问题(EACCES on line ["891"])

我在创建新的compass项目(Windows7)时遇到问题。我明白了:C:\>compasscreateacreateconfig.rbErrno::EACCESonline["891"]ofC:Permissiondenied-(C:/a/config.rb20140321-6828-1g0ytlc,C:/a/config.rb)Runwith--tracetoseethefullbacktrace我尝试以“以管理员身份运行”启动cmd,我尝试删除compass、sass和ruby​​,然后重新安装,但没有成功。还有其他人遇到问题或知道解决这个恼人问题的方法吗?

ruby-on-rails - slim 的模板 : Is it possible to put two elements on the same line?

我经常想嵌套元素,比如下面的导航:ullia(href="#")linkNamelia(href="#")linkNamelia(href="#")linkName是否可以将li和a放在同一行?像li>a这样的语法会很好。 最佳答案 我相信你可以做这样的事情ulli:ahref="#"Link1li:ahref="#"Link2参见内嵌标签:http://rdoc.info/gems/slim/file/README.md#Inline_tags 关于ruby-on-rails-slim

ruby - ruby 中的 break 和 return,你如何使用它们?

我刚刚问了一个question关于return,它似乎和break做同样的事情。你如何使用return,你如何使用break,比如在你实际写的代码中解决可以使用这些构造的问题。我真的不能发布示例,因为我不知道如何使用它们,所以它们没有多大意义。 最佳答案 return退出整个函数。Break从最内层循环退出。因此,在这样的函数中:deftesting(target,method)(0..100).eachdo|x|(0..100).eachdo|y|putsx*yifx*y==targetbreakifmethod=="break"

ruby - 在 Ruby 中规范化行结尾

我在Ruby中有一个字符串,s(比方说)它可能有任何标准的行结尾(\n,\r\n,\r)。我想将所有这些转换为\n。什么是最好的方法?这似乎是一个非常常见的问题,但没有太多关于它的文档。显然有简单粗暴的解决方案,但是有没有内置的东西来处理这个问题?优雅、惯用的Ruby解决方案是最好的。编辑:意识到^M和\r是一样的。但仍然存在三种情况。(参见wikipedia。) 最佳答案 从ruby​​1.9开始你可以使用String::encode使用universal_newline:true将所有新行放入\n中,同时保持编码不变:s.enc

ruby-on-rails - 为什么 Rspec 说 "Failure/Error: Unable to find matching line from backtrace"?

我在这里学习Rails教程:http://railstutorial.org/chapters/filling-in-the-layout#top当我运行“rspecspec/”时,我得到一堆如下所示的错误:1)LayoutLinksshouldhaveaHomepageat'/'Failure/Error:Unabletofindmatchinglinefrombacktracestackleveltoodeep#C:/Ruby19/lib/ruby/1.9.1/forwardable.rb:1852)LayoutLinksshouldhaveaContactpageat'/cont

ruby - class_eval << -"end_eval", __FILE__, __LINE__ 在 Ruby 中是什么意思?

我正在学习如何在模块中使用class_eval(我对class_eval有点熟悉)并遇到了thishelpfulclassinresource_controller.那里有这样的东西:class_eval__FILE__和__LINE__在那个上下文中做了什么?我知道__FILE__引用当前文件,但整个事情到底做了什么?真的不知道如何搜索它:)。 最佳答案 __FILE__和__LINE__是一种动态常量,用于保存当前正在执行的文件和行。将它们传递到这里允许错误正确报告它们的位置。instance_eval当你运行它时$rubyfo

ruby-on-rails - Ruby 语法 : break out from 'each.. do..' block

我正在开发一个RubyonRails应用程序。我的问题更多是关于Ruby语法。我有一个带有类方法self.check的模型类:classCars我想在eachblock一旦result为true(即如果car.name与name参数相同一次,则打破eachblock并返回car导致true结果。如何在Ruby代码中打出? 最佳答案 您可以使用break关键字中断。例如[1,2,3].eachdo|i|putsibreakend将输出1。或者如果你想直接返回值,使用return。由于您更新了问题,这里是代码:classCar尽管您也可

ruby - Rubocop 线长 : How to ignore lines with comments?

我希望Rubocop在检查一行是否太长时忽略带有注释的行(只是注释或一些带有行尾注释的代码)。有办法做到这一点吗? 最佳答案 有一种方法可以在每行的基础上忽略警察。还有一种方法可以通过配置文件来实现。运行rubocop--auto-gen-config它将生成一个文件,您可以使用该文件来禁用攻击。该命令还提示如何加载这些选项。在一行一行的基础上,您也可以启用和禁用警察。#rubocop:disableRuleByNameThisisalongline#rubocop:enableRuleByName您也可以在代码中一次执行多个规则。