草庐IT

do_calculation

全部标签

ruby - 如何将方法调用链接到 Ruby 中的 `do ... end` block ?

我正在做以下事情:array_variable=collection.mapdo|param|somevaluewithparamendreturnarray_variable.compact我能否以某种方式在一个语句中调用map和compact,以便立即返回结果?我正在考虑这样的事情(但是它可能无效):array_variable=block_codeparam.compact#block_codehereisamethodforexamplewhichfillsthearray 最佳答案 是的,你可以在这里调用一个方法。在你的情

ruby - 为什么?无法转换成字符串 : I do have a to_s method!

我不明白为什么以下会引发异常:classXdefto_s"x"endends=""sTypeError:can'tconvertXintoString毕竟“to_s”应该将X转换为字符串。 最佳答案 Ruby核心不会自动调用短转换;这就是长时间转换的目的。长转换适用于已经非常类似于转换目标的事物,而不是仅具有目标类型的表示的事物。使用:to_str也就是说,如果您添加defto_str;"x";end给你的类(class)表达式将使用自动转换。 关于ruby-为什么?无法转换成字符串:I

ruby - 除了在 Ruby 的每个 do 循环中使用计数器变量之外,还有其他方法吗?

我正在用Ruby输出数组中的项目列表。我需要输出每个项目在数组中的位置,以及值。我认为我在遍历数组时使用值的索引而不是设置一个临时计数器变量是很聪明的,但是当我有一个包含重复项的数组时我被烧毁了。见下文...array=["a","b","c","a"]array.eachdo|letter|puts"Position:#{array.index(letter)}-Letter:#{letter}"end#Position:0-Letter:a#Position:1-Letter:b#Position:2-Letter:c#Position:0-Letter:a#Oops!That's

ruby - 如果 IF 条件变为真,如何跳过迭代并转到 do .. end 的第一行?

我写了下面的代码:require'net/http'require'uri'require'IPAddr'require'timeout'require'Resolv'require'open-uri'#puts"OriginIP:\n\n"#originip=gets()(IPAddr.new("209.85.175.120")..IPAddr.new("209.85.175.150")).eachdo|address|uri=URI("http://#{address.to_s}")puts"#{uri}"http=Net::HTTP.new(uri.host,uri.port)p

ruby - ruby do block 的 Sublime Text 2 自动完成错误

SublimeText2中我的ruby​​doblock的自动完成功能开始自动完成:downto(0){nnn}而不是do..end。我最近没有更改任何设置,所以我有点不知所措。 最佳答案 也许你应该试试dob,它用于do..endblock片段或者您可以自己创建此代码段:dosource.rubydo..end然后你可以使用dotab插入没有变量的doblock 关于ruby-rubydoblock的SublimeText2自动完成错误,我们在StackOverflow上找到一个类似的

ruby - 在 Vim (Ruby) 中用 do/end 替换匹配的 { braces }

有没有人有插件或宏来在Vim中用do和end替换匹配的{大括号}?最好像这样转动单行语句:foo.each{|f|f.whatever}进入:foo.eachdo|f|f.whateverend我可以为那种情况自己制作一个宏,但我想要一些也可以处理转换现有的多行、可能很复杂的block的东西,例如:foo.each{|f|f.bars.each{|b|b.whatever}hash={a:123,b:456}}进入:foo.eachdo|f|f.bars.each{|b|b.whatever}hash={a:123,b:456}end我看过vim-surround和rails.vim,

vim - 有什么简单的方法可以在 Vim 的 ruby​​ 中切换 "do/end"和 "{}"吗?

有什么简单的方法可以在Vim的ruby​​中切换“do/end”和“{}”吗?(TextMate使用^{完成此操作。) 最佳答案 你必须要么使用searchpair(),要么使用%(只要安装了matchit,并且当你在开始/结束时),然后标记两个位置,测试它是文本还是括号,最后更新这两行。nnoremap{:callToggleBeginOrBracket()lets:k_be=['begin','end']function!s:ToggleBeginOrBracket()letc=lh#position#char_at_mark(

ruby-on-rails - rails : How do I write a spec for a route that does a redirect?

我在我的Rails项目中使用Omniauth,我想将“/auth/facebook”隐藏在“/login”路由后面。其实我写了一个路由:match"/login",:to=>redirect("/auth/facebook"),:as=>:login这确实有效,即指向login_path的链接将重定向到/auth/facebook。但是,我如何编写(RSpec)规范来测试此路由(特别是重定向)?请注意,/login不是应用程序中定义的实际操作或方法。提前致谢! 最佳答案 因为您没有提供有关环境的任何详细信息,以下示例假设您使用的是r

ruby - Ruby 什么时候需要 do 关键字?

例如,以下代码中是否存在do是否会影响程序的行为?whiletruedoputs"Hi"breakendwhiletrueputs"Hi"breakend 最佳答案 根据TheRubyProgrammingLanguage本书第5.2.1节:Thedokeywordinawhileoruntilloopislikethethenkeywordinanifstatement:itmaybeomittedaltogetheraslongasanewline(orsemicolon)appearsbetweentheloopconditi

ruby - 如何在 ruby​​ 的 Sublime Text 3 中设置 do-end block 的突出显示?

例如:SublimeText高亮打开和关闭html标签。如何为do-endblock制作类似的效果?我没有在packagecontrol中找到类似效果的设置或包。 最佳答案 我认为您正在寻找BracketHighlighter包。我使用它并且与SublimeText3配合得很好!https://github.com/facelessuser/BracketHighlighter查看此提交:)https://github.com/facelessuser/BracketHighlighter/commit/306b56e21db64e