class Postqueue::CLI::OptionsParser

Attributes

argv[R]

Public Class Methods

new(argv) click to toggle source
# File lib/postqueue/cli/options_parser.rb, line 12
def initialize(argv)
  @argv = argv
end
parse_args(argv) click to toggle source
# File lib/postqueue/cli/options_parser.rb, line 6
def self.parse_args(argv)
  new(argv).parse_args
end

Public Instance Methods

parse_args() click to toggle source
# File lib/postqueue/cli/options_parser.rb, line 16
def parse_args
  require "optparse"
  options = OpenStruct.new
  options.sub_command = argv.shift || "stats"

  unless %w(stats peek enqueue run process).include?(options.sub_command)
    usage!
  end

  case options.sub_command
  when "enqueue"
    options.op = next_arg!
    options.entity_ids = next_arg!.split(",").map { |s| Integer(s) }
  end
  options
end

Private Instance Methods

next_arg!() click to toggle source
# File lib/postqueue/cli/options_parser.rb, line 35
def next_arg!
  argv.shift || usage!
end
usage() click to toggle source
# File lib/postqueue/cli/options_parser.rb, line 39
      def usage
        STDERR.puts <<-USAGE
This is postqueue #{Postqueue::VERSION}. Usage examples:

  postqueue [ stats ]
  postqueue peek
  postqueue enqueue op entity_id,entity_id,entity_id
  postqueue run
  postqueue help
  postqueue process

USAGE
      end
usage!() click to toggle source
# File lib/postqueue/cli/options_parser.rb, line 53
def usage!
  usage
  exit 1
end