Uniвсячина

понемножку о Linux и программировании

Как использовать Configatron в Ruby on Rails

Есть такая замечательная библиотека configatron, которая позволяет легко и непринужденно работать с конфигами приложения. Обращаться к значениям конфигурации можно через цепочку методов:

connect(configatron.database.host, configatron.database.port)

Метод configatron встраивается в модуль Kernel и имеет глобальную область видимости в приложении. Загружать данные можно либо из хеша, либо из YAML-файла. Например, в Rails можно загружать данные из файла config/config.yml такого вида:

development:
  sphinx: &sphinx_defaults
    host: sphinx.server
    port: 3312
    index: dev_index

test:
  sphinx:
    index: test_index
    <<: *sphinx_defaults

production:
  sphinx:
    index: production_index
    <<: *sphinx_defaults

Загрузить файл config/config.yml можно из config/initializers/load_config.rb такого содержания:

configatron.configure_from_yaml(
    File.join(Rails.root, "config", "config.yml"), 
    :hash => Rails.env
)

Ну и конечно, не забудем внести зависимость на gem в файл config/environment.rb, добавив строчку config.gem "configatron".

Приятного использования :)

Comments