Sha256: 3782f01f7f65ea4ec572a08c523ba1bb05036fbe02ad77b20cb313af696614d9

Contents?: true

Size: 493 Bytes

Versions: 6

Compression:

Stored size: 493 Bytes

Contents

# encoding: UTF-8
module MarkMapper
  module Plugins
    include ActiveSupport::DescendantsTracker

    def plugins
      @plugins ||= []
    end

    def plugin(mod)
      raise ArgumentError,  "Plugins must extend ActiveSupport::Concern" unless ActiveSupport::Concern === mod
      include mod
      direct_descendants.each {|model| model.send(:include, mod) }
      plugins << mod
    end

    def included(base = nil)
      direct_descendants << base if base
      super
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mark_mapper-0.0.6 lib/mark_mapper/plugins.rb
mark_mapper-0.0.5 lib/mark_mapper/plugins.rb
mark_mapper-0.0.4 lib/mark_mapper/plugins.rb
mark_mapper-0.0.3 lib/mark_mapper/plugins.rb
mark_mapper-0.0.2 lib/mark_mapper/plugins.rb
mark_mapper-0.0.1 lib/mark_mapper/plugins.rb