class Retjilp::Runner

Public Class Methods

new(argv) click to toggle source
# File lib/retjilp/runner.rb, line 12
def initialize(argv)
        # Parse command-line options
        OptionParser.new do |opts|
                opts.banner = "Usage: retjilp [ --help ] [ --verbose | --debug ]"
                opts.on("--verbose", "Run with verbose output") { Retjilp::log.level = Logger::INFO }
                opts.on("--debug", "Run with debug output") { Retjilp::log.level = Logger::DEBUG }
                opts.on_tail("-h", "--help", "Show this help") { puts opts ; exit }
                begin
                        opts.parse!(argv)
                rescue => e
                        fatal_error("Invalid option(s): #{e.message}\n" + opts.to_s)
                end
        end

        # Parse config file
        config_filename = File.join(DATA_DIR, "config")
        begin
                @options = File.open(config_filename) { |f| JSON.load(f) }
        rescue => e
                fatal_error("Error parsing configuration file #{config_filename}: #{e.message}")
        end

        # Convert keys to symbols
        @options = @options.inject({}){|m,(k,v)| m[k.to_sym] = v; m}
end

Public Instance Methods

run() click to toggle source
# File lib/retjilp/runner.rb, line 38
def run
        consumer_key = (@options[:consumer_key] or fatal_error("Consumer key missing"))
        consumer_secret = (@options[:consumer_secret] or fatal_error("Consumer secret missing"))
        twitter = Twitter.new(@options[:consumer_key], @options[:consumer_secret])
        Retweeter.new(twitter, @options).run
end

Private Instance Methods

fatal_error(msg) click to toggle source
# File lib/retjilp/runner.rb, line 46
def fatal_error(msg)
        STDERR.puts msg
        exit(-1)
end