Module: NewRelic::Control::ClassMethods
- Included in:
- NewRelic::Control
- Defined in:
- lib/new_relic/control/class_methods.rb
Overview
class-level methods for lazy creation of NewRelic::Control and NewRelic::LocalEnvironment instances.
Instance Method Summary collapse
-
#instance(create = true) ⇒ Object
Access the Control singleton, lazy initialized.
-
#load_framework_class(framework) ⇒ Object
Loads the specified framework class from the NewRelic::Control::Frameworks module.
-
#load_test_framework ⇒ Object
nb this does not ‘load test’ the framework, it loads the ‘test framework’.
-
#local_env ⇒ Object
Access the LocalEnvironment singleton, lazy initialized.
-
#new_instance ⇒ Object
Create the concrete class for environment specific behavior.
-
#newrelic_root ⇒ Object
The root directory for the plugin or gem.
-
#reset ⇒ Object
clear out memoized Control and LocalEnv instances.
Instance Method Details
#instance(create = true) ⇒ Object
Access the Control singleton, lazy initialized. Default will instantiate a new instance or pass false to defer
12 13 14 |
# File 'lib/new_relic/control/class_methods.rb', line 12 def instance(create = true) @instance ||= create && new_instance end |
#load_framework_class(framework) ⇒ Object
Loads the specified framework class from the NewRelic::Control::Frameworks module
45 46 47 48 49 50 51 52 53 |
# File 'lib/new_relic/control/class_methods.rb', line 45 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(NewRelic::LanguageSupport.camelize(framework.to_s)) end |
#load_test_framework ⇒ Object
nb this does not ‘load test’ the framework, it loads the ‘test framework’
37 38 39 40 41 |
# File 'lib/new_relic/control/class_methods.rb', line 37 def load_test_framework config = File.(File.join('..', '..', '..', '..', 'test', 'config', 'newrelic.yml'), __FILE__) require 'config/test_control' NewRelic::Control::Frameworks::Test.new(local_env, config) end |
#local_env ⇒ Object
Access the LocalEnvironment singleton, lazy initialized
23 24 25 |
# File 'lib/new_relic/control/class_methods.rb', line 23 def local_env @local_env ||= NewRelic::LocalEnvironment.new end |
#new_instance ⇒ Object
Create the concrete class for environment specific behavior
28 29 30 31 32 33 34 |
# File 'lib/new_relic/control/class_methods.rb', line 28 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 ⇒ Object
The root directory for the plugin or gem
56 57 58 |
# File 'lib/new_relic/control/class_methods.rb', line 56 def newrelic_root File.(File.join('..', '..', '..', '..'), __FILE__) end |
#reset ⇒ Object
clear out memoized Control and LocalEnv instances
17 18 19 20 |
# File 'lib/new_relic/control/class_methods.rb', line 17 def reset @instance = nil @local_env = nil end |