Class: BridgetownPrismic::Builder

Inherits:
Bridgetown::Builder
  • Object
show all
Includes:
API
Defined in:
lib/bridgetown-prismic/builder.rb

Instance Method Summary collapse

Methods included from API

#configure_prismic, #model_exists_for_prismic_type?, #model_for_prismic_type, #prismic_types, #query_prismic, #query_prismic_and_generate_resources_for

Instance Method Details

#buildObject



9
10
11
12
13
14
15
# File 'lib/bridgetown-prismic/builder.rb', line 9

def build
  configure_prismic # in API module

  return if site.ssr?

  load_prismic_documents
end

#load_prismic_documentsObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/bridgetown-prismic/builder.rb', line 17

def load_prismic_documents
  batches = []
  Async do |task|
    prismic_types.map do |type|
      task.async do
        Bridgetown::Current.site = site # ensure fiber has copy of the current site
        klass = model_for_prismic_type(type)
        batches.push [klass, query_prismic(klass.prismic_custom_type, {})]
      end
    end
  end

  batches.each do |batch|
    klass, docs = batch
    docs.map { |doc| klass.import_prismic_document(doc) }.each(&:as_resource_in_collection)
  end
end