草庐IT

ruby-on-rails - 如何在正在运行的 ruby​​ 进程中更改 Date.today 的值

我知道这是个坏主意,但我有很多遗留代码,我想运行一些历史批处理作业。我不想更改系统日期,因为其他东西在同一系统上运行。有什么方法可以更改Date.today仅在给定进程的生命周期内返回的值。这里的想法是倒带并运行一些用于处理Date.today的旧批处理脚本。谢谢乔尔 最佳答案 您可以像Nikolaus向您展示的那样对Ruby进行猴子补丁,也可以使用TimeCopgem。它旨在使编写测试更容易,但您也可以在普通代码中使用它。#Setthetimewhereyouwanttogo.t=Time.local(2008,9,1,10,5,

ruby-on-rails - 没有 rails 的 ActiveModel

是否可以在没有rails的情况下使用ActiveModel?是否可以在桌面应用程序中使用ActiveModel? 最佳答案 使用Rails3,您可以!查看thispostonRubyinside.com 关于ruby-on-rails-没有rails的ActiveModel,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4362550/

ruby - 如何知道通过 ruby​​ 上传 ftp 是否成功?

下面的代码通过ftp上传文件并且它有效。require'net/ftp'ftp=Net::FTP.newftp.passive=trueftp.connect("***")ftp.login("***","***")ftp.chdir"claimsecure-xml-files"ftp.putbinaryfile("file.xls",File.basename("file.xls"))ftp.quit但是如何确定上传是否成功呢? 最佳答案 之后ftp.putbinaryfile("file.xls",File.basename("

ruby 正则表达式 : "capture string unless it is followed by..."

我的正则表达式捕获引用的短语:"([^"]*)"我想通过忽略引号来改进它,引号后跟',-'(按此特定顺序排列的逗号、空格和破折号)。我该怎么做?测试:http://rubular.com/r/xls6vN1w92 最佳答案 这应该可以做到,使用NegativeLookahead:"(?!,-)([^"]*)"(?!,-)有点恶心,但它有效。您要确保引号后面没有跟您的字符串,否则匹配将从结束引号开始。http://rubular.com/r/yFMyUKJOHL 关于ruby正则表达式:"

ruby-on-rails - rails3 中 cron 作业的解决方案

我尝试每天在我的Rails应用程序中自动记录一些数据。我想知道是否有人知道一个好的解决方案?我找到了https://github.com/javan/whenever,但我想确保在选择之前了解所有选项。谢谢!艾略特 最佳答案 我真的很喜欢whenever-这是一个很棒的Gem,我已经在生产中使用了它。关于它还有一个很好的Railscasts插曲:http://railscasts.com/episodes/164-cron-in-ruby 关于ruby-on-rails-rails3中c

ruby - 停止分布式 Ruby 服务

我有一个启动DRb服务的脚本,然后生成处理程序对象并通过DRb.thread.join等待。我希望脚本一直运行直到被明确杀死,所以我添加了trap"INT"doDRb.stop_serviceend在Ruby1.8下成功停止DRb服务并退出,但在1.9下似乎死锁(在OSX10.6.7上)。对该进程进行采样显示在semaphore_wait_signal_trap中有几个线程在旋转。我假设我在调用stop_service时做错了什么,但我不确定是什么。谁能给我任何关于如何正确处理它的指示? 最佳答案 好的,我想我已经找到了解决方案。如

ruby - Sinatra 助手伪造请求

总结在Sinatra内Web应用程序,如何向应用程序发出虚拟请求并以文本形式返回响应正文?例如,这些路线...get('/foo'){"foo"}get('/bar'){"#{spoof_request'/foo'}-bar"}...当使用Web浏览器请求“/bar”时,应产生响应“foo-bar”。动机我的应用程序有一个代表错误条目的页面,其中包含关于该错误条目的大量详细信息:错误出现在哪个版本中,它有多重要,与之关联的标签是什么,错误分配给了谁等等.用户可以在此页面上以交互方式编辑单个数据。使用我的AJAXFetchjQuery插件,JavaScript使用AJAX将页面的只读部分

ruby - 使用 gmail gem 跟踪一些电子邮件

我正在使用gmailgem发送电子邮件,我需要跟踪这些电子邮件。我该怎么做?我正在尝试搜索带有message_id的电子邮件,但它会从我的收件箱中提取所有电子邮件,而我只想要特定电子邮件的回复。这是我的实际代码:*使用message_id保存电子邮件*mail=gmail.deliver(email)Email.create(:message_id=>mail.message_id,:from=>user.email,:to=>annotation.to,:body=>annotation.content,:title=>annotation.title,:annotation=>an

ruby - 如何在 Chef 中使用 Ruby 标记 EC2 实例?

我正在尝试与Chef一起启动EC2实例。一切都运行良好,但Chef似乎无法标记实例。我错过了什么吗?否则,实现此目标的首选Ruby库是什么?我可以在不需要额外gem的情况下做到吗?谢谢 最佳答案 knife-ec2Gem的0.5.12版支持在创建时使用--tags选项标记EC2实例。knifeec2servercreate[...youroptions...]--tagsTag=Value 关于ruby-如何在Chef中使用Ruby标记EC2实例?,我们在StackOverflow上找到

ruby - 通过 mixin 重载操作符

有没有办法通过在模块中创建新的运算符方法,然后将该模块混合到类中来覆盖类的运算符?例如,这会覆盖Fixnum的+运算符:classFixnumdef+(x)product=xproduct=product*selfreturnproductendendp3+3#=>9这不会覆盖Fixnum的+运算符:moduleNewOperatorsdef+(x)product=xproduct=product*selfreturnproductendendclassFixnumincludeNewOperatorsendp3+3#=>6 最佳答案