Class: Bridgetown::Model::Origin

Inherits:
Object
  • Object
show all
Defined in:
bridgetown-core/lib/bridgetown-core/model/origin.rb

Overview

Abstract Superclass

Direct Known Subclasses

BuilderOrigin, RepoOrigin

Constant Summary collapse

EAGER_LOAD_DESCENDANTS =
%i(BuilderOrigin RepoOrigin PluginOrigin).freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id, site: Bridgetown::Current.site, bare_text: false) ⇒ Origin

Returns a new instance of Origin.



23
24
25
26
27
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 23

def initialize(id, site: Bridgetown::Current.site, bare_text: false)
  self.id = id
  self.site = site
  self.bare_text = bare_text
end

Instance Attribute Details

#bare_textBoolean

Returns:

  • (Boolean)


16
17
18
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 16

def bare_text
  @bare_text
end

#idString

Returns:

  • (String)


10
11
12
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 10

def id
  @id
end

#siteBridgetown::Site

Returns:



13
14
15
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 13

def site
  @site
end

Class Method Details

.handle_scheme?(_scheme) ⇒ Boolean

You must implement in subclasses

Returns:

  • (Boolean)


19
20
21
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 19

def self.handle_scheme?(_scheme)
  false
end

Instance Method Details

#exists?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 47

def exists?
  raise "Implement #exists? in a subclass of Bridgetown::Model::Origin"
end

#readObject



38
39
40
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 38

def read
  raise "Implement #read in a subclass of Bridgetown::Model::Origin"
end

#relative_pathPathname

Returns:

  • (Pathname)


43
44
45
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 43

def relative_path
  raise "Implement #relative_path in a subclass of Bridgetown::Model::Origin"
end

#verify_model?(klass) ⇒ Boolean

You can override in subclass

Returns:

  • (Boolean)


30
31
32
33
34
35
36
# File 'bridgetown-core/lib/bridgetown-core/model/origin.rb', line 30

def verify_model?(klass)
  collection_name = URI.parse(id).host.chomp(".collection")

  return klass.collection_name.to_s == collection_name if klass.respond_to?(:collection_name)

  klass.name == site.config.inflector.classify(collection_name)
end