# File lib/bee_task.rb, line 46
      def check_parameters(params, description)
        task = caller[0].match(/`(.*)'/)[1]
        error "'#{task}' parameters must be a hash" unless params.kind_of?(Hash)
        for param in description.keys
          error "#{task} '#{param}' parameter is mandatory" unless
            params[param.to_s] or description[param][:mandatory] == false
          if params[param.to_s]
            case description[param][:type]
            when :string
              error "#{task} '#{param}' parameter must be a string" unless
                params[param.to_s].kind_of?(String)
            when :integer
              error "#{task} '#{param}' parameter must be an integer" unless
                params[param.to_s].kind_of?(Integer)
            when :float
              error "#{task} '#{param}' parameter must be a float" unless
                params[param.to_s].kind_of?(Float)
            when :number
              error "#{task} '#{param}' parameter must be a number" unless
                params[param.to_s].kind_of?(Numeric)
            when :boolean
              error "#{task} '#{param}' parameter must be a boolean" unless
                params[param.to_s] == true or params[param] == false
            when :array
              error "#{task} '#{param}' parameter must be an array" unless
                params[param.to_s].kind_of?(Array)
            when :string_or_array
              error "#{task} '#{param}' parameter must be a string or an array" unless
                params[param.to_s].kind_of?(String) or params[param.to_s].kind_of?(Array)
            when :string_or_integer
              error "#{task} '#{param}' parameter must be a string or an integer" unless
                params[param.to_s].kind_of?(String) or params[param.to_s].kind_of?(Integer)
            when :hash
              error "#{task} '#{param}' parameter must be a hash" unless
                params[param.to_s].kind_of?(Hash)
            else
              error "Unknown parameter type '#{description[param][:type]}'"
            end
            params[param.to_sym] = params[param.to_s]
          else
            params[param.to_sym] = description[param][:default] if
              description[param][:default]
            params[param.to_s] = description[param][:default] if
              description[param][:default]
          end
        end
        for param in params.keys
          error "Unknown parameter '#{param}'" if 
            not (description.key?(param) or description.key?(param.to_sym))
        end
      end