Commit aae9aa42fe4e2e2f4ff5c1a034b5a285abbf08b2
1 parent
28ff2c57
Exists in
master
and in
28 other branches
anti-spam-plugin-wrapper: ensure to load concrete wrappers
Showing
1 changed file
with
10 additions
and
7 deletions
Show diff stats
plugins/anti_spam/lib/anti_spam_plugin/wrapper.rb
1 | class AntiSpamPlugin::Wrapper < SimpleDelegator | 1 | class AntiSpamPlugin::Wrapper < SimpleDelegator |
2 | include Rakismet::Model | 2 | include Rakismet::Model |
3 | 3 | ||
4 | - @@wrappers = [AntiSpamPlugin::CommentWrapper, AntiSpamPlugin::SuggestArticleWrapper] | 4 | + @@wrappers = [] |
5 | + cattr_accessor :wrappers | ||
5 | 6 | ||
6 | def self.wrap(object) | 7 | def self.wrap(object) |
7 | - wrapper = @@wrappers.find { |wrapper| wrapper.wraps?(object) } | 8 | + wrapper = wrappers.find { |wrapper| wrapper.wraps?(object) } |
8 | wrapper ? wrapper.new(object) : object | 9 | wrapper ? wrapper.new(object) : object |
9 | end | 10 | end |
10 | 11 | ||
@@ -12,9 +13,11 @@ class AntiSpamPlugin::Wrapper < SimpleDelegator | @@ -12,9 +13,11 @@ class AntiSpamPlugin::Wrapper < SimpleDelegator | ||
12 | false | 13 | false |
13 | end | 14 | end |
14 | 15 | ||
15 | -# FIXME You can't take for granted that the wrappers will be loaded and, therefore, | ||
16 | -# included in the @@wrappers variable. | ||
17 | -# def self.inherited(child) | ||
18 | -# @@wrappers << child | ||
19 | -# end | 16 | + def self.inherited(child) |
17 | + wrappers << child | ||
18 | + end | ||
19 | +end | ||
20 | + | ||
21 | +Dir.glob(File.join(AntiSpamPlugin.root_path, 'lib', 'anti_spam_plugin', '*_wrapper.rb')) do |file| | ||
22 | + load(file) | ||
20 | end | 23 | end |