module NewRelic::Control::ClassMethods
class-level methods for lazy creation of NewRelic::Control and NewRelic::LocalEnvironment instances.
Public Instance Methods
instance(create=true)
click to toggle source
Access the Control singleton, lazy initialized. Default will instantiate a new instance or pass false to defer
# File lib/new_relic/control/class_methods.rb, line 11 def instance(create=true) @instance ||= create && new_instance end
load_framework_class(framework)
click to toggle source
Loads the specified framework class from the NewRelic::Control::Frameworks module
# File lib/new_relic/control/class_methods.rb, line 44 def load_framework_class(framework) begin require "new_relic/control/frameworks/#{framework}" rescue LoadError # maybe it is already loaded by some external system # i.e. rpm_contrib or user extensions? end NewRelic::Control::Frameworks.const_get(framework.to_s.capitalize) end
load_test_framework()
click to toggle source
nb this does not 'load test' the framework, it loads the 'test framework'
# File lib/new_relic/control/class_methods.rb, line 36 def load_test_framework config = File.expand_path(File.join('..','..','..','..', "test","config","newrelic.yml"), __FILE__) require "config/test_control" NewRelic::Control::Frameworks::Test.new(local_env, config) end
local_env()
click to toggle source
Access the LocalEnvironment singleton, lazy initialized
# File lib/new_relic/control/class_methods.rb, line 22 def local_env @local_env ||= NewRelic::LocalEnvironment.new end
new_instance()
click to toggle source
Create the concrete class for environment specific behavior
# File lib/new_relic/control/class_methods.rb, line 27 def new_instance if Agent.config[:framework] == :test load_test_framework else load_framework_class(Agent.config[:framework]).new(local_env) end end
newrelic_root()
click to toggle source
The root directory for the plugin or gem
# File lib/new_relic/control/class_methods.rb, line 55 def newrelic_root File.expand_path(File.join("..", "..", "..", ".."), __FILE__) end
reset()
click to toggle source
clear out memoized Control and LocalEnv instances
# File lib/new_relic/control/class_methods.rb, line 16 def reset @instance = nil @local_env = nil end