-
Notifications
You must be signed in to change notification settings - Fork 0
Figaro
À chaque nouveau projet, c’est pénible de devoir repasser dans les seeds, les environnements, changer les clés dans les initializers, les fichiers yaml… alors tout a été centralisé sur PushUpRails.
Toutes les données spécifiques sont stockées dans config/application.yml
. La gem figaro [1] s’occupe de la logique :
- elle permet d’accéder aux données d’une manière plus agréable :
Figaro.env.email
vs.ENV['email']
- elle assure que ces données soient utilisables par les initializers et même les autres fichiers yaml
- le fichier yaml permet de gérer ses différents environnements
Il existe deux courants de pensée :
- ne pas versionner
application.yml
(c’est notre cas) - le versionner avec uniquement des données de dév
Pour l’utilisation d’une donnée non critique, il est recommandé d’utiliser 'try' (ce qui évite une erreur si la donnée est à nil
) :
if Figaro.env.try(:google_analytics_key)
Je recommande d’utiliser la syntaxe ENV['…']
, il y a trop d’endroits où ça pète sinon.
Ne pas oublier qu’ENV est un hash de strings exclusivement. Ne vous attendez pas à avoir des integers ou des booleans. Depuis la version 1.0.0
, mettre autre chose que des strings génère une erreur.
J’ai d’ailleurs ajouté config/initializers/_to_bool.rb
pour gérer les booléens, exemple d’utilisation :
CarrierWave.configure do |config|
if ENV["s3_enabled"].to_bool
config.fog_directory = ENV["aws_directory"]
config.fog_credentials = {} # TODO
else
config.permissions = 0666
config.storage = :file
end
end