class ContentfulMiddleman::ImportTask
Public Class Methods
new(space_name, content_type_names, content_type_mappers, contentful)
click to toggle source
# File lib/contentful_middleman/import_task.rb, line 3 def initialize(space_name, content_type_names, content_type_mappers, contentful) @space_name = space_name @content_type_names = content_type_names @content_type_mappers = content_type_mappers @changed_local_data = false @contentful = contentful @use_camel_case = @contentful.options.client_options.fetch(:use_camel_case, false) end
Public Instance Methods
changed_local_data?()
click to toggle source
# File lib/contentful_middleman/import_task.rb, line 22 def changed_local_data? @changed_local_data end
entries()
click to toggle source
# File lib/contentful_middleman/import_task.rb, line 26 def entries @entries ||= @contentful.entries end
file_name(content_type_name, entry)
click to toggle source
# File lib/contentful_middleman/import_task.rb, line 30 def file_name(content_type_name, entry) entry_id = entry.sys.key?(:id) ? entry.sys[:id] : entry.id File.join(@space_name, content_type_name, entry_id.to_s) end
run()
click to toggle source
# File lib/contentful_middleman/import_task.rb, line 12 def run old_version_hash = ContentfulMiddleman::VersionHash.read_for_space(@space_name) LocalData::Store.new(local_data_files, @space_name).write new_version_hash = ContentfulMiddleman::VersionHash.write_for_space_with_entries(@space_name, entries, @use_camel_case) @changed_local_data = new_version_hash != old_version_hash end
Private Instance Methods
local_data_files()
click to toggle source
# File lib/contentful_middleman/import_task.rb, line 36 def local_data_files content_type_key = if @use_camel_case :contentType else :content_type end entries.map do |entry| content_type_mapper_class = @content_type_mappers.fetch(entry.sys[content_type_key].id, nil) next unless content_type_mapper_class content_type_name = @content_type_names.fetch(entry.sys[content_type_key].id).to_s context = ContentfulMiddleman::Context.new content_type_mapper = content_type_mapper_class.new(entries, @contentful.options) content_type_mapper.map(context, entry) LocalData::File.new(context.to_yaml, file_name(content_type_name, entry)) end.compact end