Sha256: 73b3ff9f6172368747a6a73b9c8fe5749dfaf1cb29c11400e73b08313602bc0a
Contents?: true
Size: 1.16 KB
Versions: 2
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true # @api private # @since 0.5.0 class Qonfig::Commands::LoadFromJSON < Qonfig::Commands::Base # @return [String] # # @api private # @since 0.5.0 attr_reader :file_path # @return [Boolean] # # @api private # @sicne 0.5.0 attr_reader :strict # @param file_path [String] # @option strict [Boolean] # # @api private # @since 0.5.0 def initialize(file_path, strict: true) @file_path = file_path @strict = strict end # @param settings [Qonfig::Settings] # @return [void] # # @api private # @since 0.5.0 def call(settings) json_data = Qonfig::Loaders::JSON.load_file(file_path, fail_on_unexist: strict) raise( Qonfig::IncompatibleJSONStructureError, 'JSON object should have a hash-like structure' ) unless json_data.is_a?(Hash) json_based_settings = build_data_set_class(json_data).new.settings settings.__append_settings__(json_based_settings) end private # @param json_data [Hash] # @return [Class<Qonfig::DataSet>] # # @api private # @since 0.5.0 def build_data_set_class(json_data) Qonfig::DataSet::ClassBuilder.build_from_hash(json_data) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
qonfig-0.12.0 | lib/qonfig/commands/load_from_json.rb |
qonfig-0.11.0 | lib/qonfig/commands/load_from_json.rb |