AppConfig mój pierwszy plugin
Standardowy sposób konfiguracji aplikacji railsowej jest zarówno prosty, jak i bardzo elastyczny, niestety nie pozwala na kofigurację opcji specyficznych dla tworzonej aplikacji.
Plugin AppConfig stara się rozwiązać ten problem. Po jego instalacji ustawienia właściwe dla Twojej aplikacji możesz umieszczać w pliku environment.rb analogicznie do innych opcji konfiguracyjnych samej biblioteki.
Instalacja
Plugin można zainstalować tak:
$ script/plugin discover
$ script/plugin install app_config
albo wprost z repozytorium svn:
$ script/plugin install http://svn.jarmark.org/rails/app_config
UWAGA: ponieważ plugin modyfikuje obslugę konfiguracji Railsów, musi być włączony w environment.rb przed wywołaniem Rails::Initializer#run. Jeżeli korzystasz z Rails v1.1 lub wyżej ta zmiana w pliku environment.rb jest dokonywana automatycznie podczas instalacji. Jeżeli natomiast korzystasz ze starszej wersji musisz tą linię:
require 'plugins/app_config/lib/configuration'
dodać ręcznie do environment.rb (gdzieś miedzy linia require File.join(File.dirname(__FILE__), 'boot') a Rails::Initializer.run
Wykorzystanie
Konfiguracja ustawień Twojej aplikacji polega na użyciu prefixu app_config przed nazwą opcji których wartość ustawiasz w plikach konfiguracyjnych.
Przykład (plik environment.rb)
-
Rails::Initializer.run do |config|
-
...
-
# --- My killer-app specific settings:
-
config.app_config.my_key = 'my value'
-
config.app_config.boot_time = Time.now
-
config.app_config.default_mail_subject = '[appconfig] '
-
config.app_config.my_hash = {:a=>1, :b=>2}
-
...
Przykład (plik environment/development.rb)
-
config.app_config.default_message="I'm now in development mode"
Aby pobrać wartości opcji skonfigurowanych jak wyżej w aplikacji możesz skorzystać z jednego z następujących sposobów:
-
AppConfig.my_key
-
AppConfig[:my_key]
-
AppConfig['my_key']
-
AppConfig.param('my_key')
-
AppConfig.param(:my_key)
-
AppConfig.param('my_key', 'value if my_key is nil')
-
AppConfig.param(:my_key) do
-
... #executed when my_key is nil
-
end
Mam nadzieję, że konfigurowanie aplikacji będzie teraz wygodniejsze...
[config rails]







