class Rollbar::Plugin
Represents a plugin in the gem. Every plugin can have multiple dependencies and multiple execution blocks. On Rollbar
initialization, all plugins will be saved in memory and those that satisfy the dependencies will be loaded
Attributes
callables[R]
dependencies[R]
loaded[RW]
name[R]
on_demand[RW]
revert_callables[R]
Public Class Methods
new(name)
click to toggle source
# File lib/rollbar/plugin.rb, line 12 def initialize(name) @name = name @dependencies = [] @callables = [] @revert_callables = [] @loaded = false @on_demand = false end
Public Instance Methods
configuration()
click to toggle source
# File lib/rollbar/plugin.rb, line 25 def configuration Rollbar.configuration end
execute(&block)
click to toggle source
# File lib/rollbar/plugin.rb, line 73 def execute(&block) callables << block end
execute!() { || ... }
click to toggle source
# File lib/rollbar/plugin.rb, line 77 def execute! yield if load? end
load!()
click to toggle source
# File lib/rollbar/plugin.rb, line 49 def load! return unless load? begin callables.each(&:call) rescue StandardError => e log_loading_error(e) ensure self.loaded = true end end
load_on_demand()
click to toggle source
# File lib/rollbar/plugin.rb, line 21 def load_on_demand @on_demand = true end
load_scoped!(transparent = false) { || ... }
click to toggle source
# File lib/rollbar/plugin.rb, line 29 def load_scoped!(transparent = false) if transparent load! if load? result = yield unload! if loaded else return unless load? load! result = yield unload! end result end
revert(&block)
click to toggle source
# File lib/rollbar/plugin.rb, line 81 def revert(&block) revert_callables << block end
unload!()
click to toggle source
# File lib/rollbar/plugin.rb, line 61 def unload! return unless loaded begin revert_callables.each(&:call) rescue StandardError => e log_unloading_error(e) ensure self.loaded = false end end
Private Instance Methods
dependencies_satisfy?()
click to toggle source
# File lib/rollbar/plugin.rb, line 110 def dependencies_satisfy? dependencies.all?(&:call) end
dependency(&block)
click to toggle source
# File lib/rollbar/plugin.rb, line 87 def dependency(&block) dependencies << block end
load?()
click to toggle source
# File lib/rollbar/plugin.rb, line 102 def load? !loaded && dependencies_satisfy? rescue StandardError => e log_loading_error(e) false end
log_loading_error(error)
click to toggle source
# File lib/rollbar/plugin.rb, line 114 def log_loading_error(error) Rollbar.log_error( "Error trying to load plugin '#{name}': #{error.class}, #{error.message}" ) end
log_unloading_error(error)
click to toggle source
# File lib/rollbar/plugin.rb, line 120 def log_unloading_error(error) Rollbar.log_error( "Error trying to unload plugin '#{name}': #{error.class}, #{error.message}" ) end
require_dependency(file)
click to toggle source
# File lib/rollbar/plugin.rb, line 91 def require_dependency(file) dependency do begin require file true rescue LoadError false end end end