# File lib/apipie/param_description.rb, line 15
    def initialize(name, validator, desc_or_options = nil, options = {}, &block)

      if desc_or_options.is_a?(Hash) && options.empty?
        options = desc_or_options
      elsif desc_or_options.is_a?(String)
        options[:desc] = desc_or_options
      elsif !desc_or_options.nil?
        raise ArgumentError.new("param description: expected description or options as 3rd parameter")
      end

      options.symbolize_keys!

      @name = name
      @desc = Apipie.markup_to_html(options[:desc] || '')
      @required = if options.has_key? :required
        options[:required]
      else
        Apipie.configuration.required_by_default?
      end
      @allow_nil = options[:allow_nil] || false

      @validator = nil
      unless validator.nil?
        @validator =
          Validator::BaseValidator.find(self, validator, options, block)
        raise "Validator not found." unless validator
      end
    end