#!/usr/bin/env ruby # # Twitter on the command line # require 'rubygems' gem 'twitter4r', '>=0.2.0' require 'twitter' require 'ftools' class Tweet def initialize end def real_main(argv) # # Specifiy these values in ~/.twitter for convenience # username = nil password = nil dot_file = File.join ENV['HOME'], '.twitter' if File.exists? dot_file File.open dot_file, 'r' do |file| file.each do |line| parts = line.split /:/ next if parts.length != 2 case parts[0].downcase when 'username' then username = parts[1] when 'password' then password = parts[1] end end end end # # Sanity check # have_error = false if !username STDERR.puts 'You need to specify a username in ~/.twitter' have_error = true end if !password STDERR.puts 'You need to specify a password in ~/.twitter' have_error = true end return 1 if have_error run username,password,argv end private def log(msg) STDERR.puts msg STDERR.flush end def run(username,password,argv) username = username.strip password = password.strip client = Twitter::Client.new(:login => username, :password => password) msg = argv.join ' ' client.status(:post, msg) log 'Sent.' end end def main(argv) Tweet.new.real_main argv end main ARGV