class Asciimation::ArgumentParser

Constants

DEFAULT_OPTIONS

Attributes

args[R]

Public Class Methods

new(args) click to toggle source
# File lib/asciimation/argument_parser.rb, line 7
def initialize(args)
  @args = args
end

Public Instance Methods

to_hash() click to toggle source
# File lib/asciimation/argument_parser.rb, line 14
def to_hash
  options = DEFAULT_OPTIONS.dup
  hash    = {io: nil, options: options}

  args.options do |parser|
    parser.banner =
      "Usage:  #{File.basename($PROGRAM_NAME)} [OPTIONS] ASCII_ART_PATH"

    parser.separator ""
    parser.separator "Specific Options:"

    parser.on( "--animator NAME", String,
               "The animator to use." ) do |animator|
      options[:animator] = animator
    end
    parser.on( "-o", "--duration SECONDS", Float,
               "The seconds this animation should last." ) do |duration|
      options[:duration] = duration
    end

    parser.separator "Common Options:"

    parser.on( "-h", "--help",
               "Show this message." ) do
      puts parser
      exit
    end

    begin
      path      = args.shift or abort parser.to_s
      hash[:io] = open(path)

      parser.parse!
    rescue OptionParser::ParseError
      abort parser.to_s
    end
  end

  hash
end