草庐IT

静态代码

全部标签

ruby - 为依赖于环境变量的代码编写规范的最佳方法是什么?

我正在测试一些从环境变量中提取其配置的代码(在生产环境中由Heroku配置变量设置,对于本地开发我使用foreman)。使用RSpec测试此类代码的最佳方法是什么?我想到了这个:before:eachdoENV.stub(:[]).with("AWS_ACCESS_KEY_ID").and_return("asdf")ENV.stub(:[]).with("AWS_SECRET_ACCESS_KEY").and_return("secret")end如果您不需要测试环境变量的不同值,我想您可以改为在spec_helper中设置它们。 最佳答案

Ruby on Rails - 静态方法

我想要一个每5分钟执行一次的方法,我为ruby​​(cron)实现了whenever。但它不起作用。我认为我的方法不可访问。我要执行的方法位于一个类中。我认为我必须将该方法设为静态,以便我可以使用MyClass.MyMethod访问它。但是我找不到正确的语法,或者我找错地方了。日程.rbevery5.minutesdorunner"Ping.checkPings"end平.rbdefcheckPingsgate=Net::Ping::External.new("10.10.1.1")@monitor_ping=Ping.new()ifgate.ping?MonitorPing.WAN=

ruby-on-rails - 是否有 Rails 控制台命令(Rails 3+)来重新加载更改后的代码?

我正在玩控制台,我更改了一些模型代码,现在我想测试它。我通常会重新启动控制台。有没有更快的方法?也许是重新加载模型代码的控制台命令? 最佳答案 当然,只需输入:reload! 关于ruby-on-rails-是否有Rails控制台命令(Rails3+)来重新加载更改后的代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6602897/

ruby-on-rails - Ruby:如何制作公共(public)静态方法?

在Java中我可能会这样做:publicstaticvoiddoSomething();然后我可以在不创建实例的情况下静态访问该方法:className.doSomething();我如何在Ruby中做到这一点?这是我的类(class),根据我的理解self.使方法静态:classAskdefself.make_permalink(phrase)phrase.strip.downcase.gsub!/\+/,'-'endend但是当我尝试调用时:Ask.make_permalink("makeaslugoutofthisline")我得到:undefinedmethod`make_pe

ruby-on-rails - 在 Rails 应用程序中查找未使用的代码

如何找到哪些代码正在生产环境运行,哪些代码未运行?该应用经过了充分测试,但有很多测试未使用代码。因此,他们在运行测试时得到了覆盖……我想重构并清理这个烂摊子,它一直在浪费我的时间。我有很多后台工作,这就是为什么我希望生产环境来指导我。在heroku上运行,我可以启动dynos来补偿分析器对性能的任何影响。相关问题HowcanIfindunusedmethodsinaRubyapp?没有帮助。奖励:显示一行代码运行频率的指标。不知道为什么我想要它,但我想要!:) 最佳答案 在正常情况下,方法是使用您的测试数据来覆盖代码,但正如您所说,

ruby - ruby 中的静态变量

我刚刚了解了php中的静态变量。ruby中有类似的东西吗?例如,如果我们要创建一个Student类,对于我们创建的每个student对象,它的ID号应该自动递增。我认为将类变量创建为静态就可以了。 最佳答案 类变量在所有实例之间共享(这就是它们被称为类变量的原因),所以它们会做你想做的事。它们也是继承的,有时会导致相当困惑的行为,但我认为这不会成为问题。下面是一个类的示例,它使用类变量来计算已创建的实例数量:classFoo@@foos=0definitialize@@foos+=1enddefself.number_of_foos

ruby-on-rails - 如何在 Rails 中做静态内容?

查看不同的选项:一种是将静态页面放在public/文件夹中,但我确实希望布局/应用程序的标题保持一致。我试过了,但是我得到了一个错误:#inroutes.rb:map.connect'*path',:controller=>'content',:action=>'show'#incontent_controller.rb:defshowrender:action=>params[:path].join('/')end我想要的只是一种简单的方法,只需创建一个.rhtml即可将我的常见问题解答、联系方式、服务条款、隐私和其他非应用程序类型的页面放在一起。谁做的?

ruby-on-rails - 在Ruby on Rails中,要扩展String类,代码应该放在哪里?

如果在RubyonRails上,我需要添加一个名为classStringdefcapitalize_first#...endend想知道文件应该放在哪里?(哪个目录和文件名,是否需要任何初始化代码?)这是针对Rails3.0.6项目的。 最佳答案 我总是在我的lib目录中添加一个core_ext目录。创建一个initializer用于加载自定义扩展(例如:config/initializers/core_exts.rb)。并在其中添加以下行:Dir[File.join(Rails.root,"lib","core_ext","*.r

ruby-on-rails - Ruby on Rails 中的静态页面

制作具有如下页面的RubyonRails应用程序的标准方法是什么主页关于联系方式如果有人有链接或答案,我会申请,而不是仅仅说使用gem,因为我想学习如何制作具有这种行为的简单网络应用程序。 最佳答案 取决于您希望如何处理这些页面中的内容。方法#1-在View中存储内容如果您只想将所有内容放在ERBView中,那么一个非常简单的方法是创建一个PagesController,其目的是处理静态页面。每个页面由Controller中的一个操作表示。pages_controller.rb:classPagesController路线.rb:m

ruby - Ruby 中用于显示提示、获取输入和分配给变量的代码?

我经常发现自己在做以下事情:print"Inputtext:"input=gets.strip是否有一种优雅的方式可以在一行中完成此操作?像这样的东西:puts"Inputtext:#{input=gets.strip}"问题是它在显示提示之前等待输入。有什么想法吗? 最佳答案 我认为采用像Marc-Andre建议的方式将是可行的方法,但是当您可以在任何脚本的顶部定义两行函数时,为什么要引入一大堆代码将要使用:defprompt(*args)print(*args)getsendname=prompt"Inputname:"