define :create_database_config, :passwords=>{} do databases = Hash.new params[:databases].each do |db_name| if node[:rails][params[:name]][:db].has_key?(db_name) values = node[:rails][params[:name]][:db][db_name].to_hash if params[:passwords].has_key?(db_name.to_s) values["password"] = params[:passwords].fetch(db_name.to_s) end name = values.has_key?(name) ? values[:name] : db_name databases.merge!({ name.to_s => values }) end end if params.has_key? :aliases params[:aliases].each do |target,source| databases[target.to_s] = databases[source.to_s] end end file "#{params[:app_root]}/shared/config/database.yml" do owner params[:deploy_user] group params[:deploy_user] mode '400' content databases.to_yaml end end