Sinatra - 多个配置块

时间:2014-04-27 02:21:33

标签: ruby sinatra

我一直在深入研究Sinatra,我注意到一些项目在他们的应用程序中定义了多个配置块。我找不到任何解释原因的原因。我的猜测是出于可读性目的。

module TestApp
  class App < Sinatra::Application
    configure do
      set :database, lambda {
        ENV['DATABASE_URL'] ||
          "postgres://localhost:5432/test_app_#{environment}"
      }
    end

    configure do
      disable :method_override
      disable :static

      set :protection, except: :session_hijacking

      set :erb, escape_html: true

      set :sessions,
          :httponly     => true,
          :secure       => false,
          :expire_after => 5.years,
          :secret       => ENV['SESSION_SECRET']
    end

    configure do
      Mail.defaults do
        delivery_method :file
      end
    end

    ...
  end
end

1 个答案:

答案 0 :(得分:0)

除了可读性之外,还有神经症缓解剂的组块和#34;为了清晰度(WIP)。它们作为有意义的分组(对于个体开发者而言),具有个人内部和#34;逻辑&#34;为设置和配置定义的展示位置。

一些是特定组件(邮件,数据库等)和一些漫反射和一般(各种性质的app配置,但与前一个特定块无关)。通常它会与核心应用程序和扩展功能相关,我猜。像mental SOA迷你地图一样,说明了与各个开发者的应用心理映射相匹配的配置。随着应用程序的发展,它将随着应用程序的发展而不断发展和重组,并将从开发人员的应用程序发展到应用程序。