Questions tagged «ruby»

Ruby是由松本行弘(Matz)于1995年创建的一种多平台开放源代码,动态的,面向对象的解释性语言。[ruby]标记用于与Ruby语言有关的问题,包括其语法和库。Ruby on Rails问题应标记为[ruby-on-rails]。

8
测量和基准时间的Ruby方法
如何在Ruby中测量方法和该方法中的各个语句所花费的时间。如果您看到以下方法,我想测量该方法花费的总时间以及数据库访问和Redis访问所花费的时间。我不想在每条语句之前写Benchmark.measure。红宝石解释器是否为我们提供了任何帮助? def foo # code to access database # code to access redis. end

8
在Ruby中将字符串切成给定长度的块的最佳方法是什么?
我一直在寻找一种优雅而有效的方法来在Ruby中将字符串分块为给定长度的子字符串。 到目前为止,我能想到的最好的方法是: def chunk(string, size) (0..(string.length-1)/size).map{|i|string[i*size,size]} end >> chunk("abcdef",3) => ["abc", "def"] >> chunk("abcde",3) => ["abc", "de"] >> chunk("abc",3) => ["abc"] >> chunk("ab",3) => ["ab"] >> chunk("",3) => [] 您可能要chunk("", n)返回[""]而不是[]。如果是这样,只需将其添加为方法的第一行即可: return [""] if string.empty? 您会提出更好的解决方案吗? 编辑 感谢Jeremy Ruten提供的这种优雅而有效的解决方案:[编辑:效率不高!] def chunk(string, size) string.scan(/.{1,#{size}}/) end 编辑 string.scan解决方案大约需要60秒才能将512k砍成1k块10000次,而原始的基于切片的解决方案只需要2.4秒。
87 ruby  string  chunking 


6
Ruby最大整数
我需要能够确定Ruby中的系统最大整数。有人知道如何,或者是否可能?
87 ruby  fixnum 

6
Rails 4:如何重置测试数据库?
我在Rails 4上,并注意到我的一些RSpec测试失败了,因为我的一些测试重构使用了before过滤器(大概是由于事务)。这篇文章描述了一个类似的问题: 运行后无法清除Rails测试数据库 代替使用DatabaseCleaner gem,是否存在rake命令来清除测试数据库?我相信rake db:test:prepareRails 4不推荐使用。此外,如果在进行类似交易之前 post :create, user: Fabricate.attributes_for(:user) 是持久的。是否有另一种重构方法来避免需要手动清除测试数据库?



6
不断从Ruby中的外部进程的STDOUT中读取
我想通过ruby脚本从命令行运行Blender,然后将逐行处理Blender给出的输出以更新GUI中的进度条。搅拌器是我需要阅读其标准输出的外部过程并不是很重要。 当Blender进程仍在运行时,我似乎无法捕获Blender通常打印到Shell的进度消息,并且我尝试了几种方法。我似乎总是在搅拌器退出后(而不是在它仍在运行时)访问搅拌器的标准输出。 这是失败尝试的示例。它确实获取并打印了Blender输出的前25行,但仅在Blender进程退出后: blender = nil t = Thread.new do blender = open "| blender -b mball.blend -o //renders/ -F JPEG -x 1 -f 1" end puts "Blender is doing its job now..." 25.times { puts blender.gets} 编辑: 为了更清楚一点,调用搅拌器的命令在shell中返回输出流,指示进度(第1-16部分已完成,等等)。似乎所有对“获取”输出的调用都被阻止,直到搅拌机退出为止。问题是当Blender仍在运行时如何访问此输出,因为Blender会将其输出打印到Shell。
86 ruby  shell  process  stdout  stdin 

10
从引用的回复中解析电子邮件内容
我试图弄清楚如何从可能包含的所有引用的回复文本中解析出电子邮件的文本。我注意到,通常电子邮件客户会在“某某某某日期写某某某日”或在行前加尖括号。不幸的是,并不是每个人都这样做。有人对如何以编程方式检测回复文本有任何想法吗?我正在使用C#编写此解析器。
86 c#  ruby  email  email-parsing 

8
LEFT OUTER加入Rails 3
我有以下代码: @posts = Post.joins(:user).joins(:blog).select 旨在查找所有帖子并返回它们以及相关的用户和博客。但是,用户是可选的,这意味着INNER JOIN该:joins生成没有返回大量记录。 如何使用它来生成一个LEFT OUTER JOIN?

4
Rails 3.0中的Arel到底是什么?
我知道这是ActiveRecord的替代品,并且它使用对象而不是查询。 但... 为什么这更好? 对象/查询将更容易创建吗? 会导致更有效的SQL查询吗? 与所有主要数据库兼容吗?-我想会的。 使用存储过程会更容易/更难吗?


9
您是否在Ruby中放入括号?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 如果可能的话..您是否在Ruby中放入括号?

5
在Ruby 1.8.6中迭代一个字符串的每个字符(each_char)
我是ruby的新手,目前尝试与ruby中的基本String分开对每个字符进行操作。我正在使用ruby 1.8.6,并想做类似的事情: "ABCDEFG".each_char do |i| puts i end 这会产生未定义的方法“ each_char”错误。 我期望看到垂直输出: A B C D ..etc 该each_char方法是否仅针对1.9定义?我尝试使用无each格式方法,但是该块只是将整个字符串输出到一行中。我弄清楚该怎么做的唯一方法,这很不方便,就是从一开始就创建一个字符数组: ['A','B','C','D','...'].each do|i| puts i end 这将输出所需的内容: A B C ..etc 也许有一种方法可以使用未修改的字符串开始实现此输出? 我认为Java等效项是: for (int i = 0; i < aString.length(); i++){ char currentChar = aString.charAt(i); System.out.println(currentChar); }
86 ruby  string  iterator 

2
Capistrano中的“角色”到底是什么?
Capistrano配方中“角色”的目的和功能是什么?当我查看示例食谱时,经常会看到类似以下内容: role :app, 'somedomain.com' role :web, 'somedomain.com' role :db, 'somedomain.com', :primary => true 因此,角色似乎基本上是Capistrano执行命令的服务器。如果是这样,那么为什么将其称为“角色”而不是“主机”或“服务器”? 在上面的示例中,:app和:web角色有什么区别? 该:primary => true选项有什么作用?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.