Допустим, у нас есть некая структура конфигурации (взята из YAML, JSON, XML или просто в виде Hash):
↓
configuration = {
gmail: {
username: 'example@gmail.com',
password: 'pa$$word',
host: 'imap.gmail.com',
ssl: true,
port: 993
},
ftp: {
username: 'example@gmail.com',
password: 'pa$$word',
host: 'imap.gmail.com',
ssl: true,
port: 42
}
}
Далее, на основе этой структуры мы достаём из неё данные:
↓
mail = Mail.new host: configuration[:gmail][:host], port: configuration[:gmail][:port], username: configuration[:gmail][:username], password: configuration[:gmail][:password], ssl: configuration[:gmail][:ssl]
ftp = FTP.new host: configuration[:ftp][:host], port: configuration[:ftp][:port], username: configuration[:ftp][:username], password: configuration[:ftp][:password], ssl: configuration[:ftp][:ssl]
Всё работает, но сам код получается плохочитаемым.
Т. е. он, конечно, понятен, но слишком много «сухого» текста, вместо привычного, для языка программирования, кода.
Поделитесь
Best Practice, как правильно делать и использовать конфигурации в Ruby.