class Bridgetown::Model::BuilderOrigin

Abstract Superclass

Attributes

relative_path[R]

@return [Pathname]

Public Class Methods

handle_scheme?(scheme) click to toggle source

Override in subclass

# File lib/bridgetown-core/model/builder_origin.rb, line 11
def self.handle_scheme?(scheme)
  scheme == "builder"
end
new(id) click to toggle source
# File lib/bridgetown-core/model/builder_origin.rb, line 15
def initialize(id)
  self.id = id
  @relative_path = Pathname.new(id.delete_prefix("builder://"))
end

Public Instance Methods

exists?() click to toggle source
# File lib/bridgetown-core/model/builder_origin.rb, line 35
def exists?
  false
end
read() { || ... } click to toggle source
# File lib/bridgetown-core/model/builder_origin.rb, line 20
def read
  @data = if block_given?
            yield
          elsif defined?(SiteBuilder) && SiteBuilder.respond_to?(:data_for_id)
            SiteBuilder.data_for_id(id)
          else
            raise "No builder exists which can read #{id}"
          end
  @data[:_id_] = id
  @data[:_origin_] = self
  @relative_path = Pathname.new(@data[:_relative_path_]) if @data[:_relative_path_]

  @data
end