wrapper.rb 480 Bytes
class AntiSpamPlugin::Wrapper < SimpleDelegator
  include Rakismet::Model

  @@wrappers = []
  cattr_accessor :wrappers

  def self.wrap(object)
    wrapper = wrappers.find { |wrapper| wrapper.wraps?(object) }
    wrapper ? wrapper.new(object) : object
  end

  def self.wraps?(object)
    false
  end

  def self.inherited(child)
    wrappers << child
  end
end

Dir.glob(File.join(AntiSpamPlugin.root_path, 'lib', 'anti_spam_plugin', '*_wrapper.rb')) do |file|
  load(file)
end