# File lib/apipie/dsl_definition.rb, line 178
    def method_added(method_name) #:doc:
      super

      if ! Apipie.active_dsl? || ! Apipie.apipie_provided?
        Apipie.clear_last
        return
      end

      begin
        # remove method description if exists and create new one
        Apipie.remove_method_description(self, Apipie.last_dsl_data[:api_versions], method_name)
        description = Apipie.define_method_description(self, method_name, Apipie.last_dsl_data[:api_versions])
      ensure
        Apipie.clear_last
      end

      # redefine method only if validation is turned on
      if description && Apipie.configuration.validate == true

        old_method = instance_method(method_name)

        define_method(method_name) do |*args|

          if Apipie.configuration.validate == true
            description.params.each do |_, param|

              # check if required parameters are present
              if param.required && !params.has_key?(param.name)
                raise ParamMissing.new(param.name)
              end

              # params validations
              if params.has_key?(param.name)
                param.validate(params["#{param.name}""#{param.name}"])
              end

            end
          end

          # run the original method code
          old_method.bind(self).call(*args)
        end

      end
    end