module Qonfig::DataSet::ClassBuilder

@api private @since 0.2.0

Public Class Methods

build_from_hash(hash) click to toggle source

@param hash [Hash] @return [Class<Qonfig::DataSet>]

@see Qonfig::DataSet

@api private @since 0.2.0

# File lib/qonfig/data_set/class_builder.rb, line 14
def build_from_hash(hash)
  Class.new(Qonfig::DataSet).tap do |data_set_klass|
    hash.each_pair do |key, value|
      if value.is_a?(Hash) && value.any?
        sub_data_set_klass = build_from_hash(value)
        data_set_klass.setting(key) { compose sub_data_set_klass }
      else
        data_set_klass.setting key, value
      end
    end
  end
end