autoloaded 2.1.1 → 2.4.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.
Files changed (58) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +4 -8
  3. data/.rspec +1 -1
  4. data/.travis.yml +20 -0
  5. data/Gemfile +14 -9
  6. data/Gemfile_ci_mri_19 +7 -0
  7. data/Guardfile +21 -22
  8. data/History.md +35 -10
  9. data/License.md +1 -1
  10. data/README.md +82 -68
  11. data/Rakefile +4 -0
  12. data/autoloaded.gemspec +41 -37
  13. data/bin/console +10 -0
  14. data/bin/setup +8 -0
  15. data/lib/autoloaded/autoloader.rb +24 -6
  16. data/lib/autoloaded/deprecation.rb +0 -2
  17. data/lib/autoloaded/inflection.rb +0 -2
  18. data/lib/autoloaded/load_pathed_directory.rb +2 -4
  19. data/lib/autoloaded/specification.rb +2 -0
  20. data/lib/autoloaded/specifications.rb +3 -3
  21. data/lib/autoloaded/version.rb +1 -1
  22. data/lib/autoloaded/warning.rb +1 -3
  23. data/lib/tasks/lib_each.rake +15 -3
  24. data/lib/tasks/spec.rake +3 -6
  25. metadata +20 -85
  26. data/spec/autoloaded/autoloader_spec.rb +0 -469
  27. data/spec/autoloaded/inflection_spec.rb +0 -30
  28. data/spec/autoloaded/load_pathed_directory_spec.rb +0 -120
  29. data/spec/autoloaded/specification_spec.rb +0 -98
  30. data/spec/autoloaded/specifications_spec.rb +0 -191
  31. data/spec/autoloaded/version_spec.rb +0 -3
  32. data/spec/autoloaded/warning_spec.rb +0 -115
  33. data/spec/autoloaded_macro_sharedspec.rb +0 -24
  34. data/spec/autoloaded_spec.rb +0 -173
  35. data/spec/fixtures/autoloaded_with_conventional_filename/N-est-ed.rb +0 -1
  36. data/spec/fixtures/autoloaded_with_conventional_filename/nest_ed.rb +0 -1
  37. data/spec/fixtures/autoloaded_with_conventional_filename/nested/doubly_nested.rb +0 -9
  38. data/spec/fixtures/autoloaded_with_conventional_filename/nested.rb +0 -16
  39. data/spec/fixtures/autoloaded_with_conventional_filename/old_school_autoload.rb +0 -5
  40. data/spec/fixtures/autoloaded_with_conventional_filename.rb +0 -12
  41. data/spec/fixtures/autoloaded_with_unconventional_filename/N-est-ed.rb +0 -7
  42. data/spec/fixtures/autoloaded_with_unconventional_filename/nest_ed.rb +0 -1
  43. data/spec/fixtures/autoloaded_with_unconventional_filename/old_school_autoload.rb +0 -5
  44. data/spec/fixtures/autoloaded_with_unconventional_filename.rb +0 -12
  45. data/spec/fixtures/filenames/AFilename.rb +0 -0
  46. data/spec/fixtures/filenames/a-file-name.rb +0 -0
  47. data/spec/fixtures/filenames/a-filename.rb +0 -0
  48. data/spec/fixtures/filenames/a_file_name.rb +0 -0
  49. data/spec/fixtures/filenames/a_filename.rb +0 -0
  50. data/spec/fixtures/filenames/afile-name.rb +0 -0
  51. data/spec/fixtures/filenames/afile_name.rb +0 -0
  52. data/spec/fixtures/not_autoloaded/nested.rb +0 -1
  53. data/spec/fixtures/not_autoloaded/old_school_autoload.rb +0 -5
  54. data/spec/fixtures/not_autoloaded.rb +0 -5
  55. data/spec/matchers.rb +0 -85
  56. data/spec/spec_helper.rb +0 -91
  57. data/spec/support/util.rb +0 -42
  58. data/spec/support/without_side_effects.rb +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ce4e11f3e21833a7a07926a9a973543eeef9c3c0
4
- data.tar.gz: b2904d86323289f9880426b8d8017446453fd59e
2
+ SHA256:
3
+ metadata.gz: 4b09d46cc2228470952ca437e81c62d2ea3ac49d424b1e8bbffbc96dcff30696
4
+ data.tar.gz: 44678d29ea7284e29d62f2fb408d33a9c4f679f34905b864b02f56dd9e1a41fb
5
5
  SHA512:
6
- metadata.gz: 6eaa374b835840d80a1bf88ce5caee2f53592064f8df8c77a493bc6a2a6feb003b37c36e20f35789b5132db2ddf2ed9264d2218d9ef0bef3490b7d742326deab
7
- data.tar.gz: ab0c372b54d4f5949c9cf68737c728ce83f92476958b3228d83d8bdf8a2367efab07bf8109de8bb8e371ad95df2378cb19f6086ddc59eca8165f63f9ed3849ce
6
+ metadata.gz: b881749824f44669e8791ccb52c798b17976b5102f22e2d05e591e150f2fd7ca78fcb0384ff6ef27321cfddef0f5ac975f09b1cb5ce3f0375d732dc80210b039
7
+ data.tar.gz: 8db7e680a19458b5f4871f13ffbef88a58c7db78f2ac2a0fafc1420a5fabc1aa7b84e2988cfbf1ca50504fac91d2b18dfb7bada0fdf6b3162a298ce643ee86ac
data/.gitignore CHANGED
@@ -1,16 +1,12 @@
1
1
  /.bundle/
2
- /.yardoc
2
+ /.rbx
3
+ /.ruby-*
4
+ /.yardoc/
3
5
  /Gemfile.lock
4
6
  /_yardoc/
5
7
  /coverage/
6
8
  /doc/
7
9
  /pkg/
10
+ /spec/examples.txt
8
11
  /spec/reports/
9
12
  /tmp/
10
- *.bundle
11
- *.so
12
- *.o
13
- *.a
14
- .ruby-gemset
15
- .ruby-version
16
- mkmf.log
data/.rspec CHANGED
@@ -1,3 +1,3 @@
1
1
  --color
2
- --format doc
2
+ --format documentation
3
3
  --require spec_helper
data/.travis.yml CHANGED
@@ -4,10 +4,30 @@ rvm:
4
4
  - 1.9
5
5
  - 2.0
6
6
  - 2.1
7
+ - 2.2
8
+ - 2.3
9
+ - 2.4
10
+ - 2.5
11
+ - 2.6
12
+ - 2.7
13
+ - 3.0
7
14
  - ruby-head
8
15
  - jruby-head
16
+ - rbx
17
+ - rbx-2
9
18
  script: "bundle exec rake test"
10
19
  matrix:
11
20
  allow_failures:
21
+ - rvm: 1.9
12
22
  - rvm: ruby-head
13
23
  - rvm: jruby-head
24
+ - rvm: rbx
25
+ - rvm: rbx-2
26
+ exclude:
27
+ - rvm: 1.9
28
+ include:
29
+ - rvm: 1.9
30
+ gemfile: Gemfile_ci_mri_19
31
+ branches:
32
+ except:
33
+ - /^gh-pages.*$/
data/Gemfile CHANGED
@@ -3,22 +3,27 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  group :debug do
6
- gem 'pry-byebug', '~> 2', platforms: [:mri_20, :mri_21]
7
- gem 'pry-debugger', '~> 0', platforms: :mri_19
6
+ gem 'pry-byebug', '~> 3', platforms: [:mri_20,
7
+ :mri_21,
8
+ :mri_22,
9
+ :mri_23,
10
+ :mri_24,
11
+ :mri_25]
12
+ gem 'pry-debugger', '~> 0', platforms: :mri_19
8
13
  end
9
14
 
10
- group :doc do
11
- gem 'yard', '~> 0', require: false
12
- gem 'rdiscount', '~> 2', require: false, platforms: :mri
15
+ group :development do
16
+ gem 'json', '~> 2', require: false
13
17
  end
14
18
 
15
- group :test do
16
- gem 'codeclimate-test-reporter', '~> 0', require: false
19
+ group :doc do
20
+ gem 'yard', '>= 0.9.11', '< 1', require: false
21
+ gem 'rdiscount', '~> 2', require: false
17
22
  end
18
23
 
19
24
  group :tooling do
20
- gem 'guard-rspec', '~> 4', require: false
25
+ gem 'guard-rspec', '~> 4', require: false
21
26
  if RUBY_PLATFORM =~ /darwin/i
22
- gem 'rb-fsevent', '~> 0', require: false
27
+ gem 'rb-fsevent', '~> 0', require: false
23
28
  end
24
29
  end
data/Gemfile_ci_mri_19 ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'json', '~> 1', require: false
7
+ end
data/Guardfile CHANGED
@@ -1,38 +1,37 @@
1
- interactor :off
1
+ require 'guard/rspec/dsl'
2
2
 
3
3
  debugger_gem = %w(pry-byebug pry-debugger).detect do |gem|
4
4
  `bundle show #{gem} 2>&1 >/dev/null`
5
5
  $?.success?
6
6
  end
7
7
  debugger_require = debugger_gem ? " --require #{debugger_gem}" : nil
8
- guard :rspec, all_after_pass: true,
9
- all_on_start: true,
10
- cmd: "bundle exec rspec#{debugger_require} --format progress" do
11
- # Run the corresponding spec (or all specs) when code changes.
12
- watch( %r{^lib/(.+)\.rb$} ) do |match|
13
- Dir["spec/#{match[1]}_spec.rb"].first || 'spec'
14
- end
15
8
 
16
- # Run a spec when it changes.
17
- watch %r{^spec/.+_spec\.rb$}
9
+ guard :rspec, all_on_start: true,
10
+ all_after_pass: true,
11
+ cmd: "bundle exec rspec --format progress#{debugger_require}" do
12
+ dsl = Guard::RSpec::Dsl.new(self)
13
+ rspec, ruby = dsl.rspec, dsl.ruby
18
14
 
19
- # Run all specs when a shared spec changes.
20
- watch( %r{^spec/.+_sharedspec\.rb$} ) { 'spec' }
15
+ # RSpec files
16
+ watch('.rspec') { rspec.spec_dir }
17
+ watch rspec.spec_helper { rspec.spec_dir }
18
+ watch rspec.spec_support { rspec.spec_dir }
19
+ watch(%r{^spec/support}) { rspec.spec_dir } # This should not be necessary.
20
+ watch rspec.spec_files
21
21
 
22
22
  # Run all specs when a matcher changes.
23
- watch( 'spec/matchers.rb' ) { 'spec' }
23
+ watch('spec/matchers.rb') { 'spec' }
24
24
 
25
- # Run all specs when a support file changes.
26
- watch( %r{^spec/support} ) { 'spec' }
25
+ # Run all specs when a shared spec changes.
26
+ watch(%r{^spec/.+_sharedspec\.rb$}) { rspec.spec_dir }
27
27
 
28
28
  # Run all specs when a fixture changes.
29
- watch( %r{^spec/fixtures} ) { 'spec' }
30
-
31
- # Run all specs when the RSpec configuration changes.
32
- watch( '.rspec' ) { 'spec' }
33
- watch( 'spec/spec_helper.rb' ) { 'spec' }
29
+ watch(%r{^spec/fixtures}) { rspec.spec_dir }
34
30
 
35
31
  # Run all specs when the bundle changes.
36
- watch( 'Gemfile.lock' ) { 'spec' }
37
- watch( %r{^(.+)\.gemspec$} ) { 'spec' }
32
+ watch('Gemfile.lock') { rspec.spec_dir }
33
+ watch(%r{^(.+)\.gemspec$}) { rspec.spec_dir }
34
+
35
+ # Ruby files
36
+ dsl.watch_spec_files_for ruby.lib_files
38
37
  end
data/History.md CHANGED
@@ -1,8 +1,28 @@
1
- # Version history for the _Autoloaded_ project
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])
6
+
7
+ ## <a name="v2.3.0"></a>v2.3.0 and <a name="v1.6.0"></a>v1.6.0, Sun 4/05/2020
8
+
9
+ * Eliminate Ruby warnings about
10
+ [*Binding#source_location*][Ruby-Core-Binding-source_location] (thanks to
11
+ [@guss77][GitHub-user-guss77])
12
+
13
+ ## <a name="v2.2.1"></a>v2.2.1 and <a name="v1.5.1"></a>v1.5.1, Wed 10/18/2017
14
+
15
+ * Eliminate Ruby warnings about undefined instance variables
16
+
17
+ ## <a name="v2.2.0"></a>v2.2.0 and <a name="v1.5.0"></a>v1.5.0, Wed 2/22/2017
18
+
19
+ * Add support for Ruby load paths (`$:`) that contain one or more
20
+ [*Pathname*][Ruby-Stdlib-Pathname] objects (thanks to
21
+ [@ekampp][GitHub-user-ekampp])
2
22
 
3
23
  ## <a name="v2.1.1"></a>v2.1.1 and <a name="v1.4.1"></a>v1.4.1, Sat 1/24/2015
4
24
 
5
- * Don’t warn about a _VERSION_ constant presumably loaded by a _.gemspec_
25
+ * Don’t warn about a *VERSION* constant presumably loaded by a *.gemspec*
6
26
 
7
27
  ## <a name="v2.0.0"></a>v2.0.0, Sat 12/27/2014
8
28
 
@@ -21,11 +41,11 @@
21
41
 
22
42
  * Correct/improve autoload behavior
23
43
  * Instead of returning the source **directory** path from
24
- [_Module#autoload?_][Ruby-Core-Module-autoload], return one or more matching
44
+ [*Module#autoload?*][Ruby-Core-Module-autoload], return one or more matching
25
45
  source **file** path(s)
26
46
  * Use Ruby load path (`$:`) to handle relative source file paths
27
- * Explain _Module#autoload?_ and
28
- [_Module#constants_][Ruby-Core-Module-constants] in the [readme][readme] and
47
+ * Explain *Module#autoload?* and
48
+ [*Module#constants*][Ruby-Core-Module-constants] in the [readme][readme] and
29
49
  in [inline documentation][inline-documentation]
30
50
 
31
51
  ## <a name="v1.0.0"></a>v1.0.0, Wed 10/29/2014
@@ -36,8 +56,13 @@
36
56
 
37
57
  (First release)
38
58
 
39
- [JRuby]: http://jruby.org
40
- [Ruby-Core-Module-autoload]: http://ruby-doc.org/core/Module.html#method-i-autoload-3F "‘Module#autoload’ method in the Ruby Core Library"
41
- [Ruby-Core-Module-constants]: http://ruby-doc.org/core/Module.html#method-i-constants "‘Module#constants’ method in the Ruby Core Library"
42
- [readme]: http://github.com/njonsson/autoloaded/blob/master/README.md "Autoloaded readme"
43
- [inline-documentation]: http://www.rubydoc.info/github/njonsson/autoloaded "Autoloaded inline documentation"
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"
62
+ [JRuby]: https://www.jruby.org/
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"
64
+ [Ruby-Core-Module-autoload]: https://ruby-doc.org/core/Module.html#method-i-autoload-3F "‘Module#autoload’ method in the Ruby Core Library"
65
+ [Ruby-Core-Module-constants]: https://ruby-doc.org/core/Module.html#method-i-constants "‘Module#constants’ method in the Ruby Core Library"
66
+ [Ruby-Stdlib-Pathname]: https://ruby-doc.org/stdlib/libdoc/pathname/rdoc/Pathname.html "‘Pathname’ class in the Ruby Standard Library"
67
+ [readme]: https://github.com/njonsson/autoloaded/blob/master/README.md "Autoloaded readme"
68
+ [inline-documentation]: https://www.rubydoc.info/github/njonsson/autoloaded "Autoloaded inline documentation"
data/License.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # The MIT License
2
2
 
3
- Source code for _Autoloaded_ is Copyright © 2014 [Nils Jonsson][mail] and
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
@@ -6,18 +6,17 @@
6
6
  [![Code Climate quality report] ][Code-Climate-report]
7
7
  [![Code Climate coverage report]][Code-Climate-report]
8
8
 
9
- [![Gemnasium build status] ][Gemnasium-build-status]
10
9
  [![Inch CI build status] ][Inch-CI-build-status]
11
10
  [![RubyGems release] ][RubyGems-release]
12
11
 
13
- If you like the [_Module#autoload_][Ruby-Core-Module-autoload] feature of the
14
- Ruby Core library, you may have wished for _Autoloaded_. It eliminates the
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
15
14
  drudgery of handcrafting an `autoload` statement for each Ruby source code file
16
15
  in your project. It also avoids the limitations of rigid convention-driven
17
16
  facilities such as those provided by the [ActiveSupport][ActiveSupport-Autoload]
18
17
  RubyGem.
19
18
 
20
- _Autoloaded_ assumes, but does not enforce, `CamelCase`-to-`snake_case`
19
+ *Autoloaded* assumes, but does not enforce, `CamelCase`-to-`snake_case`
21
20
  correspondence between the names of constants and source files. You can combine
22
21
  conventions, even putting multiple autoloaded constants in a single source file.
23
22
 
@@ -27,7 +26,7 @@ Install [the RubyGem][RubyGems-release].
27
26
 
28
27
  $ gem install autoloaded
29
28
 
30
- Use _Autoloaded_ in your RubyGem project by making it a runtime dependency.
29
+ Use *Autoloaded* in your RubyGem project by making it a runtime dependency.
31
30
 
32
31
  ```ruby
33
32
  # my_awesome_gem.gemspec
@@ -39,13 +38,13 @@ Gem::Specification.new do |spec|
39
38
  end
40
39
  ```
41
40
 
42
- Or you may want to make _Autoloaded_ a dependency of your project by using
41
+ Or you may want to make *Autoloaded* a dependency of your project by using
43
42
  [Bundler][Bundler].
44
43
 
45
44
  ```ruby
46
45
  # Gemfile
47
46
 
48
- source 'http://rubygems.org'
47
+ source 'https://rubygems.org'
49
48
 
50
49
  gem 'autoloaded', '~> 2'
51
50
  ```
@@ -66,15 +65,15 @@ Suppose you have the following source files.
66
65
  │  └─ version.rb
67
66
  └─ my_awesome_gem.rb
68
67
 
69
- ### The _Autoloaded.module_ or _Autoloaded.class_ method
68
+ ### The *Autoloaded.module* or *Autoloaded.class* method
70
69
 
71
- The _Autoloaded.module_ and _Autoloaded.class_ method calls below invoke
72
- [_Module#autoload_][Ruby-Core-Module-autoload] for each source file in the
70
+ The *Autoloaded.module* and *Autoloaded.class* method calls below invoke
71
+ [*Module#autoload*][Ruby-Core-Module-autoload] for each source file in the
73
72
  calling module’s corresponding directory. Note that these methods must receive a
74
73
  block, even if it’s an empty block.
75
74
 
76
75
  The file paths used are abbreviated, if possible, using a directory of the Ruby
77
- load path (`$:`). They are also rendered without their _.rb_ extension.
76
+ load path (`$:`). They are also rendered without their *.rb* extension.
78
77
 
79
78
  ```ruby
80
79
  # lib/my_awesome_gem.rb
@@ -152,7 +151,7 @@ MyAwesomeGem::DB::Mysql # Raises NameError because
152
151
 
153
152
  ### The `with` specification
154
153
 
155
- _Autoloaded_ needs hints from you concerning unpredictable spellings,
154
+ *Autoloaded* needs hints from you concerning unpredictable spellings,
156
155
  stylization, and organization of constant names and/or source file names. You can
157
156
  specify `with` as:
158
157
 
@@ -173,21 +172,21 @@ You can specify `with` multiple times, and its effects are cumulative.
173
172
  # lib/my_awesome_gem.rb
174
173
  module MyAwesomeGem
175
174
 
176
- Autoloaded.module do |autoloaded|
177
- autoloaded.with :DB, :VERSION
175
+ Autoloaded.module do |autoloading|
176
+ autoloading.with :DB, :VERSION
178
177
  # Or:
179
- # autoloaded.with :DB
180
- # autoloaded.with :VERSION
178
+ # autoloading.with :DB
179
+ # autoloading.with :VERSION
181
180
  # Or:
182
- # autoloaded.with DB: 'db', VERSION: 'version'
181
+ # autoloading.with DB: 'db', VERSION: 'version'
183
182
  # Or:
184
- # autoloaded.with DB: 'db'
185
- # autoloaded.with VERSION: 'version'
183
+ # autoloading.with DB: 'db'
184
+ # autoloading.with VERSION: 'version'
186
185
  # Or:
187
- # autoloaded.with 'db' => :DB, 'version' => :VERSION
186
+ # autoloading.with 'db' => :DB, 'version' => :VERSION
188
187
  # Or:
189
- # autoloaded.with 'db' => :DB
190
- # autoloaded.with 'version' => :VERSION
188
+ # autoloading.with 'db' => :DB
189
+ # autoloading.with 'version' => :VERSION
191
190
  end
192
191
 
193
192
  # The above is the equivalent of:
@@ -202,20 +201,22 @@ module MyAwesomeGem
202
201
 
203
202
  class DB
204
203
 
205
- Autoloaded.class do |autoloaded|
206
- autoloaded.with :MySQL, :PostgreSQL, [:Access, :SQLServer] => 'MicroSoft'
204
+ Autoloaded.class do |autoloading|
205
+ autoloading.with :MySQL, :PostgreSQL, [:Access, :SQLServer] => 'MicroSoft'
207
206
  # Or:
208
- # autoloaded.with :MySQL,
209
- # :PostgreSQL,
210
- # Access: 'MicroSoft',
211
- # SQLServer: 'MicroSoft'
207
+ # autoloading.with :MySQL,
208
+ # :PostgreSQL,
209
+ # Access: 'MicroSoft',
210
+ # SQLServer: 'MicroSoft'
212
211
  # Or:
213
- # autoloaded.with :MySQL, :PostgreSQL, 'MicroSoft' => [:Access, :SQLServer]
212
+ # autoloading.with :MySQL,
213
+ # :PostgreSQL,
214
+ # 'MicroSoft' => [:Access, :SQLServer]
214
215
  # Or:
215
- # autoloaded.with :MySQL,
216
- # :PostgreSQL,
217
- # 'MicroSoft' => :Access,
218
- # 'MicroSoft' => :SQLServer
216
+ # autoloading.with :MySQL,
217
+ # :PostgreSQL,
218
+ # 'MicroSoft' => :Access,
219
+ # 'MicroSoft' => :SQLServer
219
220
  # Or ...
220
221
  end
221
222
 
@@ -283,12 +284,12 @@ module MyAwesomeGem
283
284
 
284
285
  class DB
285
286
 
286
- Autoloaded.class do |autoloaded|
287
- autoloaded.with :MySQL, :PostgreSQL, [:Access, :SQLServer] => 'MicroSoft'
287
+ Autoloaded.class do |autoloading|
288
+ autoloading.with :MySQL, :PostgreSQL, [:Access, :SQLServer] => 'MicroSoft'
288
289
 
289
- autoloaded.except 'SELF-DESTRUCT!'
290
+ autoloading.except 'SELF-DESTRUCT!'
290
291
  # Or:
291
- # autoloaded.except :SELF_DESTRUCT_
292
+ # autoloading.except :SELF_DESTRUCT_
292
293
  # Or ...
293
294
  end
294
295
 
@@ -340,9 +341,9 @@ cumulative.
340
341
 
341
342
  ### The `from` specification
342
343
 
343
- It’s recommended that you call _Autoloaded.module_ or _Autoloaded.class_ from
344
+ It’s recommended that you call *Autoloaded.module* or *Autoloaded.class* from
344
345
  within the source file where your module or class is defined. This practice
345
- allows _Autoloaded_ to assume that the source files to be autoloaded are in a
346
+ allows *Autoloaded* to assume that the source files to be autoloaded are in a
346
347
  directory of the same name (and in the same location) as the module’s defining
347
348
  source file.
348
349
 
@@ -357,12 +358,12 @@ which source files should be autoloaded.
357
358
 
358
359
  module MyAwesomeGem
359
360
 
360
- Autoloaded.module do |autoloaded|
361
+ Autoloaded.module do |autoloading|
361
362
  # The following code is not actually very useful since the installed location
362
363
  # of a RubyGem varies with the operating system and user preferences. How to
363
364
  # compute the path properly is outside the scope of this readme and is left
364
365
  # as an exercise for the reader.
365
- autoloaded.from '/absolute/path/to/my_awesome_gem'
366
+ autoloading.from '/absolute/path/to/my_awesome_gem'
366
367
  end
367
368
 
368
369
  end
@@ -371,18 +372,18 @@ end
371
372
  A path provided to `from` cannot be relative; it must start with the filesystem
372
373
  root.
373
374
 
374
- If you specify `from` multiple times in an _Autoloaded_ block, only the last one
375
+ If you specify `from` multiple times in an *Autoloaded* block, only the last one
375
376
  takes effect.
376
377
 
377
- ### The _Autoloaded.warn_ method
378
+ ### The *Autoloaded.warn* method
378
379
 
379
- There are two circumstances under which _Autoloaded_ by default will write
380
+ There are two circumstances under which *Autoloaded* by default will write
380
381
  warnings to stderr:
381
382
 
382
383
  * Overriding an established autoload
383
384
  * Establishing an autoload for a defined constant
384
385
 
385
- You can silence these warnings by passing `false` to _Autoloaded.warn_. (Passing
386
+ You can silence these warnings by passing `false` to *Autoloaded.warn*. (Passing
386
387
  `true` turns warnings on if they are off.)
387
388
 
388
389
  ```ruby
@@ -438,7 +439,7 @@ end
438
439
 
439
440
  ### How to debug autoloading
440
441
 
441
- The _Autoloaded.module_ or _Autoloaded.class_ method returns an ordered list of
442
+ The *Autoloaded.module* or *Autoloaded.class* method returns an ordered list of
442
443
  arguments it has passed to `autoload`.
443
444
 
444
445
  ```ruby
@@ -448,9 +449,11 @@ module MyAwesomeGem
448
449
 
449
450
  class DB
450
451
 
451
- results = Autoloaded.class do |autoloaded|
452
- autoloaded.with :MySQL, :PostgreSQL, [:Access, :SQLServer] => 'MicroSoft'
453
- autoloaded.except 'SELF-DESTRUCT!'
452
+ results = Autoloaded.class do |autoloading|
453
+ autoloading.with :MySQL,
454
+ :PostgreSQL,
455
+ [:Access, :SQLServer] => 'MicroSoft'
456
+ autoloading.except 'SELF-DESTRUCT!'
454
457
  end
455
458
  STDOUT.puts results.inspect # See output below.
456
459
 
@@ -465,20 +468,20 @@ end
465
468
  # [:PostgreSQL, 'my_awesome_gem/db/postgre_sql']]
466
469
  ```
467
470
 
468
- You can also hook [_Module#autoload_][Ruby-Core-Module-autoload] and
469
- [_Kernel#autoload_][Ruby-Core-Kernel-autoload] via monkeypatching or other means
471
+ You can also hook [*Module#autoload*][Ruby-Core-Module-autoload] and
472
+ [*Kernel#autoload*][Ruby-Core-Kernel-autoload] via monkeypatching or other means
470
473
  in order to see what’s happening.
471
474
 
472
475
  ### Source filenames are relative to the `from` specification
473
476
 
474
477
  You may have noticed that source filenames in the above examples are not
475
- absolute. They are relative to the _Autoloaded_ block’s `from` specification
478
+ absolute. They are relative to the *Autoloaded* block’s `from` specification
476
479
  (which I recommend that you allow to be computed for you —
477
480
  [see above](#the-from-specification)).
478
481
 
479
482
  ### Recursive autoloading not supported
480
483
 
481
- _Autoloaded_ does not perform deep autoloading of nested namespaces and
484
+ *Autoloaded* does not perform deep autoloading of nested namespaces and
482
485
  directories. This is by design.
483
486
 
484
487
  ## Contributing
@@ -489,6 +492,19 @@ directories. This is by design.
489
492
  4. Push to the branch: `git push origin my-new-feature`.
490
493
  5. [Create][compare-Autoloaded-branches] a new pull request.
491
494
 
495
+ Development
496
+ -----------
497
+
498
+ After cloning the repository, `bin/setup` to install dependencies. Then `rake` to
499
+ run the tests. You can also `bin/console` to get an interactive prompt that will
500
+ allow you to experiment.
501
+
502
+ To install this gem onto your local machine, `bundle exec rake install`. To
503
+ release a new version, update the version number in *lib/autoloaded/version.rb*,
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 *.gem* file to
506
+ [RubyGems.org](RubyGems-release).
507
+
492
508
  ## License
493
509
 
494
510
  Released under the [MIT License][MIT-License].
@@ -497,20 +513,18 @@ Released under the [MIT License][MIT-License].
497
513
  [Travis CI build status]: https://secure.travis-ci.org/njonsson/autoloaded.svg?branch=master
498
514
  [Code Climate quality report]: https://codeclimate.com/github/njonsson/autoloaded/badges/gpa.svg
499
515
  [Code Climate coverage report]: https://codeclimate.com/github/njonsson/autoloaded/badges/coverage.svg
500
- [Gemnasium build status]: https://gemnasium.com/njonsson/autoloaded.svg
501
- [Inch CI build status]: http://inch-ci.org/github/njonsson/autoloaded.svg?branch=master
516
+ [Inch CI build status]: https://www.inch-ci.org/github/njonsson/autoloaded.svg?branch=master
502
517
  [RubyGems release]: https://badge.fury.io/rb/autoloaded.svg
503
518
 
504
- [spider-gear-image]: https://www.flickr.com/photos/dongkwan/4941065976 "spider gear image by Ernesto Andrade"
505
- [Travis-CI-build-status]: http://travis-ci.org/njonsson/autoloaded "Travis CI build status for Autoloaded"
506
- [Code-Climate-report]: http://codeclimate.com/github/njonsson/autoloaded "Code Climate report for Autoloaded"
507
- [Gemnasium-build-status]: http://gemnasium.com/njonsson/autoloaded "Gemnasium build status for Autoloaded"
508
- [Inch-CI-build-status]: http://inch-ci.org/github/njonsson/autoloaded "Inch CI build status for Autoloaded"
509
- [RubyGems-release]: http://rubygems.org/gems/autoloaded "RubyGems release of Autoloaded"
510
- [Ruby-Core-Module-autoload]: http://ruby-doc.org/core/Module.html#method-i-autoload "‘Module#autoloadmethod in the Ruby Core Library"
511
- [ActiveSupport-Autoload]: http://api.rubyonrails.org/classes/ActiveSupport/Autoload.html "‘ActiveSupport::Autoload’ module in the Rails API"
512
- [Bundler]: http://bundler.io
513
- [Ruby-Core-Kernel-autoload]: http://ruby-doc.org/core/Kernel.html#method-i-autoload "‘Kernel#autoload’ method in the Ruby Core Library"
514
- [fork-Autoloaded]: https://github.com/njonsson/autoloaded/fork "Fork the official repository of Autoloaded"
515
- [compare-Autoloaded-branches]: https://github.com/njonsson/autoloaded/compare "Compare branches of Autoloaded repositories"
516
- [MIT-License]: http://github.com/njonsson/autoloaded/blob/master/License.md "MIT License claim for Autoloaded"
519
+ [spider-gear-image]: https://www.flickr.com/photos/dongkwan/4941065976 "spider gear image by Ernesto Andrade"
520
+ [Travis-CI-build-status]: https://www.travis-ci.org/njonsson/autoloaded "Travis CI build status for Autoloaded"
521
+ [Code-Climate-report]: https://codeclimate.com/github/njonsson/autoloaded "Code Climate report for Autoloaded"
522
+ [Inch-CI-build-status]: https://www.inch-ci.org/github/njonsson/autoloaded "Inch CI build status for Autoloaded"
523
+ [RubyGems-release]: https://rubygems.org/gems/autoloaded "RubyGems release of Autoloaded"
524
+ [Ruby-Core-Module-autoload]: https://ruby-doc.org/core/Module.html#method-i-autoload "‘Module#autoload’ method in the Ruby Core Library"
525
+ [ActiveSupport-Autoload]: https://api.rubyonrails.org/classes/ActiveSupport/Autoload.html "‘ActiveSupport::Autoloadmodule in the Rails API"
526
+ [Bundler]: https://bundler.io/
527
+ [Ruby-Core-Kernel-autoload]: https://ruby-doc.org/core/Kernel.html#method-i-autoload "‘Kernel#autoload’ method in the Ruby Core Library"
528
+ [fork-Autoloaded]: https://github.com/njonsson/autoloaded/fork "Fork the official repository of Autoloaded"
529
+ [compare-Autoloaded-branches]: https://github.com/njonsson/autoloaded/compare "Compare branches of Autoloaded repositories"
530
+ [MIT-License]: https://github.com/njonsson/autoloaded/blob/master/License.md "MIT License claim for Autoloaded"
data/Rakefile CHANGED
@@ -1,2 +1,6 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require_relative 'lib/tasks'
3
+
4
+ desc 'Run all specs'
5
+ task '' => :spec
6
+ task default: :spec