Skip to content

Commit ecd7281

Browse files
committed
move asset importer into project_importer
1 parent efb7216 commit ecd7281

2 files changed

Lines changed: 13 additions & 40 deletions

File tree

lib/project_importer.rb

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ def import!
2323
delete_components
2424
create_components
2525
create_scratch_component
26-
create_scratch_assets
2726
delete_removed_media
2827
attach_media_if_needed
2928

@@ -68,20 +67,23 @@ def create_scratch_component
6867
component = components[0]
6968
return unless component&.fetch(:extension, nil)&.casecmp?('sb3')
7069

71-
parsed_content = Sb3Parser.new(component: component).parse.fetch(:scratch_component).fetch(:content)
72-
raise ImportError, 'Scratch project content could not be parsed' if parsed_content.blank?
70+
parsed_content = Sb3Parser.new(component: component).parse
71+
project_content = parsed_content.dig(:scratch_component, :content)
72+
assets = parsed_content.dig(:assets) || []
7373

74-
project.scratch_component = ScratchComponent.new(content: parsed_content)
75-
end
74+
raise ImportError, 'Scratch project content could not be parsed' if project_content.blank?
7675

77-
def create_scratch_assets
78-
return unless project.scratch_project?
76+
project.scratch_component = ScratchComponent.new(content: project_content)
77+
project.scratch_assets = assets.map { create_scratch_asset(it) }
78+
end
7979

80-
component = components[0]
81-
return unless component&.fetch(:extension, nil)&.casecmp?('sb3')
80+
def create_scratch_asset(asset)
81+
filename = asset.dig(:filename)
82+
io = asset.dig(:io)
8283

83-
parsed_assets = Sb3Parser.new(component: component).parse.fetch(:assets)
84-
ScratchSb3AssetImporter.import_all(parsed_assets)
84+
asset = ScratchAsset.new(filename:, uploaded_user_id: nil)
85+
asset.file.attach(io:, filename:)
86+
asset
8587
end
8688

8789
def delete_removed_media

lib/scratch_sb3_asset_importer.rb

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)