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'
Instance Method Summary
collapse
Constructor Details
#initialize(portable) ⇒ BaseConfig
Returns a new instance of BaseConfig.
11
12
13
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 11
def initialize(portable)
@portable = portable
end
|
Instance Method Details
#batchable_relation?(relation) ⇒ Boolean
40
41
42
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 40
def batchable_relation?(relation)
batchable_relations.include?(relation)
end
|
#batchable_relations ⇒ Object
35
36
37
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 35
def batchable_relations
portable_relations.select { |relation| portable_class.reflect_on_association(relation)&.collection? }
end
|
#export_path ⇒ Object
27
28
29
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 27
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
52
53
54
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 52
def file_relation?(relation)
file_relations.include?(relation)
end
|
#portable_relations ⇒ Object
31
32
33
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 31
def portable_relations
tree_relations + file_relations + self_relation - skipped_relations
end
|
#portable_relations_tree ⇒ Object
62
63
64
65
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 62
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
15
16
17
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 15
def portable_tree
attributes_finder.find_root(portable_class_sym)
end
|
#relation_excluded_keys(relation) ⇒ Object
23
24
25
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 23
def relation_excluded_keys(relation)
attributes_finder.find_excluded_keys(relation)
end
|
#self_relation?(relation) ⇒ Boolean
44
45
46
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 44
def self_relation?(relation)
relation == SELF_RELATION
end
|
#top_relation_tree(relation) ⇒ Object
19
20
21
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 19
def top_relation_tree(relation)
portable_relations_tree[relation.to_s]
end
|
#tree_relation?(relation) ⇒ Boolean
48
49
50
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 48
def tree_relation?(relation)
tree_relations.include?(relation)
end
|
#tree_relation_definition_for(relation) ⇒ Object
56
57
58
59
60
|
# File 'app/models/bulk_imports/file_transfer/base_config.rb', line 56
def tree_relation_definition_for(relation)
return unless tree_relation?(relation)
portable_tree[:include].find { |include| include[relation.to_sym] }
end
|