Parent

Class/Module Index [+]

Quicksearch

PhusionPassenger::Plugin

Public Class Methods

call_hook(name, *args, &block) click to toggle source
# File lib/phusion_passenger/plugin.rb, line 56
def self.call_hook(name, *args, &block)
        last_result = nil
        if (hooks_list = @@hooks[name])
                hooks_list.each do |callback|
                        last_result = callback.call(*args, &block)
                end
        end
        return last_result
end
load(name, load_once = true) click to toggle source
# File lib/phusion_passenger/plugin.rb, line 33
def self.load(name, load_once = true)
        PLUGIN_DIRS.each do |plugin_dir|
                if plugin_dir =~ /\A~/
                        # File.expand_path uses ENV['HOME'] which we don't want.
                        home = Etc.getpwuid(Process.uid).dir
                        plugin_dir = plugin_dir.sub(/\A~/, home)
                end
                plugin_dir = File.expand_path(plugin_dir)
                Dir["#{plugin_dir}/*/#{name}.rb"].each do |filename|
                        if load_once
                                require(filename)
                        else
                                load(filename)
                        end
                end
        end
end
new(name, *args, &block) click to toggle source
# File lib/phusion_passenger/plugin.rb, line 71
def initialize(name, *args, &block)
        Plugin.load(name)
        classes = @@classes[name]
        if classes
                @instances = classes.map do |klass|
                        klass.new(*args, &block)
                end
        else
                return nil
        end
end
register(name, klass) click to toggle source
# File lib/phusion_passenger/plugin.rb, line 66
def self.register(name, klass)
        classes = (@@classes[name] ||= [])
        classes << klass
end
register_hook(name, &block) click to toggle source
# File lib/phusion_passenger/plugin.rb, line 51
def self.register_hook(name, &block)
        hooks_list = (@@hooks[name] ||= [])
        hooks_list << block
end

Public Instance Methods

call_hook(name, *args, &block) click to toggle source
# File lib/phusion_passenger/plugin.rb, line 83
def call_hook(name, *args, &block)
        last_result = nil
        if @instances
                @instances.each do |instance|
                        if instance.respond_to?(name.to_sym)
                                last_result = instance.__send__(name.to_sym, *args, &block)
                        end
                end
        end
        return last_result
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.