ruby-akismet 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.rdoc +6 -3
  2. data/lib/akismet.rb +12 -79
  3. data/test/akismet_test.rb +1 -0
  4. metadata +3 -3
data/README.rdoc CHANGED
@@ -16,14 +16,17 @@ To use Typepad Antispam, just set the host:
16
16
  Akismet.host = 'api.antispam.typepad.com'
17
17
 
18
18
  Then you need to call any of the methods with a few attributes,
19
- and possibly an ActionDispatch::Request object.
19
+ and possibly an <code>ActionDispatch::Request</code> object.
20
+
21
+ = Documentation
22
+
23
+ http://rubydoc.info/github/ysbaddaden/ruby-akismet/master/frames
20
24
 
21
25
  = Integrate with Ruby on Rails (3.0+)
22
26
 
23
27
  Add this gem to your Gemfile:
24
28
 
25
- gem 'ruby-akismet', :require => 'akismet',
26
- :git => 'git://github.com/ysbaddaden/ruby-akismet.git'
29
+ gem 'ruby-akismet', :require => 'akismet'
27
30
 
28
31
  Create an initializer file like <code>config/initializers/akismet.rb</code>
29
32
  with your configuration:
data/lib/akismet.rb CHANGED
@@ -1,80 +1,8 @@
1
1
  require 'net/http'
2
2
 
3
3
  # Akismet compatible library for checking spams.
4
- #
5
- # = Usage
6
- #
7
- # First you need an Akismet (or Typepad Antispam) API key. Then you need
8
- # to setup a few configuration variable.
9
- #
10
- # Akismet.key = '123456789'
11
- # Akismet.blog = 'http://example.com'
12
- #
13
- # To use Typepad Antispam, just set the host:
14
- #
15
- # Akismet.host = 'api.antispam.typepad.com'
16
- #
17
- # Then you need to call any of the methods with a few attributes,
18
- # and possibly an ActionDispatch::Request object.
19
- #
20
- # = Integrate with Ruby on Rails (3.0+)
21
- #
22
- # Add this gem to your Gemfile:
23
- #
24
- # gem 'ruby-akismet', :require => 'akismet',
25
- # :git => 'git://github.com/ysbaddaden/ruby-akismet.git'
26
- #
27
- # Create an initializer file like <code>config/initializers/akismet.rb</code>
28
- # with your configuration:
29
- #
30
- # Akismet.key = '123456789'
31
- # Akismet.blog = 'http://example.com'
32
- #
33
- # Then in your controller call the appropriate methods:
34
- #
35
- # class CommentsController < ApplicationController
36
- # before_filter :set_post
37
- # respond_to :html, :xml
38
- #
39
- # def create
40
- # @comment = @post.comments.new(params[:comment])
41
- # @comment.spam = Akismet.spam?(akismet_attributes, request)
42
- # @comment.save
43
- # respond_with(@comment, :location => @post)
44
- # end
45
- #
46
- # def spam
47
- # @comment = Comment.find(params[:id])
48
- # @comment.update_attribute(:spam, false)
49
- # Akismet.submit_spam(akismet_attributes)
50
- # respond_with(@comment, :location => @post)
51
- # end
52
- #
53
- # def ham
54
- # @comment = Comment.find(params[:id])
55
- # @comment.update_attribute(:spam, false)
56
- # Akismet.submit_ham(akismet_attributes)
57
- # respond_with(@comment, :location => @post)
58
- # end
59
- #
60
- # private
61
- # def akismet_attributes
62
- # {
63
- # :comment_author => @comment.author,
64
- # :comment_author_url => @comment.author_url,
65
- # :comment_author_email => @comment.author_email,
66
- # :comment_content => @comment.body,
67
- # :permalink => post_url(@post)
68
- # }
69
- # end
70
- #
71
- # def set_post
72
- # @post = Post.find(params[:post_id])
73
- # end
74
- # end
75
- #
76
4
  class Akismet
77
- VERSION = '0.9.1'.freeze
5
+ VERSION = '0.9.2'.freeze
78
6
  API_VERSION = '1.1'.freeze
79
7
 
80
8
  @@host = 'rest.akismet.com'
@@ -82,23 +10,27 @@ class Akismet
82
10
  @@blog = nil
83
11
 
84
12
  class << self
13
+ # Configure an alternate API server.
85
14
  def host=(host)
86
15
  @@host = host
87
16
  end
88
17
 
18
+ # Configure your API key (required).
89
19
  def key=(key)
90
20
  @@key = key
91
21
  end
92
22
 
23
+ # Configure your homepage URL (optional).
93
24
  def blog=(blog)
94
25
  @@blog = blog
95
26
  end
96
27
 
28
+ # Checks if a key is valid or not.
97
29
  def valid_key?(key)
98
30
  call('verify-key', :key => key) == "valid"
99
31
  end
100
32
 
101
- # Checks wether a comment is spam or not.
33
+ # Checks if a comment is spam.
102
34
  #
103
35
  # Required attributes:
104
36
  #
@@ -119,19 +51,19 @@ class Akismet
119
51
  call('comment-check', attributes, request) == "true"
120
52
  end
121
53
 
122
- # Returns true unless comment is spam. Accepts the same arguments than spam.
54
+ # Checks if a comment is ham. Takes the same arguments than spam?.
123
55
  def ham?(attributes, request = nil)
124
56
  call('comment-check', attributes, request) == "false"
125
57
  end
126
58
 
127
59
  # Submits a spam comment to Akismet that hadn't been recognized
128
- # as spam. Takes the same attributes than spam.
60
+ # as spam. Takes the same attributes than spam?.
129
61
  def submit_spam(attributes)
130
62
  call('submit-spam', attributes)
131
63
  end
132
64
 
133
65
  # Submits a false-positive comment as non-spam to Akismet.
134
- # Takes the same attributes than spam.
66
+ # Takes the same attributes than +spam+.
135
67
  def submit_ham(attributes)
136
68
  call('submit-ham', attributes)
137
69
  end
@@ -142,18 +74,19 @@ class Akismet
142
74
  end
143
75
  end
144
76
 
145
- def initialize(command, attributes, request = nil) # :nodoc:
77
+ def initialize(command, attributes, request = nil)
146
78
  @command = command
147
79
  @attributes = attributes
148
80
  @request = request
149
81
  end
150
82
 
151
- def call # :nodoc:
83
+ def call
152
84
  http = Net::HTTP.new(http_host, 80)
153
85
  http.post(http_path, post_attributes, http_headers).body
154
86
  end
155
87
 
156
88
  private
89
+ # TODO: Extract more relevant HTTP headers.
157
90
  def attributes
158
91
  @attributes[:blog] ||= @@blog
159
92
 
data/test/akismet_test.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'test/unit'
2
2
  require File.expand_path("../../lib/akismet.rb", __FILE__)
3
3
 
4
+ # TODO: Test with an ActionDispatch::TestRequest object.
4
5
  class AkismetTest < Test::Unit::TestCase
5
6
  def setup
6
7
  Akismet.host = 'api.antispam.typepad.com'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-akismet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 63
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 1
10
- version: 0.9.1
9
+ - 2
10
+ version: 0.9.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Julien Portalier