Używam pliku YAML do przechowywania poufnych danych konfiguracyjnych. Używam tego pliku w środowisku programistycznym. W produkcji używam zmiennych ENV.Rescue, jeśli plik YAML nie istnieje lub nie można załadować w Railsach
Oto co robię teraz:
Mam plik konfiguracyjny/confidental.yml, który wygląda tak:
email:
user_name: 'my_user'
password: 'my_passw'
Mam config środowisk/pliku/development.rb że (wśród innych rzeczy) mają te linie:
# Mailer config
email_confidential = YAML.load_file("#{Rails.root}/config/confidential.yml")['email']
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'baci.lindsaar.net',
:user_name => email_confidential['user_name'],
:password => email_confidential['password'],
:authentication => 'plain',
:enable_starttls_auto => true }
Moje pytanie brzmi: Jak mogę upewnić się, że plik YAML istnieje i może być załadowany, a jeśli nie rzucać jakiś wyjątek? Gdzie należy to umieścić?
Dzięki. Wierzę, że config/environments/również inicjuje, prawda? –
Teraz rubocop sugeruje File.exist? (zamiast liczby mnogiej) zamiast File.exists? –