class Qonfig::Commands::Definition::LoadFromSelf
@api private @since 0.2.0
Attributes
caller_location[R]
@return [String]
@api private @since 0.2.0
format[R]
@return [String, Symbol]
@api private @since 0.15.0
Public Class Methods
new(caller_location, format:)
click to toggle source
@param caller_location
[String] @option format [String, Symbol]
@api private @since 0.2.0
# File lib/qonfig/commands/definition/load_from_self.rb, line 26 def initialize(caller_location, format:) unless format.is_a?(String) || format.is_a?(Symbol) raise Qonfig::ArgumentError, 'Format should be a symbol or a string' end @caller_location = caller_location @format = format.tap { Qonfig::Loaders.resolve(format) } 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.2.0
# File lib/qonfig/commands/definition/load_from_self.rb, line 41 def call(data_set, settings) self_placed_end_data = load_self_placed_end_data self_placed_settings = build_data_set_klass(self_placed_end_data).new.settings settings.__append_settings__(self_placed_settings) end
Private Instance Methods
build_data_set_klass(self_placed_settings)
click to toggle source
@param self_placed_settings [Hash] @return [Class<Qonfig::DataSet>]
@api private @since 0.2.0
# File lib/qonfig/commands/definition/load_from_self.rb, line 74 def build_data_set_klass(self_placed_settings) Qonfig::DataSet::ClassBuilder.build_from_hash(self_placed_settings) end
load_self_placed_end_data()
click to toggle source
@return [Hash]
@raise [Qonfig::SelfDataNotFound] @raise [Qonfig::IncompatibleYAMLStructureError]
@api private @since 0.2.0
# File lib/qonfig/commands/definition/load_from_self.rb, line 57 def load_self_placed_end_data end_data = Qonfig::Loaders::EndData.extract(caller_location) settings_data = Qonfig::Loaders.resolve(format).load(end_data) raise( Qonfig::IncompatibleEndDataStructureError, '__END__-data must be a hash-like structure' ) unless settings_data.is_a?(Hash) settings_data end