ruby – sinatra config.ru:什么是配置块?

前端之家收集整理的这篇文章主要介绍了ruby – sinatra config.ru:什么是配置块?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用Sinatra与Apache和Phusion乘客与“经典”风格:
  1. # config.ru
  2. require 'sinatra'
  3.  
  4. configure do
  5. ....
  6. end
  7.  
  8. require './app'
  9.  
  10. run Sinatra::Application

我想定义一些东西.在配置块或外部定义它有什么区别?

  1. # config.ru
  2. require 'sinatra'
  3.  
  4. # A) Defining logger here
  5. rack = File.new("logs/rack.log","a+")
  6. use Rack::CommonLogger,rack
  7.  
  8. # B) Global variables here
  9. LOGGER = Logger.new(...)
  10.  
  11. # C) Gem configuration here
  12. DataMapper::Property::Boolean.allow_nil(false)
  13.  
  14. configure do
  15. # A) Or defining logger here?
  16. rack = File.new("logs/rack.log","a+")
  17. use Rack::CommonLogger,rack
  18.  
  19. # B) Or global variables here?
  20. LOGGER = Logger.new(...)
  21.  
  22. # C) Or gem configuration here?
  23. DataMapper::Property::Boolean.allow_nil(false)
  24. ....
  25. end
  26.  
  27. require './app'
  28.  
  29. run Sinatra::Application

有没有一些一般规则,应该在外面做什么,应该在里面做什么?有什么不同?我测试了两种变体,两者似乎都同样好.

我知道配置可以用来对环境做出如下反应:

  1. configure :development do
  2. ....
  3. end

所以它对于不同的环境配置是有用的.这个用例很清楚,但是每个环境的一般配置怎么样?我把它放在哪里这只是风格的问题吗?

解决方法

这首先是一个环境问题,第二个是风格问题.放置配置没有区别.

它确实使您的代码更可读(IMHO),如果你把它放入一个块.此外,它将允许您添加基于环境的选项,然后将其放入其各自的块中.

总结一下,这取决于你:)

猜你在找的Ruby相关文章