मैं अपाचे और "क्लासिक" शैली के साथ Phusion-यात्री के साथ सिनात्रा उपयोग कर रहा हूँ:sinatra config.ru: कॉन्फ़िगरेशन ब्लॉक क्या है?
# config.ru
require 'sinatra'
configure do
....
end
require './app'
run Sinatra::Application
मैं कुछ चीजें निर्धारित करना चाहते हैं। कॉन्फ़िगर ब्लॉक या बाहर के अंदर इसे परिभाषित करने के बीच क्या अंतर है?
# config.ru
require 'sinatra'
# A) Defining logger here
rack = File.new("logs/rack.log", "a+")
use Rack::CommonLogger, rack
# B) Global variables here
LOGGER = Logger.new(...)
# C) Gem configuration here
DataMapper::Property::Boolean.allow_nil(false)
configure do
# A) Or defining logger here?
rack = File.new("logs/rack.log", "a+")
use Rack::CommonLogger, rack
# B) Or global variables here?
LOGGER = Logger.new(...)
# C) Or gem configuration here?
DataMapper::Property::Boolean.allow_nil(false)
....
end
require './app'
run Sinatra::Application
क्या कुछ सामान्य नियम हैं जो बाहर किए जाने चाहिए और अंदर क्या किया जाना चाहिए? अंतर क्या है? मैंने दोनों प्रकारों का परीक्षण किया, और दोनों समान रूप से अच्छी तरह से काम करना प्रतीत होता था।
मैं जानता हूँ कि configure
इस तरह पर्यावरण पर प्रतिक्रिया करने के लिए इस्तेमाल किया जा सकता:
configure :development do
....
end
तो यह अलग वातावरण विन्यास के लिए उपयोगी है। यह उपयोग मामला स्पष्ट है, लेकिन हर पर्यावरण के लिए सामान्य विन्यास के बारे में क्या? मैं उन्हें कहां रखूं? क्या यह केवल शैली का मामला है?
मैं सिर्फ पाया [स्रोत] (http://rubydoc.info/gems/sinatra/1.3.3/Sinatra/Base.configure), और यह वास्तव में एक तर्क के रूप में ब्लॉक के साथ उपज करने से ज्यादा कुछ नहीं करता है। तो यह केवल शैली का मामला है। – Markus