module

BakedFileSystem

A BakedFileSystem allows to include ("bake") static files into a compiled binary and make them accessible at runtime using their path.

Usage

# Using BakedFileSystem.load
class MyFileSystem
  extend BakedFileSystem
  bake_folder "path/to/root/folder"
end

# Creating a file manually
class MyFileSystem
  extend BakedFileSystem
  bake_file "hello-world.txt", "Hello World\n"
end

Constants

VERSION = "0.9.0"

Instance methods

bake_file(path : String, content)

Creates a BakedFile at path with content content and adds it to this file system.

Source
bake_file(file : BakedFile)

Adds a baked file to this file system.

Source
files

Returns all virtual files in this file system.

Source
get(path : String) : BakedFile

Returns a BakedFile at path.

Raises NoSuchFileError if the virtual file does not exist.

Source
get?(path : String) : BakedFile | Nil

Returns a BakedFile at path or nil if the virtual file does not exist.

Source

Macros

bake_folder(path, dir = __DIR__, allow_empty = false)

Bakes all files in path into this baked file system. If path is relative, it will be based on dir which defaults to __DIR__. It will raise if there are no files found in path unless allow_empty is set to true.

Source
load(path, dir = __DIR__, allow_empty = false)

Creates a baked file system and loads contents of files in path. If path is relative, it will be based on dir which defaults to __DIR__. It will raise if there are no files found in path unless allow_empty is set to true.

DEPRECATED: Use extend BakedFileSystem and bake_folder instead.

Source

Nested types