# File lib/transat/parser.rb, line 71
    def option(name, options={})
      options[:long] = name.to_s.gsub("_", "-") unless options[:long]
      @valid_options << name
      @received_options[name] = nil

      opt_args = []
      opt_args << "-#{options[:short]}" if options.has_key?(:short)
      opt_args << "--#{options[:long] || name}"
      opt_args << "=#{options[:param_name]}" if options.has_key?(:param_name)
      opt_args << options[:message]
      case options[:type]
      when :int, :integer
        opt_args << Integer
      when :float
        opt_args << Float
      when nil
        # NOP

      else
        raise ArgumentError, "Option #{name} has a bad :type parameter: #{options[:type].inspect}"
      end

      @option_parser.on(*opt_args.compact) do |value|
        @received_options[name] = value
      end
    end