few more modifications based on comments
This commit is contained in:
parent
e2c95c07a4
commit
771f735109
|
@ -20,6 +20,10 @@ module Gitlab
|
||||||
"project.bundle"
|
"project.bundle"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def config_file
|
||||||
|
'lib/gitlab/import_export/import_export.yml'
|
||||||
|
end
|
||||||
|
|
||||||
def version_filename
|
def version_filename
|
||||||
'VERSION'
|
'VERSION'
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,17 +2,18 @@ module Gitlab
|
||||||
module ImportExport
|
module ImportExport
|
||||||
class ImportExportReader
|
class ImportExportReader
|
||||||
|
|
||||||
def initialize(config: 'lib/gitlab/import_export/import_export.yml', shared:)
|
def initialize(shared:)
|
||||||
|
config = ImportExport.config_file
|
||||||
@shared = shared
|
@shared = shared
|
||||||
config_hash = YAML.load_file(config).deep_symbolize_keys
|
config_hash = YAML.load_file(config).deep_symbolize_keys
|
||||||
@tree = config_hash[:project_tree]
|
@tree = config_hash[:project_tree]
|
||||||
@attributes_parser = Gitlab::ImportExport::AttributesFinder.new(included_attributes: config_hash[:included_attributes],
|
@attributes_finder = Gitlab::ImportExport::AttributesFinder.new(included_attributes: config_hash[:included_attributes],
|
||||||
excluded_attributes: config_hash[:excluded_attributes],
|
excluded_attributes: config_hash[:excluded_attributes],
|
||||||
methods: config_hash[:methods])
|
methods: config_hash[:methods])
|
||||||
end
|
end
|
||||||
|
|
||||||
def project_tree
|
def project_tree
|
||||||
@attributes_parser.find_included(:project).merge(include: build_hash(@tree))
|
@attributes_finder.find_included(:project).merge(include: build_hash(@tree))
|
||||||
rescue => e
|
rescue => e
|
||||||
@shared.error(e.message)
|
@shared.error(e.message)
|
||||||
false
|
false
|
||||||
|
@ -25,7 +26,7 @@ module Gitlab
|
||||||
if model_objects.is_a?(Hash)
|
if model_objects.is_a?(Hash)
|
||||||
build_json_config_hash(model_objects)
|
build_json_config_hash(model_objects)
|
||||||
else
|
else
|
||||||
@attributes_parser.find(model_objects)
|
@attributes_finder.find(model_objects)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -36,7 +37,7 @@ module Gitlab
|
||||||
model_object_hash.values.flatten.each do |model_object|
|
model_object_hash.values.flatten.each do |model_object|
|
||||||
current_key = model_object_hash.keys.first
|
current_key = model_object_hash.keys.first
|
||||||
|
|
||||||
@attributes_parser.parse(current_key) { |hash| @json_config_hash[current_key] ||= hash }
|
@attributes_finder.parse(current_key) { |hash| @json_config_hash[current_key] ||= hash }
|
||||||
|
|
||||||
handle_model_object(current_key, model_object)
|
handle_model_object(current_key, model_object)
|
||||||
process_sub_model(current_key, model_object) if model_object.is_a?(Hash)
|
process_sub_model(current_key, model_object) if model_object.is_a?(Hash)
|
||||||
|
@ -66,14 +67,14 @@ module Gitlab
|
||||||
def create_model_value(current_key, value)
|
def create_model_value(current_key, value)
|
||||||
parsed_hash = { include: value }
|
parsed_hash = { include: value }
|
||||||
|
|
||||||
@attributes_parser.parse(value) do |hash|
|
@attributes_finder.parse(value) do |hash|
|
||||||
parsed_hash = { include: hash_or_merge(value, hash) }
|
parsed_hash = { include: hash_or_merge(value, hash) }
|
||||||
end
|
end
|
||||||
@json_config_hash[current_key] = parsed_hash
|
@json_config_hash[current_key] = parsed_hash
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_model_value(current_key, value)
|
def add_model_value(current_key, value)
|
||||||
@attributes_parser.parse(value) { |hash| value = { value => hash } }
|
@attributes_finder.parse(value) { |hash| value = { value => hash } }
|
||||||
old_values = @json_config_hash[current_key][:include]
|
old_values = @json_config_hash[current_key][:include]
|
||||||
@json_config_hash[current_key][:include] = ([old_values] + [value]).compact.flatten
|
@json_config_hash[current_key][:include] = ([old_values] + [value]).compact.flatten
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue