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)

RUBY:
  1. Rails::Initializer.run do |config|
  2.     ...
  3.        # --- My killer-app specific settings:
  4.        config.app_config.my_key = 'my value'
  5.        config.app_config.boot_time = Time.now
  6.        config.app_config.default_mail_subject = '[appconfig] '
  7.        config.app_config.my_hash = {:a=>1, :b=>2}
  8.     ...

Przykład (plik environment/development.rb)

RUBY:
  1. 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:

RUBY:
  1. AppConfig.my_key
  2. AppConfig[:my_key]
  3. AppConfig['my_key']
  4. AppConfig.param('my_key')
  5. AppConfig.param(:my_key)
  6. AppConfig.param('my_key', 'value if my_key is nil')
  7. AppConfig.param(:my_key) do
  8.  ... #executed when my_key is nil
  9. end

Mam nadzieję, że konfigurowanie aplikacji będzie teraz wygodniejsze...

[ ]
Spodobało się? Podziel się z innymi: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • Wykop
  • Gwar
  • Digg
  • Technorati

Dodaj komentarz