Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/dannyben/requires
- Owner: DannyBen
- License: mit
- Created: 2018-06-11T20:15:45.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-26T14:53:52.000Z (6 months ago)
- Last Synced: 2024-10-06T05:19:16.645Z (3 months ago)
- Topics: gem, ruby
- Language: Ruby
- Homepage:
- Size: 39.1 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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]
```