Sha256: 011646c671c8cd4e0e68203fa3e26f3c3dfe0c5f23387814aabf0c8d19d7ba4d

Contents?: true

Size: 691 Bytes

Versions: 14

Compression:

Stored size: 691 Bytes

Contents

module Praxis

  module PluginConcern
    extend ::ActiveSupport::Concern

    included do
      @setup = false
    end

    module ClassMethods
      PLUGIN_CLASSES = [
        :Request,
        :Controller,
        :ResourceDefinition,
        :ActionDefinition,
        :Response,
        :ApiGeneralInfo
      ]

      def setup!
        return if @setup

        PLUGIN_CLASSES.each do |name|
          if self.constants.include?(name)
            inject!(name)
          end
        end

        @setup = true
      end

      def inject!(name)
        plugin = self.const_get(name)
        praxis = Praxis.const_get(name)

        praxis.include(plugin)
      end

    end
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
praxis-2.0.pre.9 lib/praxis/plugin_concern.rb
praxis-2.0.pre.8 lib/praxis/plugin_concern.rb
praxis-2.0.pre.7 lib/praxis/plugin_concern.rb
praxis-2.0.pre.6 lib/praxis/plugin_concern.rb
praxis-2.0.pre.5 lib/praxis/plugin_concern.rb
praxis-2.0.pre.4 lib/praxis/plugin_concern.rb
praxis-2.0.pre.3 lib/praxis/plugin_concern.rb
praxis-2.0.pre.2 lib/praxis/plugin_concern.rb
praxis-2.0.pre.1 lib/praxis/plugin_concern.rb
praxis-0.22.pre.2 lib/praxis/plugin_concern.rb
praxis-0.22.pre.1 lib/praxis/plugin_concern.rb
praxis-0.21 lib/praxis/plugin_concern.rb
praxis-0.20.1 lib/praxis/plugin_concern.rb
praxis-0.20.0 lib/praxis/plugin_concern.rb