class Jekyll::Contentfyll::Importer
Importer
class
Entry fetching logic
Attributes
config[R]
Public Class Methods
new(jekyll_config)
click to toggle source
# File lib/jekyll-contentfyll/importer.rb, line 11 def initialize(jekyll_config) @jekyll_config = jekyll_config @config = jekyll_config.key?('contentful') ? jekyll_config['contentful'] : jekyll_config end
Public Instance Methods
client(space, access_token, environment = nil, options = {})
click to toggle source
# File lib/jekyll-contentfyll/importer.rb, line 73 def client(space, access_token, environment = nil, options = {}) options = { space: space, access_token: access_token, environment: environment || 'master', dynamic_entries: :auto, raise_errors: true, integration_name: 'jekyll', integration_version: Jekyll::Contentfyll::VERSION }.merge(options) ::Contentful::Client.new(options) end
export_data(name, space_client, options)
click to toggle source
# File lib/jekyll-contentfyll/importer.rb, line 30 def export_data(name, space_client, options) entries = get_entries(space_client, options) Jekyll.logger.info "Number of entries:" Jekyll.logger.info entries.length end
get_entries(space_client, options)
click to toggle source
# File lib/jekyll-contentfyll/importer.rb, line 47 def get_entries(space_client, options) cda_query = options.fetch('cda_query', {}) Jekyll.logger.info options return space_client.entries(cda_query) unless options.fetch('all_entries', false) all = [] query = cda_query.clone query[:order] = 'sys.createdAt' unless query.key?(:order) num_entries = space_client.entries(limit: 1).total page_size = options.fetch('all_entries_page_size', 1000) Jekyll.logger.info num_entries Jekyll.logger.info page_size Jekyll.logger.info query ((num_entries / page_size) + 1).times do |i| query[:limit] = page_size query[:skip] = i * page_size page = space_client.entries(query) page.each { |entry| all << entry } end all end
run()
click to toggle source
# File lib/jekyll-contentfyll/importer.rb, line 17 def run spaces.each do |name, options| space_client = client( value_for(options, 'space'), value_for(options, 'access_token'), value_for(options, 'environment'), client_options(options.fetch('client_options', {})) ) export_data(name, space_client, options) end end
spaces()
click to toggle source
# File lib/jekyll-contentfyll/importer.rb, line 43 def spaces config['spaces'].map(&:first) end
value_for(options, key)
click to toggle source
# File lib/jekyll-contentfyll/importer.rb, line 37 def value_for(options, key) potential_value = options[key] return ENV[potential_value.gsub('ENV_', '')] if !potential_value.nil? && potential_value.start_with?('ENV_') potential_value end
Private Instance Methods
client_options(options)
click to toggle source
# File lib/jekyll-contentfyll/importer.rb, line 89 def client_options(options) options = options.each_with_object({}) do |(k, v), memo| memo[k.to_sym] = v memo end options.delete(:dynamic_entries) options.delete(:raise_errors) options end