Sha256: 8c15aeec2eb5f3b3c007d705cd25c326d0dbf8dae32e3d65e30f0b93df1106f4
Contents?: true
Size: 1.19 KB
Versions: 5
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true module BridgetownPrismic class Origin < Bridgetown::Model::Origin # @return [Pathname] attr_reader :relative_path attr_reader :prismic_document def self.handle_scheme?(scheme) = scheme == "prismic" def self.import_document(document) = new("prismic://#{document.type}/#{document.id}", document).read def initialize(id, prismic_document = nil) super(id) @relative_path = Pathname.new("#{id.delete_prefix("prismic://")}.html") @prismic_document = prismic_document # could be nil, so model should load preview instance end def verify_model?(klass) klass.prismic_custom_type.to_s == URI.parse(id).host end def read klass = Bridgetown::Model::Base.klass_for_id(id) if klass.name == "Bridgetown::Model::Base" raise "Could not find a specialized model class for ID `#{id}'" end Bridgetown::Resource.register_extension klass unless klass.extensions_have_been_registered @data = klass.prismic_data(self, @prismic_document) @data[:_id_] = id @data[:_origin_] = self @data end def exists? false end end end
Version data entries
5 entries across 5 versions & 1 rubygems