module Novika::Resolver::Manifest

Overview

Includers are manifests in RunnableGroups.

Manifests exist mainly to allow to specify alternative load order. They are designed to be hidden so as to not interfere with/clutter the user's file tree.

Direct including types

Defined in:

novika/resolver.cr

Constructors

Instance Method Summary

Constructor Detail

def self.find(disk : Disk, path : Path, ancestor = nil) : Manifest #

Creates and returns a manifest object if path contains a manifest. Otherwise, returns nil.


Instance Method Detail

def layout(container : RunnableContainer, group : RunnableGroup) #

Populates container with runnables from group according to this manifest's default layout.

  • For application manifests, it's * ** entry.nk.
  • For library manifests and directories with no manifest, it's entry.nk * **.

def populate(root : RunnableRoot, container : RunnableContainer, origin : RunnableGroup) #

Populates container with runnables from origin according to the content of the manifest.

  • If there is no explicit * or **, ** is automatically inserted at the very beginning of the manifest regardless of whether it is an application manifest or a library manifest.

  • A directory with no manifest is laid out directly using #layout, since there is no "manifest content" to speak of.