Sha256: 96ca9d922c60cb10f59000f1e2a1572fe326d00ee3c99b4370eb1243203ca86f
Contents?: true
Size: 1.19 KB
Versions: 3
Compression:
Stored size: 1.19 KB
Contents
module Refinery class Plugins < Array def find_by_model(model) model = model.constantize if model.is_a? String detect { |plugin| plugin.activity.any? {|activity| activity.class == model } } end def find_by_name(name) detect { |plugin| plugin.name == name } end alias :[] :find_by_name def find_by_title(title) detect { |plugin| plugin.title == title } end def in_menu self.class.new(reject(&:hide_from_menu)) end def names map(&:name) end def pathnames map(&:pathname).compact.uniq end def titles map(&:title) end class << self def active @active_plugins ||= new end def always_allowed new registered.select(&:always_allow_access?) end def registered @registered_plugins ||= new end def activate(name) active << registered[name] if registered[name] && !active[name] end def deactivate(name) active.delete_if {|p| p.name == name} end def set_active(names) @active_plugins = new names.each do |name| activate(name) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
refinerycms-core-1.0.11 | lib/refinery/plugins.rb |
refinerycms-core-1.0.10 | lib/refinery/plugins.rb |
refinerycms-core-1.0.9 | lib/refinery/plugins.rb |