autoloaded 2.3.0 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/History.md +16 -7
- data/License.md +1 -1
- data/README.md +23 -23
- data/autoloaded.gemspec +1 -1
- data/lib/autoloaded/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b09d46cc2228470952ca437e81c62d2ea3ac49d424b1e8bbffbc96dcff30696
|
4
|
+
data.tar.gz: 44678d29ea7284e29d62f2fb408d33a9c4f679f34905b864b02f56dd9e1a41fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b881749824f44669e8791ccb52c798b17976b5102f22e2d05e591e150f2fd7ca78fcb0384ff6ef27321cfddef0f5ac975f09b1cb5ce3f0375d732dc80210b039
|
7
|
+
data.tar.gz: 8db7e680a19458b5f4871f13ffbef88a58c7db78f2ac2a0fafc1420a5fabc1aa7b84e2988cfbf1ca50504fac91d2b18dfb7bada0fdf6b3162a298ce643ee86ac
|
data/.travis.yml
CHANGED
data/History.md
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
-
# Version history for the
|
1
|
+
# Version history for the *Autoloaded* project
|
2
|
+
|
3
|
+
## <a name="v2.4.0"></a>v2.4.0 and <a name="v1.7.0"></a>v1.7.0, Sat 9/19/2021
|
4
|
+
|
5
|
+
* Add support for Ruby v3 (thanks to [@krimsonkla][GitHub-user-krimsonkla])
|
2
6
|
|
3
7
|
## <a name="v2.3.0"></a>v2.3.0 and <a name="v1.6.0"></a>v1.6.0, Sun 4/05/2020
|
4
8
|
|
5
9
|
* Eliminate Ruby warnings about
|
6
|
-
[
|
10
|
+
[*Binding#source_location*][Ruby-Core-Binding-source_location] (thanks to
|
11
|
+
[@guss77][GitHub-user-guss77])
|
7
12
|
|
8
13
|
## <a name="v2.2.1"></a>v2.2.1 and <a name="v1.5.1"></a>v1.5.1, Wed 10/18/2017
|
9
14
|
|
@@ -12,11 +17,12 @@
|
|
12
17
|
## <a name="v2.2.0"></a>v2.2.0 and <a name="v1.5.0"></a>v1.5.0, Wed 2/22/2017
|
13
18
|
|
14
19
|
* Add support for Ruby load paths (`$:`) that contain one or more
|
15
|
-
[
|
20
|
+
[*Pathname*][Ruby-Stdlib-Pathname] objects (thanks to
|
21
|
+
[@ekampp][GitHub-user-ekampp])
|
16
22
|
|
17
23
|
## <a name="v2.1.1"></a>v2.1.1 and <a name="v1.4.1"></a>v1.4.1, Sat 1/24/2015
|
18
24
|
|
19
|
-
* Don’t warn about a
|
25
|
+
* Don’t warn about a *VERSION* constant presumably loaded by a *.gemspec*
|
20
26
|
|
21
27
|
## <a name="v2.0.0"></a>v2.0.0, Sat 12/27/2014
|
22
28
|
|
@@ -35,11 +41,11 @@
|
|
35
41
|
|
36
42
|
* Correct/improve autoload behavior
|
37
43
|
* Instead of returning the source **directory** path from
|
38
|
-
[
|
44
|
+
[*Module#autoload?*][Ruby-Core-Module-autoload], return one or more matching
|
39
45
|
source **file** path(s)
|
40
46
|
* Use Ruby load path (`$:`) to handle relative source file paths
|
41
|
-
* Explain
|
42
|
-
[
|
47
|
+
* Explain *Module#autoload?* and
|
48
|
+
[*Module#constants*][Ruby-Core-Module-constants] in the [readme][readme] and
|
43
49
|
in [inline documentation][inline-documentation]
|
44
50
|
|
45
51
|
## <a name="v1.0.0"></a>v1.0.0, Wed 10/29/2014
|
@@ -50,6 +56,9 @@
|
|
50
56
|
|
51
57
|
(First release)
|
52
58
|
|
59
|
+
[GitHub-user-krimsonkla]: https://github.com/krimsonkla "GitHub user @krimsonkla"
|
60
|
+
[GitHub-user-ekampp]: https://github.com/ekampp "GitHub user @ekampp"
|
61
|
+
[GitHub-user-guss77]: https://github.com/guss77 "GitHub user @guss77"
|
53
62
|
[JRuby]: https://www.jruby.org/
|
54
63
|
[Ruby-Core-Binding-source_location]: https://ruby-doc.org/core/Binding.html#method-i-source_location "‘Binding#source_location’ method in the Ruby Core Library"
|
55
64
|
[Ruby-Core-Module-autoload]: https://ruby-doc.org/core/Module.html#method-i-autoload-3F "‘Module#autoload’ method in the Ruby Core Library"
|
data/License.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# The MIT License
|
2
2
|
|
3
|
-
Source code for
|
3
|
+
Source code for *Autoloaded* is Copyright © 2014 [Nils Jonsson][mail] and
|
4
4
|
[contributors][contributors].
|
5
5
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
data/README.md
CHANGED
@@ -9,14 +9,14 @@
|
|
9
9
|
[![Inch CI build status] ][Inch-CI-build-status]
|
10
10
|
[![RubyGems release] ][RubyGems-release]
|
11
11
|
|
12
|
-
If you like the [
|
13
|
-
Ruby Core library, you may have wished for
|
12
|
+
If you like the [*Module#autoload*][Ruby-Core-Module-autoload] feature of the
|
13
|
+
Ruby Core library, you may have wished for *Autoloaded*. It eliminates the
|
14
14
|
drudgery of handcrafting an `autoload` statement for each Ruby source code file
|
15
15
|
in your project. It also avoids the limitations of rigid convention-driven
|
16
16
|
facilities such as those provided by the [ActiveSupport][ActiveSupport-Autoload]
|
17
17
|
RubyGem.
|
18
18
|
|
19
|
-
|
19
|
+
*Autoloaded* assumes, but does not enforce, `CamelCase`-to-`snake_case`
|
20
20
|
correspondence between the names of constants and source files. You can combine
|
21
21
|
conventions, even putting multiple autoloaded constants in a single source file.
|
22
22
|
|
@@ -26,7 +26,7 @@ Install [the RubyGem][RubyGems-release].
|
|
26
26
|
|
27
27
|
$ gem install autoloaded
|
28
28
|
|
29
|
-
Use
|
29
|
+
Use *Autoloaded* in your RubyGem project by making it a runtime dependency.
|
30
30
|
|
31
31
|
```ruby
|
32
32
|
# my_awesome_gem.gemspec
|
@@ -38,7 +38,7 @@ Gem::Specification.new do |spec|
|
|
38
38
|
end
|
39
39
|
```
|
40
40
|
|
41
|
-
Or you may want to make
|
41
|
+
Or you may want to make *Autoloaded* a dependency of your project by using
|
42
42
|
[Bundler][Bundler].
|
43
43
|
|
44
44
|
```ruby
|
@@ -65,15 +65,15 @@ Suppose you have the following source files.
|
|
65
65
|
│ └─ version.rb
|
66
66
|
└─ my_awesome_gem.rb
|
67
67
|
|
68
|
-
### The
|
68
|
+
### The *Autoloaded.module* or *Autoloaded.class* method
|
69
69
|
|
70
|
-
The
|
71
|
-
[
|
70
|
+
The *Autoloaded.module* and *Autoloaded.class* method calls below invoke
|
71
|
+
[*Module#autoload*][Ruby-Core-Module-autoload] for each source file in the
|
72
72
|
calling module’s corresponding directory. Note that these methods must receive a
|
73
73
|
block, even if it’s an empty block.
|
74
74
|
|
75
75
|
The file paths used are abbreviated, if possible, using a directory of the Ruby
|
76
|
-
load path (`$:`). They are also rendered without their
|
76
|
+
load path (`$:`). They are also rendered without their *.rb* extension.
|
77
77
|
|
78
78
|
```ruby
|
79
79
|
# lib/my_awesome_gem.rb
|
@@ -151,7 +151,7 @@ MyAwesomeGem::DB::Mysql # Raises NameError because
|
|
151
151
|
|
152
152
|
### The `with` specification
|
153
153
|
|
154
|
-
|
154
|
+
*Autoloaded* needs hints from you concerning unpredictable spellings,
|
155
155
|
stylization, and organization of constant names and/or source file names. You can
|
156
156
|
specify `with` as:
|
157
157
|
|
@@ -341,9 +341,9 @@ cumulative.
|
|
341
341
|
|
342
342
|
### The `from` specification
|
343
343
|
|
344
|
-
It’s recommended that you call
|
344
|
+
It’s recommended that you call *Autoloaded.module* or *Autoloaded.class* from
|
345
345
|
within the source file where your module or class is defined. This practice
|
346
|
-
allows
|
346
|
+
allows *Autoloaded* to assume that the source files to be autoloaded are in a
|
347
347
|
directory of the same name (and in the same location) as the module’s defining
|
348
348
|
source file.
|
349
349
|
|
@@ -372,18 +372,18 @@ end
|
|
372
372
|
A path provided to `from` cannot be relative; it must start with the filesystem
|
373
373
|
root.
|
374
374
|
|
375
|
-
If you specify `from` multiple times in an
|
375
|
+
If you specify `from` multiple times in an *Autoloaded* block, only the last one
|
376
376
|
takes effect.
|
377
377
|
|
378
|
-
### The
|
378
|
+
### The *Autoloaded.warn* method
|
379
379
|
|
380
|
-
There are two circumstances under which
|
380
|
+
There are two circumstances under which *Autoloaded* by default will write
|
381
381
|
warnings to stderr:
|
382
382
|
|
383
383
|
* Overriding an established autoload
|
384
384
|
* Establishing an autoload for a defined constant
|
385
385
|
|
386
|
-
You can silence these warnings by passing `false` to
|
386
|
+
You can silence these warnings by passing `false` to *Autoloaded.warn*. (Passing
|
387
387
|
`true` turns warnings on if they are off.)
|
388
388
|
|
389
389
|
```ruby
|
@@ -439,7 +439,7 @@ end
|
|
439
439
|
|
440
440
|
### How to debug autoloading
|
441
441
|
|
442
|
-
The
|
442
|
+
The *Autoloaded.module* or *Autoloaded.class* method returns an ordered list of
|
443
443
|
arguments it has passed to `autoload`.
|
444
444
|
|
445
445
|
```ruby
|
@@ -468,20 +468,20 @@ end
|
|
468
468
|
# [:PostgreSQL, 'my_awesome_gem/db/postgre_sql']]
|
469
469
|
```
|
470
470
|
|
471
|
-
You can also hook [
|
472
|
-
[
|
471
|
+
You can also hook [*Module#autoload*][Ruby-Core-Module-autoload] and
|
472
|
+
[*Kernel#autoload*][Ruby-Core-Kernel-autoload] via monkeypatching or other means
|
473
473
|
in order to see what’s happening.
|
474
474
|
|
475
475
|
### Source filenames are relative to the `from` specification
|
476
476
|
|
477
477
|
You may have noticed that source filenames in the above examples are not
|
478
|
-
absolute. They are relative to the
|
478
|
+
absolute. They are relative to the *Autoloaded* block’s `from` specification
|
479
479
|
(which I recommend that you allow to be computed for you —
|
480
480
|
[see above](#the-from-specification)).
|
481
481
|
|
482
482
|
### Recursive autoloading not supported
|
483
483
|
|
484
|
-
|
484
|
+
*Autoloaded* does not perform deep autoloading of nested namespaces and
|
485
485
|
directories. This is by design.
|
486
486
|
|
487
487
|
## Contributing
|
@@ -500,9 +500,9 @@ run the tests. You can also `bin/console` to get an interactive prompt that will
|
|
500
500
|
allow you to experiment.
|
501
501
|
|
502
502
|
To install this gem onto your local machine, `bundle exec rake install`. To
|
503
|
-
release a new version, update the version number in
|
503
|
+
release a new version, update the version number in *lib/autoloaded/version.rb*,
|
504
504
|
and then `bundle exec rake release`, which will create a Git tag for the version,
|
505
|
-
push Git commits and tags, and push the
|
505
|
+
push Git commits and tags, and push the *.gem* file to
|
506
506
|
[RubyGems.org](RubyGems-release).
|
507
507
|
|
508
508
|
## License
|
data/autoloaded.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.homepage = 'https://njonsson.github.io/autoloaded'
|
32
32
|
spec.license = 'MIT'
|
33
33
|
|
34
|
-
spec.required_ruby_version = '>= 1.9', '<
|
34
|
+
spec.required_ruby_version = '>= 1.9', '< 4'
|
35
35
|
|
36
36
|
spec.add_development_dependency 'codeclimate-test-reporter', '~> 0'
|
37
37
|
if RUBY_VERSION < '2.2'
|
data/lib/autoloaded/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autoloaded
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nils Jonsson
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: codeclimate-test-reporter
|
@@ -97,7 +97,7 @@ homepage: https://njonsson.github.io/autoloaded
|
|
97
97
|
licenses:
|
98
98
|
- MIT
|
99
99
|
metadata: {}
|
100
|
-
post_install_message:
|
100
|
+
post_install_message:
|
101
101
|
rdoc_options: []
|
102
102
|
require_paths:
|
103
103
|
- lib
|
@@ -108,15 +108,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
108
|
version: '1.9'
|
109
109
|
- - "<"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
111
|
+
version: '4'
|
112
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
117
|
requirements: []
|
118
|
-
rubygems_version: 3.
|
119
|
-
signing_key:
|
118
|
+
rubygems_version: 3.2.20
|
119
|
+
signing_key:
|
120
120
|
specification_version: 4
|
121
121
|
summary: Eliminates the drudgery of handcrafting a Ruby Core library `autoload` statement
|
122
122
|
for each Ruby source code file in your project. It also avoids the limitations of
|