草庐IT

ruby - 如何将 Ruby 中的 puts 文本保存到 txt 文件中?

我用Ruby编写了一个madlib,并想将生成的madlib保存到一个txt文件中。这是我写的,但是生成的txt文件是空的:file=File.open("madlib_output.txt","a")file.putsfile.close 最佳答案 有一些方法可以将脚本的输出保存到文件中,而不必修改脚本中的每个puts。最简单的方法是使用重定向在命令行中路由输出。在命令的末尾使用>some_file运行脚本会将所有STDOUT路由到该文件。同样,使用>some_file2>&1会将STDOUT和STDERR路由到同一个文件。这不会

ruby-on-rails - rails : Where do I put my API methods?

我是Rails的新手,在做一些简单的事情(例如创建API调用)时我有点不知所措。我在/reports设置了一个路由,它有这个Controller:classReportsController1})step1_result=step1.parseputs"Done!"putsstep1_resultrescueExcon::Errors::ServiceUnavailable=>eputs"Didn'twork"logger.warne.response.messageretryendend#Endrequest_reportrequest_reportend当我第一次加载/report

ruby - FTP 有 Rake 任务吗?

我正在寻找通过FTP进行部署的Rake任务。有人知道吗?安德斯 最佳答案 好吧,我决定自己做。代码不是很漂亮,因为它包含很多异常处理,但它完成了工作:)require'rake'require'net/ftp'defftp_files(prefixToRemove,sourceFileList,targetDir,hostname,username,password)Net::FTP.open(hostname,username,password)do|ftp|beginputs"Creatingdir#{targetDir}"ft

Ruby puts 不实时输出

我在ProjectEuler上开始了一些问题.其中一个问题:13195的质因数是5、7、13和29。600851475143的最大质因数是多少?我编写了一些代码...并且它有效:classIntegerdefprimeFactorsload('/home/arseno/ruby/lib/prime.rb')a=[]foriin(1..self)div=self.to_f/i.to_fif((div==div.to_i)&&(Prime.prime?(i)))a输出:571329到目前为止一切顺利!现在,当我输入600851475143时,我的终端挂断了(这是理所当然的,它正在计算很多东

ruby - 在 Ruby 中,puts _|_ 是如何工作的?

我对puts_|_在Ruby中的工作方式感到困惑。如果您输入一个变量然后调用该语句3puts_|_你得到变量名后跟nil3=>nil但是,如果你再次输入,你会得到错误puts_|_=>false它看起来不像那些以美元符号开头的类似Perl的变量之一。这个奇怪的符号到底是什么意思,它是如何工作的? 最佳答案 控制台(IRB或pry)中的下划线代表上一个命令的结果。所以3=>3puts_|_3=>nil这里上面的puts语句等价于puts33puts3|3等于puts3。因为puts返回nil,当你重复puts_|_时,它变成了puts

ruby - 是否可以更简洁地表达 `stuff.map {|x| puts x}`?

我想用某种简写来表达以下内容:stuff.map{|x|putsx}像这样:stuff.map{puts}我无法理解语法。谁能告诉我怎么做? 最佳答案 首先:在这里使用map没有意义,因为您不是在进行映射操作,而是在进行简单的副作用迭代。正是each的用途。使用map只会让future的维护者(包括你自己)感到困惑。each和map占用一个block。您可以使用一元前缀&运算符将任何响应to_proc的对象变成一个block。值得庆幸的是,Methoddo响应to_proc,因此您可以直接传递要调用的方法:stuff.each(&m

ruby - 如何在 Ruby 中设置 FTP session 空闲超时?

我有一个Ruby线程,它首先连接到FTP服务器,然后上传数千个文件。由于某些连接问题,Ruby线程经常挂起。所以我想为ftp闲置设置一个超时时间。帖子RubyNet::FTPTimeoutThreads建议使用超时模块:beginTimeout.timeout(10)do//connecttoFTPanduploadendrescueTimeout::Error...end这种方法不会解决我的问题,因为超时是针对整个计算block的,而不是从FTPsession的空闲/不活动开始的超时。那我该怎么办呢? 最佳答案 尝试这样的事情tr

html - cucumber / ruby : possible to output the "puts" to a --format html file?

我有一些调用不同模块和类的ruby​​测试,它们在执行过程中详细说明了它们使用一些“puts”命令所做的事情。如果您在控制台中运行这些测试,那么您将在控制台中看到“puts”命令的输出,但如果您使用以下选项运行测试:ruby--formathtml--outputfile.html然后所有这些信息都丢失了。有没有办法在HTML报告中记录简单的字符串消息? 最佳答案 我尝试了以下步骤:When/^Idosomething$/doputs"Hello"endThen/^somethinghappens$/doend...使用以下命令:c

ruby - 如何使用具有特殊字符的用户名或密码解析 FTP URL?

我正在尝试解析一个FTPURL,它在用户名和密码中包含一些特殊字符,例如@:username:p@sswrd@ftp.myhost.com/mypath当我尝试时:URI.parse(url)我得到:URI::InvalidURIError:theschemeftpdoesnotacceptregistrypart:username:p@sswrd@ftp.myhost.com(orbadhostname?)然后,我尝试对url进行编码:url=URI.encode(url,'@')但也有另一个错误:URI::InvalidURIError:theschemeftpdoesnotacc

ruby-on-rails - Rail 3 自定义渲染器 : where do put this code?

我正在关注Yehuda关于如何为Rails3构建自定义渲染器的示例,根据这篇文章:http://www.engineyard.com/blog/2010/render-options-in-rails-3/我的代码可以正常工作,但我很难弄清楚这段代码应该放在哪里。现在,我的代码就在我的Controller文件中。这样做,一切正常。但是,当我将代码移动到lib文件夹时,我已经在需要渲染器的Controller中明确“要求”我的文件,否则它将无法工作。是的,当文件位于lib文件夹中时,它会自动加载。但添加渲染器的代码由于某种原因无法正常工作,直到我对其提出要求。我应该把我的代码放在哪里来添