Sha256: fee185d8340b12cadda69f3c1621e395b8dbf6574f8c3fe79bdf69146d316fb4

Contents?: true

Size: 1.3 KB

Versions: 15

Compression:

Stored size: 1.3 KB

Contents

module Refinery
  class Plugins < Array

    def initialize
      @plugins = []
    end

    def find_by_name(name)
      self.detect { |plugin| plugin.name == name }
    end

    def find_by_title(title)
      self.detect { |plugin| plugin.title == title }
    end

    def find_by_model(model)
      model = model.constantize if model.is_a? String
      self.detect { |plugin| not plugin.activity.detect {|activity| activity.class == model }.nil? }
    end

    def find_activity_by_model(model)
      plugin = find_by_model(model)
      plugin.activity.detect {|activity| activity.class == model} unless plugin.nil?
    end

    def [](name)
      self.find_by_name(name)
    end

    def self.registered
      @registered_plugins ||= self.new
    end

    def pathnames
      self.collect { |p| p.pathname }.compact
    end

    def names
      self.collect { |p| p.name }
    end

    def titles
      self.collect { |p| p.title }
    end

    def in_menu
      self.reject{ |p| p.hide_from_menu }
    end

    def self.active
      @active_plugins ||= self.new
    end

    def self.always_allowed
      registered.reject { |p| !p.always_allow_access }
    end

    def self.set_active(names)
      active.clear
      names.each do |name|
        active << registered[name] if registered[name]
      end
    end

  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
refinerycms-0.9.7.15 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.14 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.13 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.11 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.10 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.9 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.8 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.7 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.6 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.5 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.4 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.3 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.2 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7.1 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.7 vendor/plugins/refinery/lib/refinery/plugins.rb