草庐IT

「枚举」组合的输出

全部标签

ruby - 如何使用 Rake 为 Rspec 运行 JunitFormatter 输出?

我可以使用以下方式运行rspec文件:rspec-fJUnitFormatter-ojunit.xmlspec_test.rb但是每次我尝试rake执行spec文件时,我都会收到以下错误/formatters/junit_formatter.rb:28:in`require':nosuchfiletoload--rspec/core/formatters/base_formatter(LoadError)from./formatters/junit_formatter.rb:28from/usr/lib/ruby/1.8/spec/runner/option_parser.rb:151

ruby - 为什么在重定向时,Ruby 的 STDERR 输出先于 STDOUT 输出?

在bash中,这给出了预期顺序的输出:ruby-e"puts'one';raise'two'"one-e:1:in`':two(RuntimeError)但是如果我将STDERR重定向到STDOUT,我会在输出之前收到错误,这是我不想要的:ruby-e"puts'one';raise'two'"2>&1|cat-e:1:in`':two(RuntimeError)one我想将输出重定向到一个文本文件(它的行为方式与上面的cat相同)并获得输出和异常,但顺序与查看我的输出时的顺序相同终端。这能实现吗? 最佳答案 发生这种情况是因为行缓

arrays - 给定一个大小为 y 的数组,其中包含大小为 n 的数组,我如何使用 Ruby 返回所有逻辑组合?

我想做的是处理n个集合,而我在下面提供的代码正好处理4个集合。defshow_combinations@combos=[]['A','noA'].eachdo|a|['B','noB'].eachdo|b|['C','noC'].eachdo|c|['D','noD'].eachdo|d|@combos我如何重构以下代码来处理以下场景:鉴于我有一个大小为y的数组,其中包含大小为n的数组,我想返回所有组合。请务必注意,每个子数组中只能有一个项目出现在结果中。(如“已完成资料”不能同时出现在“未完成资料”的结果中)背景:用户可能有一些任务:例如,“完成配置文件”或“设置电子邮件”或其他任何

ruby - 为什么 Logger 输出到 STDOUT 不会重定向到文件?

这个脚本被命名为o.rb:@logger=Logger.new(STDOUT)@logger.info"start_time:#{start_time}"当我使用./o.rb运行它时,控制台上的输出是正确的。但是,当我尝试./o.rb>log.txt2>&1时,日志文件是空的!为什么会这样?我在使用简单的puts函数时遇到了同样的问题。更新这将重现此问题:require'logger'logger=Logger.new(STDOUT)loopdologger.info"Thisisatesthaha"sleep(1)end当我使用./foo.rb运行它时,它会正确写入控制台输出。当我运

ruby - Capistrano 3.x 逐行捕获输出

在Capistrano2.x中,您可以使用以下命令逐行捕获输出run"ls-la"do|channel,stream,data|putsdataend这在Capistrano3.x中不起作用,capture和execute命令似乎不提供相同的功能。有没有办法在3.x中复制2.x的行为? 最佳答案 output=capture('cat~/file.cnf')output.each_linedo|line|putslineend这就是我使用捕获读取行的方式。如果您想捕获一行中的特定内容,您可以使用ifline.include?'use

ruby - 理解可比较的mixin和可枚举的mixin

我是新手,正在学习ruby​​。想更好地理解所问的问题。我不明白comparablemixin和enumerablemixin的用法。我的意思是,当我们需要使用它们时,我们不会将它们包含在我们的类(class)中,对吗?如果我们想比较两个对象,我们只需写x>y。那么显式使用它们有什么用呢? 最佳答案 好问题阿卡什!有时候,如何比较两个对象并不“简单”!如果你有一个Dog类怎么办?你如何比较两个Dog实例?比较应该基于什么?仅仅比较他们的名字就够了吗?他们的品种?他们的DNA?这真的取决于你。这就是您可以在模型中包含Comparabl

ruby-on-rails - 将 TrueClass/FalseClass 的值输出为整数或字符串/

我想弄清楚是否有一种简单的方法来执行以下操作,而不是将to_i方法添加到TrueClass/FalseClass。这是一个难题:我的Rails应用程序中有一个bool字段-显然在mysql中存储为Tinyint。但是-我需要根据mysql中的数据生成xml并将其发送给客户-那里的SOAP服务要求相关字段具有0或1作为该字段的值。因此,在生成xml时,我需要将False转换为0,将True转换为1(这就是它们在数据库中的存储方式)。由于True&False缺少to_i方法,我可以编写一些if语句,根据真/假状态生成1或0。然而,我有大约10个这样的指标,并且为每个指标创建和if/else

ruby-on-rails - Rails Rake Tasks,在期间和结束时输出一条消息

我做了一个railsrake任务,可以上传/裁剪/调整(使用回形针)大量图片。我想知道如何在运行时向终端输出消息(例如chipolata.jpg已处理),最后,它需要几分钟才能运行并且有一点反馈会很好。谢谢。 最佳答案 只需使用标准的Rubyputs命令:puts"HellofromRake!"您可以使用字符串插值在循环中输出单个文件名:puts"#{image_filename}processed" 关于ruby-on-rails-RailsRakeTasks,在期间和结束时输出一条消

ruby - 如何通过 http 使用 Ruby 访问 URL 并读取输出?

到目前为止,我已经能够将它们拼接在一起:)beginopen("http://www.somemain.com/"+path+"/"+blah)rescueOpenURI::HTTPError@failure+=painting.permalinkelse@success+=painting.permalinkend但是我如何读取我要调用的服务的输出呢? 最佳答案 Open-URI扩展了open,因此您将获得一种返回的IO流:open('http://www.example.com')#=>#你必须阅读它才能获得内容:open('h

ruby - Ruby <=> 组合器的实现

并不少见,有人想实现(比较,或“宇宙飞船”)产品数据类型的运算符,即具有多个字段的类(所有这些(我们希望!)已经实现了),按特定顺序比较字段。def(o)f1o.f1&&(return1)f2o.f2&&(return1)return0end这既乏味又容易出错,尤其是对于很多字段。它很容易出错,以至于我经常觉得我应该对该函数进行单元测试,这只会增加乏味和冗长。Haskell提供了一种特别好的方法来做到这一点:importData.Monoid(mappend)importData.Ord(comparing)--Fromthestandardlibrary:--dataOrdering