rakismet 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +10 -0
- data/Gemfile +8 -0
- data/README.md +42 -39
- data/Rakefile +2 -18
- data/lib/rakismet.rb +2 -9
- data/lib/rakismet/version.rb +3 -0
- data/rakismet.gemspec +16 -42
- metadata +11 -6
- data/VERSION.yml +0 -6
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -15,14 +15,16 @@ Getting Started
|
|
15
15
|
===============
|
16
16
|
|
17
17
|
Once you've installed the Rakismet gem and added it to your application's Gemfile,
|
18
|
-
you'll need an API key
|
19
|
-
|
18
|
+
you'll need an API key. Head on over to http://akismet.com/wordpress/ and sign up
|
19
|
+
for a new username.
|
20
20
|
|
21
21
|
Configure the Rakismet key and the URL of your application by setting the following
|
22
22
|
in an initializer or application.rb:
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
```ruby
|
25
|
+
config.rakismet.key = 'your wordpress key'
|
26
|
+
config.rakismet.url = 'http://yourdomain.com/'
|
27
|
+
```
|
26
28
|
|
27
29
|
If you wish to use another Akismet-compatible API provider such as TypePad's
|
28
30
|
antispam service, you'll also need to set `config.rakismet.host` to your service
|
@@ -31,34 +33,28 @@ provider's endpoint.
|
|
31
33
|
If you want to use a proxy to access akismet (i.e your application is behind a firewall),
|
32
34
|
set the proxy_host and proxy_port option.
|
33
35
|
|
34
|
-
|
35
|
-
|
36
|
+
```ruby
|
37
|
+
config.rakismet.proxy_host = 'http://yourdomain.com/'
|
38
|
+
config.rakismet.proxy_port = '8080'
|
39
|
+
```
|
36
40
|
|
37
41
|
Checking For Spam
|
38
42
|
-----------------
|
39
43
|
|
40
44
|
First, introduce Rakismet to your model:
|
41
45
|
|
42
|
-
|
43
|
-
|
44
|
-
|
46
|
+
```ruby
|
47
|
+
class Comment
|
48
|
+
include Rakismet::Model
|
49
|
+
end
|
50
|
+
```
|
45
51
|
|
46
52
|
With Rakismet mixed in to your model, you'll get three methods for interacting with
|
47
53
|
Akismet:
|
48
54
|
|
49
|
-
* `spam?`
|
50
|
-
|
51
|
-
|
52
|
-
false means it's not.
|
53
|
-
|
54
|
-
* `ham!` and
|
55
|
-
* `spam!`
|
56
|
-
|
57
|
-
Akismet works best with your feedback. If you spot a comment that was
|
58
|
-
erroneously marked as spam, `@comment.ham!` will resubmit to Akismet, marked
|
59
|
-
as a false positive. Likewise if they missed a spammy comment,
|
60
|
-
`@comment.spam!` will resubmit marked as spam.
|
61
|
-
|
55
|
+
* `spam?` returns true if it's spam, false if it's not.
|
56
|
+
* `ham!` submits comment that Akismet erroneously marked as spam, marked as a false positive.
|
57
|
+
* `spam!` submits a comment that Akismet didn't think was spam.
|
62
58
|
|
63
59
|
Configuring Your Model
|
64
60
|
----------------------
|
@@ -79,28 +75,33 @@ By default, Rakismet just looks for attributes or methods on your class that
|
|
79
75
|
match these names. You don't have to have accessors that match these exactly,
|
80
76
|
however. If yours differ, just tell Rakismet what to call them:
|
81
77
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
78
|
+
```ruby
|
79
|
+
class Comment
|
80
|
+
include Rakismet::Model
|
81
|
+
attr_accessor :commenter_name, :commenter_email
|
82
|
+
rakismet_attrs :author => :commenter_name, :author_email => :commenter_email
|
83
|
+
end
|
84
|
+
```
|
88
85
|
|
89
86
|
Or you can pass in a proc, to access associations:
|
90
87
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
88
|
+
```ruby
|
89
|
+
class Comment < ActiveRecord::Base
|
90
|
+
include Rakismet::Model
|
91
|
+
belongs_to :author
|
92
|
+
rakismet_attrs :author => proc { author.name },
|
93
|
+
:author_email => proc { author.email }
|
94
|
+
end
|
95
|
+
```
|
97
96
|
|
98
97
|
You can even hard-code specific fields:
|
99
98
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
99
|
+
```ruby
|
100
|
+
class Trackback
|
101
|
+
include Rakismet::Model
|
102
|
+
rakismet_attrs :comment_type => "trackback"
|
103
|
+
end
|
104
|
+
```
|
104
105
|
|
105
106
|
Optional Request Variables
|
106
107
|
--------------------------
|
@@ -126,7 +127,9 @@ If you've decided to handle the request variables yourself, you can add this to
|
|
126
127
|
app initialization to disable the middleware responsible for tracking the request
|
127
128
|
information:
|
128
129
|
|
129
|
-
|
130
|
+
```ruby
|
131
|
+
config.rakismet.use_middleware = false
|
132
|
+
```
|
130
133
|
|
131
134
|
Verifying Responses
|
132
135
|
-------------------
|
data/Rakefile
CHANGED
@@ -1,21 +1,5 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "rakismet"
|
8
|
-
gem.summary = %Q{Akismet and TypePad AntiSpam integration for Rails.}
|
9
|
-
gem.description = %Q{Rakismet is the easiest way to integrate Akismet or TypePad's AntiSpam into your Rails app.}
|
10
|
-
gem.email = "josh@digitalpulp.com"
|
11
|
-
gem.homepage = "http://github.com/joshfrench/rakismet"
|
12
|
-
gem.authors = ["Josh French"]
|
13
|
-
gem.rubyforge_project = %q{rakismet}
|
14
|
-
end
|
15
|
-
Jeweler::GemcutterTasks.new
|
16
|
-
rescue LoadError
|
17
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
18
|
-
end
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
19
3
|
|
20
4
|
require 'rspec/core/rake_task'
|
21
5
|
RSpec::Core::RakeTask.new do |spec|
|
data/lib/rakismet.rb
CHANGED
@@ -28,16 +28,9 @@ module Rakismet
|
|
28
28
|
@request = Request.new
|
29
29
|
end
|
30
30
|
|
31
|
-
def version
|
32
|
-
@version ||= begin
|
33
|
-
version = YAML.load_file(File.join(File.dirname(__FILE__), %w(.. VERSION.yml)))
|
34
|
-
[version[:major], version[:minor], version[:patch]].join('.')
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
31
|
def headers
|
39
32
|
@headers ||= begin
|
40
|
-
user_agent = "Rakismet/#{Rakismet
|
33
|
+
user_agent = "Rakismet/#{Rakismet::VERSION}"
|
41
34
|
user_agent = "Rails/#{Rails.version} | " + user_agent if defined?(Rails)
|
42
35
|
{ 'User-Agent' => user_agent, 'Content-Type' => 'application/x-www-form-urlencoded' }
|
43
36
|
end
|
@@ -62,7 +55,7 @@ module Rakismet
|
|
62
55
|
args.merge!(:blog => Rakismet.url)
|
63
56
|
akismet = URI.parse(call_url(function))
|
64
57
|
_, response = Net::HTTP::Proxy(proxy_host, proxy_port).start(akismet.host) do |http|
|
65
|
-
data = args.map { |k,v| "#{k}=#{CGI.escape(v.
|
58
|
+
data = args.map { |k,v| "#{k}=#{CGI.escape(v.to_str)}" }.join('&')
|
66
59
|
http.post(akismet.path, data, Rakismet.headers)
|
67
60
|
end
|
68
61
|
response
|
data/rakismet.gemspec
CHANGED
@@ -1,50 +1,24 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "rakismet/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version =
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
|
+
s.name = "rakismet"
|
7
|
+
s.version = Rakismet::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
11
9
|
s.authors = ["Josh French"]
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.
|
16
|
-
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
"CHANGELOG",
|
20
|
-
"MIT-LICENSE",
|
21
|
-
"README.md",
|
22
|
-
"Rakefile",
|
23
|
-
"VERSION.yml",
|
24
|
-
"lib/rakismet.rb",
|
25
|
-
"lib/rakismet/middleware.rb",
|
26
|
-
"lib/rakismet/model.rb",
|
27
|
-
"lib/rakismet/railtie.rb",
|
28
|
-
"rakismet.gemspec",
|
29
|
-
"spec/.rspec",
|
30
|
-
"spec/rakismet_middleware_spec.rb",
|
31
|
-
"spec/rakismet_model_spec.rb",
|
32
|
-
"spec/rakismet_spec.rb",
|
33
|
-
"spec/spec_helper.rb"
|
34
|
-
]
|
35
|
-
s.homepage = %q{http://github.com/joshfrench/rakismet}
|
36
|
-
s.require_paths = ["lib"]
|
37
|
-
s.rubyforge_project = %q{rakismet}
|
38
|
-
s.rubygems_version = %q{1.6.2}
|
39
|
-
s.summary = %q{Akismet and TypePad AntiSpam integration for Rails.}
|
10
|
+
s.email = "josh@vitamin-j.com"
|
11
|
+
s.homepage = "http://github.com/joshfrench/rakismet"
|
12
|
+
s.summary = "Akismet and TypePad AntiSpam integration for Rails."
|
13
|
+
s.description = "Rakismet is the easiest way to integrate Akismet or TypePad's AntiSpam into your Rails app."
|
14
|
+
s.date = "2011-08-11"
|
40
15
|
|
41
|
-
|
42
|
-
s.specification_version = 3
|
16
|
+
s.rubyforge_project = "rakismet"
|
43
17
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
s.require_paths = ["lib"]
|
22
|
+
s.extra_rdoc_files = ["README.md"]
|
49
23
|
end
|
50
24
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rakismet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.1.
|
5
|
+
version: 1.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Josh French
|
@@ -10,12 +10,12 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-08-11 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|
17
17
|
description: Rakismet is the easiest way to integrate Akismet or TypePad's AntiSpam into your Rails app.
|
18
|
-
email: josh@
|
18
|
+
email: josh@vitamin-j.com
|
19
19
|
executables: []
|
20
20
|
|
21
21
|
extensions: []
|
@@ -23,15 +23,17 @@ extensions: []
|
|
23
23
|
extra_rdoc_files:
|
24
24
|
- README.md
|
25
25
|
files:
|
26
|
+
- .gitignore
|
26
27
|
- CHANGELOG
|
28
|
+
- Gemfile
|
27
29
|
- MIT-LICENSE
|
28
30
|
- README.md
|
29
31
|
- Rakefile
|
30
|
-
- VERSION.yml
|
31
32
|
- lib/rakismet.rb
|
32
33
|
- lib/rakismet/middleware.rb
|
33
34
|
- lib/rakismet/model.rb
|
34
35
|
- lib/rakismet/railtie.rb
|
36
|
+
- lib/rakismet/version.rb
|
35
37
|
- rakismet.gemspec
|
36
38
|
- spec/.rspec
|
37
39
|
- spec/rakismet_middleware_spec.rb
|
@@ -66,5 +68,8 @@ rubygems_version: 1.6.2
|
|
66
68
|
signing_key:
|
67
69
|
specification_version: 3
|
68
70
|
summary: Akismet and TypePad AntiSpam integration for Rails.
|
69
|
-
test_files:
|
70
|
-
|
71
|
+
test_files:
|
72
|
+
- spec/rakismet_middleware_spec.rb
|
73
|
+
- spec/rakismet_model_spec.rb
|
74
|
+
- spec/rakismet_spec.rb
|
75
|
+
- spec/spec_helper.rb
|