Class: Occams::Seeds::File::Exporter

Inherits:
Exporter
  • Object
show all
Defined in:
lib/occams/seeds/file/exporter.rb

Instance Attribute Summary

Attributes inherited from Exporter

#from, #path, #site, #to

Instance Method Summary collapse

Constructor Details

#initialize(from, to = from) ⇒ Exporter

Returns a new instance of Exporter.



5
6
7
8
# File 'lib/occams/seeds/file/exporter.rb', line 5

def initialize(from, to = from)
  super
  self.path = ::File.join(Occams.config.seeds_path, to, 'files/')
end

Instance Method Details

#export!Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/occams/seeds/file/exporter.rb', line 10

def export!
  prepare_folder!(path)

  site.files.each do |file|
    file_path = File.join(path, file.attachment.filename.to_s)

    # writing attributes
    ::File.write(::File.join(path, "_#{file.attachment.filename}.yml"), {
      'label' => file.label,
      'description' => file.description,
      'categories' => file.categories.map(&:label)
    }.to_yaml)

    # writing content
    begin
      ::File.binwrite(::File.join(path, ::File.basename(file_path)), file.attachment.download)
      Occams.logger.info("[CMS SEEDS] Exported File \t #{file.attachment.filename}")
    rescue Errno::ENOENT, OpenURI::HTTPError
      Occams.logger.warn("[CMS SEEDS] No physical File \t #{file.attachment.filename}")
    end
  end
end