Sha256: d4b38ac758fe101d7c808807aaa36fd7e1e97a7315346b2280a5859f099b2ca0
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true # @api private # @since 0.2.0 module Qonfig::DataSet::ClassBuilder class << self # @param hash [Hash] # @return [Class<Qonfig::DataSet>] # # @see Qonfig::DataSet # # @api private # @since 0.2.0 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 # @option base_klass [Class<Qonfig::DataSet>] # @option child_klass [Class<Qonfig::DataSet>] # @return [void] # # @api private # @since 0.19.0 def inherit(base_klass:, child_klass:) child_klass.definition_commands.concat(base_klass.definition_commands) child_klass.instance_commands.concat(base_klass.instance_commands, &:inheritable?) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
qonfig-0.19.1 | lib/qonfig/data_set/class_builder.rb |
qonfig-0.19.0 | lib/qonfig/data_set/class_builder.rb |