Class: BulkImports::FileTransfer::BaseConfig
- Inherits:
-
Object
- Object
- BulkImports::FileTransfer::BaseConfig
show all
- Includes:
- Gitlab::Utils::StrongMemoize
- Defined in:
- app/models/bulk_imports/file_transfer/base_config.rb
Constant Summary
collapse
- UPLOADS_RELATION =
'uploads'
- SELF_RELATION =
'self'
- USER_CONTRIBUTIONS_RELATION =
'user_contributions'
Instance Method Summary
collapse
Constructor Details
#initialize(portable) ⇒ BaseConfig
Returns a new instance of BaseConfig.
12
13
14
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 12
def initialize(portable)
@portable = portable
end
|
Instance Method Details
#batchable_relation?(relation) ⇒ Boolean
45
46
47
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 45
def batchable_relation?(relation)
batchable_relations.include?(relation)
end
|
#batchable_relations ⇒ Object
40
41
42
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 40
def batchable_relations
portable_relations.select { |relation| portable_class.reflect_on_association(relation)&.collection? }
end
|
#export_path ⇒ Object
32
33
34
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 32
def export_path
@export_path ||= Dir.mktmpdir('bulk_imports')
end
|
#export_service_for(relation) ⇒ Object
Returns an export service class for the given relation.
#file_relation?(relation) ⇒ Boolean
57
58
59
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 57
def file_relation?(relation)
file_relations.include?(relation)
end
|
#portable_relations ⇒ Object
36
37
38
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 36
def portable_relations
tree_relations + file_relations + self_relation - skipped_relations
end
|
#portable_relations_tree ⇒ Object
75
76
77
78
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 75
def portable_relations_tree
@portable_relations_tree ||= attributes_finder
.find_relations_tree(portable_class_sym, include_import_only_tree: true).deep_stringify_keys
end
|
#portable_tree ⇒ Object
16
17
18
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 16
def portable_tree
attributes_finder.find_root(portable_class_sym)
end
|
#relation_excluded_keys(relation) ⇒ Object
24
25
26
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 24
def relation_excluded_keys(relation)
attributes_finder.find_excluded_keys(relation)
end
|
#relation_has_user_contributions?(relation) ⇒ Boolean
#relation_included_keys(relation) ⇒ Object
28
29
30
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 28
def relation_included_keys(relation)
attributes_finder.find_included_keys(relation)
end
|
#self_relation?(relation) ⇒ Boolean
49
50
51
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 49
def self_relation?(relation)
relation == SELF_RELATION
end
|
#top_relation_tree(relation) ⇒ Object
20
21
22
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 20
def top_relation_tree(relation)
portable_relations_tree[relation.to_s]
end
|
#tree_relation?(relation) ⇒ Boolean
53
54
55
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 53
def tree_relation?(relation)
tree_relations.include?(relation)
end
|
#tree_relation_definition_for(relation) ⇒ Object
69
70
71
72
73
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 69
def tree_relation_definition_for(relation)
return unless tree_relation?(relation)
portable_tree[:include].find { |include| include[relation.to_sym] }
end
|
#user_contributions_relation?(relation) ⇒ Boolean
65
66
67
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 65
def user_contributions_relation?(relation)
relation == USER_CONTRIBUTIONS_RELATION
end
|