Module: LazyNames

Defined in:
lib/lazy_names.rb,
lib/lazy_names/config.rb,
lib/lazy_names/logger.rb,
lib/lazy_names/definer.rb,
lib/lazy_names/version.rb,
lib/lazy_names/config_loader.rb,
lib/lazy_names/find_namespace.rb,
lib/lazy_names/config_validator.rb

Defined Under Namespace

Classes: Config, ConfigLoader, ConfigValidator, Definer, FindNamespace, Logger

Constant Summary collapse

VERSION =
'1.0.0'

Class Method Summary collapse

Class Method Details

.load_definitions!(top_level_binding = TOPLEVEL_BINDING) ⇒ Object

rubocop:disable Metrics/AbcSize



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/lazy_names.rb', line 12

def self.load_definitions!(top_level_binding = TOPLEVEL_BINDING) # rubocop:disable Metrics/AbcSize
  basic_config = LazyNames::ConfigLoader
                 .(namespace: LazyNames::FindNamespace.())
  config = LazyNames::Config.new(basic_config.definitions, basic_config.path)
  config.validate!
  LazyNames::Definer.(config, top_level_binding)

  LazyNames::Logger.warn_undefined(config.errors.undefined, config.path)
  LazyNames::Logger.warn_duplicate_definition(config.errors.already_defined, config.path)
  LazyNames::Logger.warn_empty_definitions(config.constants.to_a.empty?, config.path)
end