Sha256: 09bded94bd3708da6a37cc504e2b629399f0a8d5e971ea61989e9273f51eca10

Contents?: true

Size: 1.05 KB

Versions: 12

Compression:

Stored size: 1.05 KB

Contents

module Refinery
  class Plugins < Array
  
    def initialize
      @plugins = []
    end
  
    def find_by_title(title)
      self.reject { |plugin| plugin.title != title }.first
    end
  
    def find_by_model(model)
      self.reject { |plugin| plugin.activity.reject {|activity| activity.class != model }.empty? }.first
    end
    
    def find_activity_by_model(model)
      plugin = find_by_model(model)
      plugin.activity.reject {|activity| activity.class != model}.first unless plugin.nil?
    end
    
    def [](title)
      self.find { |plugin| plugin.title == title }
    end

		def self.registered
		  @registered_plugins ||= self.new
		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(titles)
			active.clear
		  titles.each do |title|
		    active << registered[title] if registered[title]
		  end
		end

  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
refinerycms-0.9.4.3 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.4.2 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.4.1 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.4 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.3 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.2.2 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.2.1 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.2 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.1.2 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.1.1 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.1 vendor/plugins/refinery/lib/refinery/plugins.rb
refinerycms-0.9.0 vendor/plugins/refinery/lib/refinery/plugins.rb