def check_comment(options = {})
      return false if invalid_options?
      message = call_akismet('comment-check', options)
      { :spam => !self.class.valid_responses.include?(message), :message => message }
    end
def check_comment(options = {})
      return false if invalid_options?
      message = call_akismet('comment-check', options)
      { :spam => !self.class.valid_responses.include?(message), :message => message }
    end
This is basically the core of everything. This call takes a number of
 arguments and characteristics about the submitted content and then
 returns a thumbs up or thumbs down. Almost everything is optional, but
 performance can drop dramatically if you exclude certain elements.

 ==== Arguments
 +options+ <Hash>:: describes the comment being verified

 The following keys are available for the +options+ hash:

 +user_ip+ (*required*)::
   IP address of the comment submitter.
 +user_agent+ (*required*)::
   user agent information.
 +referrer+ (<i>note spelling</i>)::
   the content of the HTTP_REFERER header should be sent here.
 +permalink+::
   permanent location of the entry the comment was submitted to
 +comment_type+::
   may be blank, comment, trackback, pingback, or a made up value like
   "registration".
 +comment_author+::
   submitted name with the comment
 +comment_author_email+::
   submitted email address
 +comment_author_url+::
   commenter URL
 +comment_content+::
   the content that was submitted
 Other server enviroment variables::
   In PHP there is an array of enviroment variables called <tt>_SERVER</tt>
   which contains information about the web server itself as well as a
   key/value for every HTTP header sent with the request. This data is
   highly useful to Akismet as how the submited content interacts with
   the server can be very telling, so please include as much information
   as possible.