module PlcPlugins
Private Instance Methods
exec_plugins()
click to toggle source
# File lib/plc/emulator/plc_plugins.rb, line 62 def exec_plugins send_message_plugins "exec", self end
init_plugins()
click to toggle source
# File lib/plc/emulator/plc_plugins.rb, line 58 def init_plugins send_message_plugins "init", self end
load_plugins()
click to toggle source
# File lib/plc/emulator/plc_plugins.rb, line 43 def load_plugins return unless plugins.empty? seen = {} Dir.glob("plugins/*_plugin.rb").each do |plugin_path| name = File.basename plugin_path, "_plugin.rb" next if seen[name] seen[name] = true require plugin_path.gsub(/\.rb$/, "") plugins << name end init_plugins end
plugins()
click to toggle source
def self.included(klass)
load_plugins
end
# File lib/plc/emulator/plc_plugins.rb, line 39 def plugins @plugins ||= [] end
send_message_plugins(method, arg)
click to toggle source
# File lib/plc/emulator/plc_plugins.rb, line 66 def send_message_plugins method, arg plugins.each do |plugin| msg = "plugin_#{plugin}_#{method}" unless arg send msg if Object.respond_to?(msg, true) else send msg, arg if Object.respond_to?(msg, true) end end end