Module: Lich::Common::SettingsTransformer

Defined in:
documented/common/settings_transformer.rb

Class Method Summary collapse

Class Method Details

.transform(original_settings, config, data_provider) ⇒ OpenStruct

Transforms the original settings based on the provided configuration and data provider.

Examples:

Transform settings

config = Lich::DragonRealms::SettingsConfig::TRANSFORM_CONFIG
result = SettingsTransformer.transform(settings_hash, config, data_provider)

Parameters:

  • original_settings (Hash)

    the original settings to transform

  • config (Hash)

    the configuration hash containing transformation rules

  • data_provider (Proc)

    a callable that provides additional data needed for transformation

Returns:

  • (OpenStruct)

    the transformed settings



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'documented/common/settings_transformer.rb', line 35

def self.transform(original_settings, config, data_provider)
  settings = OpenStruct.new(original_settings)

  apply_defaults(settings, config, data_provider)
  enrich_spells(settings, config, data_provider)
  compose_lists(settings, config, data_provider)
  apply_uservars_fallback(settings, config)
  apply_hometown_lookups(settings, config)
  enforce_denylists(settings, config)
  apply_legacy_migrations(settings, config)

  settings
rescue => e
  echo "*** ERROR TRANSFORMING SETTINGS ***"
  echo "*** Commonly this is due to malformed config in your yaml file ***"
  echo e.message
  e.backtrace.each { |msg| echo msg }
  OpenStruct.new
end