Module: Contrast::Components

Defined in:
lib/contrast/components/interface.rb,
lib/contrast/components/agent.rb,
lib/contrast/components/scope.rb,
lib/contrast/components/assess.rb,
lib/contrast/components/config.rb,
lib/contrast/components/logger.rb,
lib/contrast/components/protect.rb,
lib/contrast/components/sampling.rb,
lib/contrast/components/settings.rb,
lib/contrast/components/heap_dump.rb,
lib/contrast/components/inventory.rb,
lib/contrast/components/app_context.rb,
lib/contrast/components/contrast_service.rb

Overview

This is the base module for our components classes. It is intended to facilitate the translation of the Common Configuration settings to usable Ruby methods. Any class under this namespace should be required here, providing a single point of require for this functionality.

Defined Under Namespace

Modules: Agent, AppContext, Assess, ComponentBase, ComponentReceiverClassInterface, Config, ContrastService, HeapDump, Interface, Inventory, Logger, Protect, Sampling, Scope, Settings Classes: ComponentDelegator

Class Method Summary collapse

Class Method Details

.component_const_name(mod_name) ⇒ Object



84
85
86
87
88
89
90
91
# File 'lib/contrast/components/interface.rb', line 84

def self.component_const_name mod_name
  mod_name = mod_name.split('::').last
  @cache ||= {}
  @cache[mod_name] ||= mod_name. # CamelCaseName
      split(/(?=[A-Z])/)&.          # ['Camel', 'Case', 'Name']
      map(&:upcase)&.               # ['CAMEL', 'CASE', 'NAME']
      join('_')                     # 'CAMEL_CASE_NAME'
end