Created
April 29, 2014 15:24
-
-
Save jmolivas/11403587 to your computer and use it in GitHub Desktop.
Adding customizable configuration to Vagrantfile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "yaml" | |
parameter_file = "./parameters.yml" | |
parameters = Array.new(0) | |
if File.exists?(parameter_file) | |
parameters = YAML::load_file(parameter_file) | |
end | |
# Apply configuration values if available | |
config.vm.network "private_network", ip: (parameters.include?'network_ip') ? parameters['network_ip'] : "192.168.9.10" | |
config.vm.synced_folder "./www", "/var/www", id: "webroot", type: (parameters.include?'synced_folder_type') ? parameters['synced_folder_type'] : "nfs" | |
virtualbox.customize ["modifyvm", :id, "--memory", (parameters.include?'memory') ? parameters['memory'] : "512"] |
En un ejercicio extra, puedes reducir esto así:
require "yaml"
params_file = "parameters.yml"
params = File.exists?(params_file) ? YAML::load_file(params_file) : {}
config.vm.network "private_network", ip: params.fetch('network_ip', "192.168.9.10")
config.vm.synced_folder "./www", "/var/www", id: "webroot", type: params.fetch('synced_folder_type', "nfs")
virtualbox.customize ["modifyvm", :id, "--memory", params.fetch('memory', "512")]
De nuevo, la explicación:
- no hay por qué checar si params_file está definido, porque tú controlas el flow y lo acabas de declarar :P
- no hay por qué inicializar
params = { }
antes de hacer algo con él. - cuando declaras params, puedes darle un fallback value con
||
, traduciéndose como params es lo que resulte de abrir via YAML este archivo, o un Hash vacío
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Al final ha quedó así: