Class: BridgetownPrismic::Origin
- Inherits:
-
Bridgetown::Model::Origin
- Object
- Bridgetown::Model::Origin
- BridgetownPrismic::Origin
- Defined in:
- lib/bridgetown-prismic/origin.rb
Instance Attribute Summary collapse
-
#prismic_document ⇒ Object
readonly
Returns the value of attribute prismic_document.
- #relative_path ⇒ Pathname readonly
Class Method Summary collapse
Instance Method Summary collapse
- #exists? ⇒ Boolean
-
#initialize(id, prismic_document = nil, site: Bridgetown::Current.site) ⇒ Origin
constructor
A new instance of Origin.
- #read ⇒ Object
- #verify_model?(klass) ⇒ Boolean
Constructor Details
#initialize(id, prismic_document = nil, site: Bridgetown::Current.site) ⇒ Origin
Returns a new instance of Origin.
15 16 17 18 19 |
# File 'lib/bridgetown-prismic/origin.rb', line 15 def initialize(id, prismic_document = nil, site: Bridgetown::Current.site) super(id, site: site) @relative_path = Pathname.new("#{id.delete_prefix("prismic://")}.html") @prismic_document = prismic_document # could be nil, so model should load preview instance end |
Instance Attribute Details
#prismic_document ⇒ Object (readonly)
Returns the value of attribute prismic_document.
8 9 10 |
# File 'lib/bridgetown-prismic/origin.rb', line 8 def prismic_document @prismic_document end |
#relative_path ⇒ Pathname (readonly)
6 7 8 |
# File 'lib/bridgetown-prismic/origin.rb', line 6 def relative_path @relative_path end |
Class Method Details
.handle_scheme?(scheme) ⇒ Boolean
10 |
# File 'lib/bridgetown-prismic/origin.rb', line 10 def self.handle_scheme?(scheme) = scheme == "prismic" |
.import_document(document) ⇒ Object
12 13 |
# File 'lib/bridgetown-prismic/origin.rb', line 12 def self.import_document(document) = new("prismic://#{document.type}/#{document.id}", document).read |
Instance Method Details
#exists? ⇒ Boolean
38 39 40 |
# File 'lib/bridgetown-prismic/origin.rb', line 38 def exists? false end |
#read ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/bridgetown-prismic/origin.rb', line 25 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 @data = klass.prismic_data(self, @prismic_document) @data[:_id_] = id @data[:_origin_] = self @data end |
#verify_model?(klass) ⇒ Boolean
21 22 23 |
# File 'lib/bridgetown-prismic/origin.rb', line 21 def verify_model?(klass) klass.prismic_custom_type.to_s == URI.parse(id).host end |