class Photish::Plugin::Repository
Public Instance Methods
all_plugins()
click to toggle source
# File lib/photish/plugin/repository.rb, line 20 def all_plugins @all_plugins ||= constants + sub_constants end
plugins_for(type)
click to toggle source
# File lib/photish/plugin/repository.rb, line 16 def plugins_for(type) all_plugins.reject { |m| !m.is_for?(type) } end
reload(config)
click to toggle source
# File lib/photish/plugin/repository.rb, line 7 def reload(config) log.debug "Loading plugins..." load_each_plugin_file(config.site_dir) require_each_explicit_plugin(config.plugins) clear_plugin_cache load_each_plugin_constant end
Private Instance Methods
clear_plugin_cache()
click to toggle source
# File lib/photish/plugin/repository.rb, line 39 def clear_plugin_cache @all_plugins = nil end
constantize(symbol)
click to toggle source
# File lib/photish/plugin/repository.rb, line 69 def constantize(symbol) Kernel.const_get("Photish::Plugin::#{symbol}") end
constants()
click to toggle source
# File lib/photish/plugin/repository.rb, line 49 def constants Photish::Plugin.constants.map { |m| constantize(m) } .reject { |m| ignored_modules.include?(m) } .select { |m| m.respond_to?(:is_for?) } end
ignored_modules()
click to toggle source
# File lib/photish/plugin/repository.rb, line 63 def ignored_modules [Photish::Plugin::Repository, Photish::Plugin::Pluginable, Photish::Plugin::Type] end
load_each_plugin_constant()
click to toggle source
# File lib/photish/plugin/repository.rb, line 33 def load_each_plugin_constant all_plugins.each do |plugin| log.debug "Found plugin #{plugin}" end end
load_each_plugin_file(site_dir)
click to toggle source
# File lib/photish/plugin/repository.rb, line 43 def load_each_plugin_file(site_dir) Dir[File.join(site_dir, '_plugins', '*.rb')].each do |file| load file end end
require_each_explicit_plugin(plugins)
click to toggle source
# File lib/photish/plugin/repository.rb, line 26 def require_each_explicit_plugin(plugins) plugins.each do |plugin| log.debug "Requiring config explicit plugin, #{plugin}" require plugin end end
sub_constants()
click to toggle source
# File lib/photish/plugin/repository.rb, line 55 def sub_constants Photish::Plugin.constants.map { |c| constantize(c) } .reject { |m| ignored_modules.include?(m) } .map { |c| c.constants.map { |d| constantize("#{c.name}::#{d}") } } .flatten .select { |m| m.respond_to?(:is_for?) } end