Skip to content

Instantly share code, notes, and snippets.

@prodis
Created July 18, 2011 23:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save prodis/1090960 to your computer and use it in GitHub Desktop.
Save prodis/1090960 to your computer and use it in GitHub Desktop.
Ruby Fundamental - Exemplos de scripts em Ruby (parte II)
#!/usr/bin/env ruby
# encoding: utf-8
# listar_contatos.rb
raise ArgumentError, "=> Quantidade de argumentos incorreta. Exemplo de uso: ruby listar_contatos.rb root minhasenha" if ARGV.size != 2
mysql_user, mysql_pass = ARGV
def criar_array(resultado)
resultado.split("\n").drop(1)
end
resultado = `mysql -u#{mysql_user} -p#{mysql_pass} information_schema -e "SELECT schema_name FROM schemata WHERE schema_name LIKE 'fundamental_%' ORDER BY schema_name"`
criar_array(resultado).each do |base|
resultado = `mysql -u#{mysql_user} -p#{mysql_pass} #{base} -e "SELECT email FROM contatos ORDER BY email"`
puts "#{base.gsub('fundamental_', '')} #{criar_array(resultado).join(', ')}"
end
raise ArgumentError, "=> Quantidade de argumentos incorreta. Exemplo de uso: ruby listar_contatos.rb root minhasenha" if ARGV.size != 2
mysql_user, mysql_pass = ARGV
resultado = `mysql -u#{mysql_user} -p#{mysql_pass} information_schema -e "SELECT schema_name FROM schemata WHERE schema_name LIKE 'fundamental_%' ORDER BY schema_name"`
schema_name
fundamental_alporo
fundamental_prodis
fundamental_zeus12
bases = resultado.split("\n").drop(1)
bases.each do |base|
resultado = `mysql -u#{mysql_user} -p#{mysql_pass} #{base} -e "SELECT email FROM contatos ORDER BY email"`
emails = resultado.split("\n").drop(1)
puts "#{base.gsub('fundamental_', '')} #{emails.join(', ')}"
end
alporo contato@alporo.com.br
homero contato.rj@homeroempresa.com.br, contato.sp@zeusempresa.com.br
prodis prodis@gmail.com, prodis@timedev.com
bases = resultado.split("\n").drop(1)
emails = resultado.split("\n").drop(1)
def criar_array(resultado)
resultado.split("\n").drop(1)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment