Sha256: cd5ce1c5e4184af102ab2cf44783c02302cd17f074df314adecb5a84be81ef3a
Contents?: true
Size: 1.87 KB
Versions: 2
Compression:
Stored size: 1.87 KB
Contents
# frozen_string_literal: true require "kanal" require_relative "./bridges/telegram_bridge" module Kanal module Plugins module BatteriesBridge # # Plugin registers all needed hooks to process # class BatteriesBridgePlugin < Kanal::Core::Plugins::Plugin include Kanal::Core::Logging include Bridges def initialize super @bridges = [] @fail_gracefully = true end def name :batteries_bridge end # # @param [Bridge] bridge <description> # # @return [BatteriesBridgePlugin] <description> # def add_bridge(bridge) raise "bridge should be instance of a Bridge class" unless bridge.is_a? Bridge return if @bridges.include? bridge bridge.fail_gracefully = @fail_gracefully @bridges << bridge self end # # When bridge converter raises an error, raise it instead of swallowing (logs will be written in both cases) # # @return [void] <description> # def fail_loud @fail_gracefully = false end # # <Description> # # @return [BatteriesBridgePlugin] <description> # def add_telegram add_bridge TelegramBridge.new self end # # @param [Kanal::Core::Core] core <description> # # @return [void] <description> # def setup(core) unless core.plugin_registered? :batteries raise "[Kanal::Plugins::BatteriesBridge::BatteriesBridgePlugin]: cannot register plugin because :batteries plugin is not (maybe yet) registered in the core. It is required" end @bridges.each do |b| b.send("internal_setup", core.hooks) end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems