草庐IT

sequence_length

全部标签

ruby - Array#slice(index, length) 当index+length超出范围时,取数组开头的元素

我正在寻找一种紧凑且可读的方式来使用索引和长度对数组进行切片,但是当索引+长度超出范围时,而不是像在数组末尾那样停止["a","b","c","d","e"].slice(4,3)#=>["e"]我想获取数组开头的元素:#=>["e","a","b"] 最佳答案 你可以这样做:index=4length=3["a","b","c","d","e"].cycle.take(index+length).last(length) 关于ruby-Array#slice(index,length)

ruby - Ruby 的 length 方法是一个符号吗?为什么是:length sometimes the same as length?

我在阅读有关在Ruby中重新定义方法有多么容易的文章时遇到了以下问题:classArrayalias:old_length:lengthdeflengthold_length/2endendputs[1,2,3].length当然,这是个坏主意,但它说明了问题。但令我困扰的是,我们如此轻松地在:length和length以及:old_length和old_length之间切换。所以我这样尝试:classArrayaliasold_lengthlengthdeflengthold_length/2endendputs[1,2,3].length它工作得很好——显然就像第一个版本一样。我觉

ruby-on-rails - ruby rails : Length of Video as a Paperclip Attachment

我创建了一个带有视频附件的Rails类,我想知道如何获取上传到我的应用程序的视频的长度。我怎样才能做到这一点? 最佳答案 我没有让Rvideo完全正常工作,这个gem已经四年没有更新了。但是,这有效:before_post_process:get_video_durationdefget_video_durationresult=`ffmpeg-i#{self.video.to_file.path}2>&1`r=result.match("Duration:([0-9]+):([0-9]+):([0-9]+).([0-9]+)")i

ruby - 在 Ruby 中, 'size' 和 'length' 之间绝对没有区别吗?

在size的文档中,我们可以读到here,'size()是长度的别名'。对于length(doc)“返回self中的元素数。可能为零。”那个长度“也别名为:大小”。功能可能非常相似,但我想知道不同的实现是否包含除了返回数组或集合中的元素数之外的任何其他功能。length和size这两个词似乎暗示着不同,特别是因为size会让我想到以字节为单位的内存大小而不是元素的数量。 最佳答案 完全一样的实现。你可以在sourcecodeofRuby2.3.1中看到那是一个别名:rb_define_alias(rb_cArray,"size","

ruby - RSpec stub : return in a sequence

我知道以下事情有效:返回一个参数subject.should_receive(:get_user_choice){|choices|choices.to_a[0]}和一个序列(它将在第一次调用时返回0,第二次“退出”)subject.should_receive(:get_user_choice).and_return(0,"exit")但是如何组合它们呢?如果我想第一次返回参数然后返回“exit”怎么办 最佳答案 或者:subject.should_receive(:get_user_choice).ordered.and_ret

ruby - `scan' : invalid byte sequence in UTF-8 (ArgumentError)

我正在尝试读取ruby​​中的.txt文件并逐行拆分文本。这是我的代码:deffile_read(filename)File.open(filename,'r').readendputsf=file_read('alice_in_wonderland.txt')这完美地工作。但是当我像这样添加方法line_cutter时:deffile_read(filename)File.open(filename,'r').readenddefline_cutter(file)file.scan(/\w/)endputsf=line_cutter(file_read('alice_in_wonde

ruby-on-rails - 如果使用 validates_length_of,是否需要 validates_presence_of?

在ActiveRecord模型中,当还使用validates_length_of时,使用validates_presence_of是否被认为是最佳实践/必要?例如:classCompany5..30end对我来说,这似乎是多余的。长度在5到30之间意味着该属性也存在,但我看到它无处不在。这也意味着用户会收到两条关于同一缺失属性的错误消息,而实际上只需要一个。我是否遗漏了什么,或者人们在验证数据时是否过于热心? 最佳答案 validates_presence_of在与validates_length_of一起使用时完全多余,除非您提供

ruby - 为什么我的 Sproutcore 开发服务器断开与 "invalid byte sequence in US-ASCII"的连接?

这是堆栈:Sproutcore1.0.1046。Ruby1.9.1,在RVM中。薄1.2.7。雷神0.13.8。机架1.2.1。事件机器0.12.10。Erubis2.6.6。当我在任何应用程序上启动sc-server时,我对该服务器的第一个请求会在控制台日志中产生:ArgumentError:invalidbytesequenceinUS-ASCII...后跟thisstacktrace.(我已经列出了出现在上面堆栈跟踪中的gem,但是在与堆栈跟踪相同的要点中有一个完整的gemset列表。)对错误消息的研究指出这是Ruby1.9的常见问题,但堆栈跟踪表明问题出在某个gem中。我有:升

ruby - 为什么 Ruby array[array.length, count] 返回 []?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:IstheresomekindofunseenArrayterminationinRuby?ArrayslicinginRuby:lookingforexplanationforillogicalbehaviour(takenfromRubykoans.com)a=%w[abc]a[3,1]#=>[]a[4,1]#=>nil谁能解释为什么a[3,1]返回[]?为什么不用nil呢?谢谢。

ruby-on-rails - 使用 Nokogiri 查找带有文本的链接时如何避免出现 "Invalid byte sequence"

我将Rails5与Ruby4.2一起使用,并扫描我用Nokogiri解析的文档,以不区分大小写的方式查找文本链接:a_elt=doc?doc.xpath('//a').detect{|node|/link[[:space:]]+text/i===node.text}:nil在content中获取网页的HTML后,我使用以下方法将其解析为Nokogiri文档:doc=Nokogiri::HTML(content)问题是,我得到了ArgumentErrorinvalidbytesequenceinUTF-8在某些网页上使用上述正则表达式时。2.4.0:002>doc.encoding=>"