requires 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +30 -2
- data/lib/requires/version.rb +1 -0
- data/lib/requires.rb +21 -1
- metadata +12 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1b0b0f2f8e0b604e3f3061b95a695fe537a0c7286c2d4cfea8a27578ec828019
|
|
4
|
+
data.tar.gz: 60ecc91cb37fb1a90baaed74fcc911f7644cb6195fab02279a39e1608b6dada7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4d58d1cb6fe90169fe7fae10fac2a7c5c7af8394544b21d3b488d6277012f00dc85e8dee880a1d49c3ac826e144be237bb5cf2d46bbb11953f6e4eb54d11a6af
|
|
7
|
+
data.tar.gz: 5af9b748b2bff2349b798e9cc60f2ad43eee55c546dc93b9bc0089b5ce1073fc832c87bb1e15e040d24d1de0392ddf794c02bb89da0936d9e728a2734e2138dc
|
data/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://badge.fury.io/rb/requires)
|
|
4
4
|
[](https://github.com/DannyBen/requires/actions?query=workflow%3ATest)
|
|
5
5
|
|
|
6
|
-
A tiny convenience function to require all ruby files in a directory.
|
|
6
|
+
A tiny convenience function to require or autoload all ruby files in a directory.
|
|
7
7
|
|
|
8
8
|
## Install
|
|
9
9
|
|
|
@@ -13,6 +13,8 @@ $ gem install requires
|
|
|
13
13
|
|
|
14
14
|
## Usage
|
|
15
15
|
|
|
16
|
+
### `requires`
|
|
17
|
+
|
|
16
18
|
```ruby
|
|
17
19
|
# Require a directory (recursively)
|
|
18
20
|
require 'requires'
|
|
@@ -26,4 +28,30 @@ requires 'lib/base.rb'
|
|
|
26
28
|
requires 'yaml'
|
|
27
29
|
```
|
|
28
30
|
|
|
29
|
-
All paths are relative to the location of the file that calls `
|
|
31
|
+
All paths are relative to the location of the file that calls `requires`.
|
|
32
|
+
|
|
33
|
+
### `autoloads`
|
|
34
|
+
|
|
35
|
+
Autoload en masse, with paths relative to the one calling `autuoloads`.
|
|
36
|
+
|
|
37
|
+
```ruby
|
|
38
|
+
require 'requires'
|
|
39
|
+
autoloads 'lib', %i[Asset SomeAPI HTTPClient]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
which is equivalent to these native autoload statements:
|
|
43
|
+
|
|
44
|
+
```ruby
|
|
45
|
+
autoload :Asset, './lib/asset'
|
|
46
|
+
autoload :SomeAPI, './lib/some_api'
|
|
47
|
+
autoload :HTTPClient, './lib/HTTPClient'
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
In case you wish to autoload from the same directory, you can omit the first
|
|
51
|
+
argument:
|
|
52
|
+
|
|
53
|
+
```ruby
|
|
54
|
+
autoloads %i[Asset SomeAPI HTTPClient]
|
|
55
|
+
# which is the same as
|
|
56
|
+
# autoloads '.', %i[Asset SomeAPI HTTPClient]
|
|
57
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION = '1.1.0'
|
data/lib/requires.rb
CHANGED
|
@@ -4,7 +4,7 @@ def requires(item)
|
|
|
4
4
|
path = File.expand_path item, base_dir
|
|
5
5
|
|
|
6
6
|
if File.directory? path
|
|
7
|
-
Dir["#{path}/**/*.rb"].
|
|
7
|
+
Dir["#{path}/**/*.rb"].each do |file|
|
|
8
8
|
require file
|
|
9
9
|
end
|
|
10
10
|
|
|
@@ -16,3 +16,23 @@ def requires(item)
|
|
|
16
16
|
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
|
+
|
|
20
|
+
def autoloads(base, symbols = nil)
|
|
21
|
+
unless symbols
|
|
22
|
+
symbols = base
|
|
23
|
+
base = '.'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
base_path = caller_locations(1..1).first.path
|
|
27
|
+
base_dir = File.dirname base_path
|
|
28
|
+
path = File.expand_path base, base_dir
|
|
29
|
+
|
|
30
|
+
symbols.each do |symbol|
|
|
31
|
+
file = symbol.to_s
|
|
32
|
+
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') # Break consecutive uppercase letters before the last capital
|
|
33
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2') # Break lowercase or digits before an uppercase letter
|
|
34
|
+
.downcase
|
|
35
|
+
|
|
36
|
+
autoload symbol, "#{path}/#{file}"
|
|
37
|
+
end
|
|
38
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: requires
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Danny Ben Shitrit
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-07-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: Adds functions that allow requiring a direcotry
|
|
14
14
|
email: db@dannyben.com
|
|
@@ -18,12 +18,17 @@ extra_rdoc_files: []
|
|
|
18
18
|
files:
|
|
19
19
|
- README.md
|
|
20
20
|
- lib/requires.rb
|
|
21
|
+
- lib/requires/version.rb
|
|
21
22
|
homepage: https://github.com/dannyben/requires
|
|
22
23
|
licenses:
|
|
23
24
|
- MIT
|
|
24
25
|
metadata:
|
|
26
|
+
bug_tracker_uri: https://github.com/DannyBen/requires/issues
|
|
27
|
+
changelog_uri: https://github.com/DannyBen/requires/blob/master/CHANGELOG.md
|
|
28
|
+
homepage_uri: https://requires.dannyb.co/
|
|
29
|
+
source_code_uri: https://github.com/DannyBen/requires
|
|
25
30
|
rubygems_mfa_required: 'true'
|
|
26
|
-
post_install_message:
|
|
31
|
+
post_install_message:
|
|
27
32
|
rdoc_options: []
|
|
28
33
|
require_paths:
|
|
29
34
|
- lib
|
|
@@ -31,15 +36,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
31
36
|
requirements:
|
|
32
37
|
- - ">="
|
|
33
38
|
- !ruby/object:Gem::Version
|
|
34
|
-
version:
|
|
39
|
+
version: '3.0'
|
|
35
40
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
36
41
|
requirements:
|
|
37
42
|
- - ">="
|
|
38
43
|
- !ruby/object:Gem::Version
|
|
39
44
|
version: '0'
|
|
40
45
|
requirements: []
|
|
41
|
-
rubygems_version: 3.
|
|
42
|
-
signing_key:
|
|
46
|
+
rubygems_version: 3.5.14
|
|
47
|
+
signing_key:
|
|
43
48
|
specification_version: 4
|
|
44
49
|
summary: Require all files in a directory
|
|
45
50
|
test_files: []
|