Class: GDK::ConfigType::Settings

Inherits:
Object
  • Object
show all
Defined in:
lib/gdk/config_type/settings.rb

Class Method Summary collapse

Class Method Details

.new(parent:, builder:, **_kwargs) ⇒ Object

Raises:

  • (KeyError)


6
7
8
9
10
11
12
13
14
# File 'lib/gdk/config_type/settings.rb', line 6

def self.new(parent:, builder:, **_kwargs)
  raise KeyError unless parent.yaml.is_a?(::Hash)

  yaml = parent.yaml[builder.key] ||= {}

  Class.new(parent.settings_klass).tap do |k|
    k.class_eval(&builder.blk)
  end.new(key: builder.key, parent: parent, yaml: yaml)
end