草庐IT

ruby - 查找给定周数的日期

我正在尝试根据给定年份的周数进行一些日期计算。例如:date=Date.today#Monday,March5,2012putsdate.cwyear#2012putsdate.cweek#10(10thweekof2012)既然我知道当前是几号,我想弄清楚下一周和上一周是什么。我需要获取年份(2012)和周数(10)并将其转回日期对象,以便计算下一周/上一周的值。我该怎么做? 最佳答案 你想要Date.commercial:require'date'now=Date.today#=>2012-03-05monday_next_we

Ruby:如何将文件拆分为给定大小的多个文件

我想将一个txt文件拆分成多个文件,每个文件包含的内容不超过5Mb。我知道有这方面的工具,但我的项目需要这个,并且想在Ruby中完成。此外,如果可能的话,我更喜欢在block上下文中使用File.open来执行此操作,但我失败了:o(#!/usr/bin/envrubyrequire'pp'MAX_BYTES=5_000_000file_num=0bytes=0File.open("test.txt",'r')do|data_in|File.open("#{file_num}.txt",'w')do|data_out|data_in.each_linedo|line|data_out.

ruby - 在 rcov 中,有没有办法找到哪个测试方法遍历了被测试的给定代码行?

在rcov中,有没有办法找到跟踪哪些测试方法覆盖了给定的代码行(在您正在测试的目标代码中)? 最佳答案 我很确定,rcov不支持此功能。由于CoverageInfo的文档Class建议,rcov只跟踪给定的linen是否被执行,而不是在什么上下文中执行。 关于ruby-在rcov中,有没有办法找到哪个测试方法遍历了被测试的给定代码行?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

ruby-on-rails - 给定记录和顺序条件,查找之后或之前的记录

例如,您有一个按优先级排序的项目列表。您有10,000件商品!如果您向用户显示单个项目,您如何为用户提供按钮以查看上一个项目或下一个项目(这些项目是什么)?您可以将项目的位置传递到项目页面并在SQL查询中使用OFFSET。这样做的缺点是,除了必须传递一个可能会改变的数字之外,数据库无法跳转到偏移量;它必须读取每条记录,直到到达第9001条记录。这很慢。寻找解决方案后,我找不到,所以我写了order_query.order_query使用相同的ORDERBY查询,但还包括一个WHERE子句,该子句排除当前记录之前(对于下一个)或之后(对于上一个)的记录。下面是标准的示例(使用上面的gem

Ruby 模块给定参数调用一个方法?

我对Nokogiri文档中发生的事情感到困惑。据我所知,如果require'nokogiri'some_html="Mr.BelvedereFanClub"然后这三行做同样的事情:html_doc=Nokogiri::HTML::Document.parse(some_html)html_doc=Nokogiri::HTML.parse(some_html)html_doc=Nokogiri::HTML(some_html)第二个只是第一个的便捷方法。但在我的非Ruby眼中,第三个看起来像是将参数传递给模块,而不是方法。我知道Ruby有构造函数,但我认为它们采用的是Class.new形

ruby-on-rails - 给定一个 json 对象,如何在 rails 中遍历该对象

我的应用程序正在将以下json对象发布到Rails。[{\"completed\":false,\"id\":196,\"position\":0,\"title\":\"Item1\",\"updated_at\":\"2011-08-03T21:17:09Z\"},{\"completed\":false,\"id\":193,\"position\":1,\"title\":\"ItemX\",\"updated_at\":\"2011-08-03T21:16:19Z\"},{\"completed\":false,\"id\":197,\"position\":2,\"titl

ruby-on-rails - 如何检测给定文本的语言

在我的Rails3应用程序中,用户可以在论坛中写消息。我想确定给定消息的语言是什么。我对英语、俄语和希伯来语感兴趣。Ruby/Rails中是否有用于此类任务的内置库?如果没有,我们将不胜感激。 最佳答案 使用这个:https://github.com/nashby/wtf_lang"rubyissoawesome!".lang#=>"en""rubyissoawesome!".full_lang#=>"ENGLISH" 关于ruby-on-rails-如何检测给定文本的语言,我们在Sta

ruby-on-rails - 如何获取给定内容类型的默认扩展名?

给定变量content_type="application/pdf"也可以包含任何其他mime类型。如何获取内容类型的默认扩展名?我目前有两个解决方案,看起来很“复杂”。破解字符串content_type.split("/")[1]使用MIME::类型require'mime/types'MIME::Types[content_type].first.extensions.first有没有更好的解决方案? 最佳答案 您只需使用ruby​​的Hash.invert方法即可。Thisanswer展示了如何做:Rack::Mimehast

ruby - 在 ruby​​ 中获取给定键的哈希键值对

我有一个散列h1和keyk1。我需要返回哈希中给定键的完整键值对。喜欢关键的“鱼”我需要打印'fish'=>'aquaticanimal'@h1,打印所有键值对。我需要为给定键打印键值对的方法我是ruby​​的新手,很抱歉这个菜鸟问题。 最佳答案 有一个方法,Hash#assoc可以做类似的事情。但它返回数组中的键和值,您可以轻松地将其更改为哈希。另一种方法是使用Hash#select,它会根据给定的block返回哈希。h1={"fish"=>"aquaticanimal","tiger"=>"bigcat"}h1.assoc"fi

ruby-on-rails - 给定有序的 id 列表对对象数组进行排序

我有一组对象@users,每个对象都有其id属性。@users=[#,#]我还有一个有序的ids数组。ids=[2,1]¿是否有一种神奇的方法可以使用该ID列表对集合进行排序?如果可能,不再次调用数据库。谢谢!!! 最佳答案 其实你不需要排序,建立一个中间的索引散列,它是O(n):users_by_id=Hash[@users.map{|u|[u.id,u]}]users_by_id.values_at(*ids)如果您仍想尝试排序方法,Schwartziantransform就足够了:@users.sort_by{|u|ids.i