class Qonfig::Commands::Definition::LoadFromJSON
@api private @since 0.5.0
Attributes
file_path[R]
@return [String, Pathname]
@api private @since 0.5.0
strict[R]
@return [Boolean]
@api private @sicne 0.5.0
Public Class Methods
new(file_path, strict: true)
click to toggle source
@param file_path
[String, Pathname] @option strict [Boolean]
@api private @since 0.5.0
# File lib/qonfig/commands/definition/load_from_json.rb, line 26 def initialize(file_path, strict: true) @file_path = file_path @strict = strict 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.5.0
# File lib/qonfig/commands/definition/load_from_json.rb, line 37 def call(data_set, settings) json_data = Qonfig::Loaders::JSON.load_file(file_path, fail_on_unexist: strict) raise( Qonfig::IncompatibleJSONStructureError, 'JSON object must be a hash-like structure' ) unless json_data.is_a?(Hash) json_based_settings = build_data_set_klass(json_data).new.settings settings.__append_settings__(json_based_settings) end
Private Instance Methods
build_data_set_klass(json_data)
click to toggle source
@param json_data [Hash] @return [Class<Qonfig::DataSet>]
@api private @since 0.5.0
# File lib/qonfig/commands/definition/load_from_json.rb, line 56 def build_data_set_klass(json_data) Qonfig::DataSet::ClassBuilder.build_from_hash(json_data) end