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