class Qonfig::Commands::Definition::Compose

@api private @since 0.1.0

Attributes

composable_data_set_klass[R]

@return [Qonfig::DataSet]

@api private @since 0.1.0

Public Class Methods

new(composable_data_set_klass) click to toggle source

@param composable_data_set_klass [Qonfig::DataSet]

@raise [Qonfig::ArgumentError]

@api private @since 0.1.0

# File lib/qonfig/commands/definition/compose.rb, line 21
def initialize(composable_data_set_klass)
  unless composable_data_set_klass.is_a?(Class) && composable_data_set_klass < Qonfig::DataSet
    raise(
      Qonfig::ArgumentError,
      'Composed config class should be a subtype of Qonfig::DataSet'
    )
  end

  @composable_data_set_klass = composable_data_set_klass
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/compose.rb, line 38
def call(data_set, settings)
  # NOTE: append new validators
  data_set.class.validators.concat(composable_data_set_klass.validators.dup)

  # NOTE: append new settings
  composite_settings = composable_data_set_klass.new.settings
  settings.__append_settings__(composite_settings)
end