class Qonfig::Commands::Definition::AddNestedOption
@api private @since 0.1.0
Attributes
key[R]
@return [Symbol, String]
@api private @since 0.1.0
nested_data_set_klass[R]
@return [Class<Qonfig::DataSet>]
@api private @since 0.2.0
Public Class Methods
new(key, nested_definitions)
click to toggle source
@param key [Symbol, String] @param nested_definitions [Proc]
@raise [Qonfig::ArgumentError] @raise [Qonfig::CoreMethodIntersectionError]
@api private @since 0.1.0
# File lib/qonfig/commands/definition/add_nested_option.rb, line 29 def initialize(key, nested_definitions) Qonfig::Settings::KeyGuard.prevent_incomparabilities!(key) @key = key @nested_data_set_klass = Class.new(Qonfig::DataSet).tap do |data_set| data_set.instance_eval(&nested_definitions) end end
Public Instance Methods
call(data_set, settings)
click to toggle source
@param data_set [Qonfig::DataSet] @param settings [Qonfig::Settings] @return [void]
@api private @since 0.1.0
# File lib/qonfig/commands/definition/add_nested_option.rb, line 44 def call(data_set, settings) nested_settings = nested_data_set_klass.new.settings nested_settings.__mutation_callbacks__.add(settings.__mutation_callbacks__) settings.__define_setting__(key, nested_settings) end