Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dannyben/requires

Require all files in a directory
https://github.com/dannyben/requires

gem ruby

Last synced: 3 months ago
JSON representation

Require all files in a directory

Awesome Lists containing this project

README

        

# Requires

[![Gem Version](https://badge.fury.io/rb/requires.svg)](https://badge.fury.io/rb/requires)
[![Build Status](https://github.com/DannyBen/requires/workflows/Test/badge.svg)](https://github.com/DannyBen/requires/actions?query=workflow%3ATest)

A tiny convenience function to require or autoload all ruby files in a directory.

## Install

```bash
$ gem install requires
```

## Usage

### `requires`

```ruby
# Require a directory (recursively)
require 'requires'
requires 'lib'

# Individual files can also be loaded (with or without extension)
requires 'lib/base'
requires 'lib/base.rb'

# ...as well as external gems or built in libraries
requires 'yaml'
```

All paths are relative to the location of the file that calls `requires`.

### `autoloads`

Autoload en masse, with paths relative to the one calling `autuoloads`.

```ruby
require 'requires'
autoloads 'lib', %i[Asset SomeAPI HTTPClient]
```

which is equivalent to these native autoload statements:

```ruby
autoload :Asset, './lib/asset'
autoload :SomeAPI, './lib/some_api'
autoload :HTTPClient, './lib/HTTPClient'
```

In case you wish to autoload from the same directory, you can omit the first
argument:

```ruby
autoloads %i[Asset SomeAPI HTTPClient]
# which is the same as
# autoloads '.', %i[Asset SomeAPI HTTPClient]
```