Komut satırı üzerinden Ruby komut dosyasına değişkenler geçmek
Windows Rubyİnstaller yükledim ve IMAP Sync koşuyorum ama hesapları sync yüzlerce kullanmam gerekiyor. Eğer komut satırı üzerinden bu değişkenler geçersem tüm süreç daha otomatize edebilirim.
# Source server connection info.
SOURCE_NAME = 'username@example.com'
SOURCE_HOST = 'mail.example.com'
SOURCE_PORT = 143
SOURCE_SSL = false
SOURCE_USER = 'username'
SOURCE_PASS = 'password'
# Destination server connection info.
DEST_NAME = 'username@gmail.com'
DEST_HOST = 'imap.gmail.com'
DEST_PORT = 993
DEST_SSL = true
DEST_USER = 'username@gmail.com'
DEST_PASS = 'password'
CEVAP
Tekerleği yeniden icat etme; Ruby'nin şekilde serin kontrol OptionParser kütüphane.
İsteğe bağlı ya da zorunlu değerleri ile, tek seçenek haline parametre listeleri ayrıştırabilir/bayrak ayrıştırma sunmaktadır ve sizin için yardım oluşturabilir.
Eğer herhangi bir bilginiz geçirilen olmaktan çok statik ise, o da, ayrıştırılmış olur YAML dosyasına koy arasında çalışır değiştirmez. Bu şekilde komut satırı ve zaman zaman değiştiren şeyler kodu dışında yapılandırılmış her zaman değiştirmek şeyler olabilir. Veri ve kod ayırma bakım için güzel.
Burada oynamak için bazı örnekler:
require 'optparse'
require 'yaml'
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on('-n', '--sourcename NAME', 'Source name') { |v| options[:source_name] = v }
opts.on('-h', '--sourcehost HOST', 'Source host') { |v| options[:source_host] = v }
opts.on('-p', '--sourceport PORT', 'Source port') { |v| options[:source_port] = v }
end.parse!
dest_options = YAML.load_file('destination_config.yaml')
puts dest_options['dest_name']
Eğer bu yerler oldukça statik ise örnek YAML dosyası:
---
dest_name: username@gmail.com
dest_host: imap.gmail.com
dest_port: 993
dest_ssl: true
dest_user: username@gmail.com
dest_pass: password
Bu kolayca YAML dosyası oluşturmak izin verir:
require 'yaml'
yaml = {
'dest_name' => 'username@gmail.com',
'dest_host' => 'imap.gmail.com',
'dest_port' => 993,
'dest_ssl' => true,
'dest_user' => 'username@gmail.com',
'dest_pass' => 'password'
}
puts YAML.dump(yaml)
Gerçekten Ucuz bir Komut Satırı Seçene...
Kullanım gıt ünlem işareti komut satır...
Nasıl windows komut satırı üzerinden T...
komut satırı üzerinden çerez göndermek...
RVM ama komut satırı ile Ruby 1.9.3�...