Class: Jekyll::Contentful::DataExporter

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-contentful-data-import/data_exporter.rb

Constant Summary collapse

DATA_FOLDER =
'_data'
CONTENTFUL_FOLDER =
'contentful'
SPACES_FOLDER =
'spaces'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, entries, config = {}) ⇒ DataExporter

Returns a new instance of DataExporter.



12
13
14
15
16
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 12

def initialize(name, entries, config = {})
  @name = name
  @entries = entries
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



10
11
12
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 10

def config
  @config
end

#entriesObject (readonly)

Returns the value of attribute entries.



10
11
12
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 10

def entries
  @entries
end

#nameObject (readonly)

Returns the value of attribute name.



10
11
12
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 10

def name
  @name
end

Instance Method Details

#base_directoryObject



26
27
28
29
30
31
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 26

def base_directory
  directory = File.expand_path(Dir.pwd)
  directory = File.join(directory, config['base_path']) if config.key?('base_path')

  directory
end

#destination_directoryObject



33
34
35
36
37
38
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 33

def destination_directory
  destination_dir = File.join(base_directory, DATA_FOLDER, CONTENTFUL_FOLDER, SPACES_FOLDER)
  destination_dir = File.join(base_directory, DATA_FOLDER, config['destination']) if config.key?('destination')

  destination_dir
end

#destination_fileObject



40
41
42
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 40

def destination_file
  File.join(destination_directory, "#{name}.yaml")
end

#runObject



18
19
20
21
22
23
24
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 18

def run
  setup_directory

  File.open(destination_file, 'w') do |file|
    file.write(::Jekyll::Contentful::Serializer.new(entries, config).to_yaml)
  end
end

#setup_directoryObject



44
45
46
# File 'lib/jekyll-contentful-data-import/data_exporter.rb', line 44

def setup_directory
  FileUtils.mkdir_p destination_directory
end