Class: Jekyll::Contentful::MultiFileDataExporter

Inherits:
BaseDataExporter show all
Defined in:
lib/jekyll-contentful-data-import/multi_file_data_exporter.rb

Overview

Single File Data Exporter Class

Serializes Contentful data into a multiple YAML files

Instance Attribute Summary

Attributes inherited from BaseDataExporter

#config, #entries, #name

Instance Method Summary collapse

Methods inherited from BaseDataExporter

#base_directory, #destination_directory, #initialize, #setup_directory

Constructor Details

This class inherits a constructor from Jekyll::Contentful::BaseDataExporter

Instance Method Details

#destination_file(content_type_directory, entry) ⇒ Object



30
31
32
# File 'lib/jekyll-contentful-data-import/multi_file_data_exporter.rb', line 30

def destination_file(content_type_directory, entry)
  File.join(content_type_directory, "#{entry['sys']['id']}.yaml")
end

#runObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/jekyll-contentful-data-import/multi_file_data_exporter.rb', line 10

def run
  data = ::Jekyll::Contentful::Serializer.new(
    entries,
    config
  ).serialize

  data.each do |content_type, entries|
    content_type_directory = File.join(destination_directory, name, content_type.to_s)
    setup_directory(content_type_directory)

    entries.each do |entry|
      yaml_entry = YAML.dump(entry)

      File.open(destination_file(content_type_directory, entry), 'w') do |file|
        file.write(yaml_entry)
      end
    end
  end
end