BSD Ports

devel/rubygem-zeitwerk 2.6.18 MidnightBSD

Efficient and thread-safe code loader

System
MidnightBSD
Repository
mports
Maintainer
[email protected]
License
mit
Categories
devel, rubygems

Description

Zeitwerk is an efficient and thread-safe code loader for Ruby.

Given a conventional file structure, Zeitwerk is able to load your project's classes and modules on demand (autoloading), or upfront (eager loading). You don't need to write require calls for your own files, rather, you can streamline your programming knowing that your classes and modules are available everywhere. This feature is efficient, thread-safe, and matches Ruby's semantics for constants.

Zeitwerk is also able to reload code, which may be handy while developing web applications. Coordination is needed to reload in a thread-safe manner. The documentation below explains how to do this.

The gem is designed so that any project, gem dependency, application, etc. can have their own independent loader, coexisting in the same process, managing their own project trees, and independent of each other. Each loader has its own configuration, inflector, and optional logger.

Internally, Zeitwerk issues require calls exclusively using absolute file names, so there are no costly file system lookups in $LOAD_PATH. Technically, the directories managed by Zeitwerk do not even need to be in $LOAD_PATH. Furthermore, Zeitwerk does only one single scan of the project tree, and it descends into subdirectories lazily, only if their namespaces are used.

In the other systems

SystemPortVersion
MidnightBSDdevel/rubygem-zeitwerk2.6.18
FreeBSDdevel/rubygem-zeitwerk2.8.3
DragonFlydevel/rubygem-zeitwerk2.6.18
HardenedBSDdevel/rubygem-zeitwerk2.8.3
GhostBSDdevel/rubygem-zeitwerk2.6.18

Install

Binary package:

mport install zeitwerk

From mports:

cd /usr/mports/devel/rubygem-zeitwerk && make install clean

To depend on this port in another port's Makefile:

RUN_DEPENDS=	zeitwerk>0:devel/rubygem-zeitwerk

Dependencies

Configuration

No options to configure.

USES
gem
Service scripts
none

Files

distinfo 1
FileSizeSHA256
rubygem/zeitwerk-2.6.18.gem40448bd2d213996ff7b3b364cd342a585fbee9797dbc1c0c6d868dc4150cc75739781
Master sites 1
  • RG