ruby-on-rails - 如何在 Ruby/Rails 中进行只发生一次的函数调用

标签 ruby-on-rails ruby

我用来支持我的测试套件的 gem/插件调用了一些导致 Windows shell 翻转并死掉的 GNU 命令。我可以用这种方式绕过重写这些函数:

def get_rake_output(task)
  if RUBY_PLATFORM.include? 'mingw'
    puts 'Skipped since OS is Windows. Run the test suite on a UNIX-like shell.'
    ''
  else
    `./rake --silent #{task}`
  end
end

当然,每次调用该函数时都会打印消息。如何最好地确保它只显示一次?

最佳答案

idomatic ruby​​ 处理这个问题的方法是内存它

@@warning_said ||= "warning"

关于ruby-on-rails - 如何在 Ruby/Rails 中进行只发生一次的函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3471084/

相关文章:

ruby - 使用 aws-sdk v2 将图像上传到 S3

ruby-on-rails - 与 Capybara (Rails) 的 TDD; page.should 和 expect(page).to 之间的区别?

ruby-on-rails - 在 Rails 中创建 2 个具有 has_one 关联的对象

ruby-on-rails - nginx+passenger 上的 rails 应用程序未显示自定义错误页面

ruby-on-rails - Rails 5 自定义初始化器不工作

ruby-on-rails - Watir-Webdriver - 协议(protocol)不支持的地址族 - socket(2)

ruby - 无方法错误 : undefined method `+@' for "some sting":String

ruby-on-rails - 从 rails 3.2.0 升级到 3.2.2 时出现 "new"路由问题

ruby - 在退出时优雅地取消订阅 redis

ruby-on-rails - 'ActionView::Template::Error - 没有路由匹配'为 "old style"语句传递 'link_to' 参数