├── .gem_release.yml ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── docs-lint.yml │ ├── jruby-test.yml │ ├── rubocop.yml │ ├── test-edge.yml │ ├── test.yml │ └── truffle-test.yml ├── .gitignore ├── .mdlrc ├── .rubocop-md.yml ├── .rubocop.yml ├── CHANGELOG.md ├── Gemfile ├── LICENSE.txt ├── README.md ├── RELEASING.md ├── bin └── mspec ├── default.mspec ├── forspell.dict ├── gemfiles └── rubocop.gemfile ├── lib ├── require-hooks.rb └── require-hooks │ ├── api.rb │ ├── mode │ ├── bootsnap.rb │ ├── kernel_patch.rb │ └── load_iseq.rb │ ├── setup.rb │ └── version.rb ├── require-hooks.gemspec └── spec ├── core └── kernel │ ├── load_spec.rb │ ├── require_relative_spec.rb │ ├── require_spec.rb │ └── shared │ ├── load.rb │ ├── require.rb │ └── then.rb ├── fixtures ├── code │ ├── a │ │ ├── load_fixture.bundle │ │ ├── load_fixture.dll │ │ ├── load_fixture.dylib │ │ └── load_fixture.so │ ├── b │ │ └── load_fixture.rb │ ├── concurrent.rb │ ├── concurrent2.rb │ ├── concurrent3.rb │ ├── concurrent_require_fixture.rb │ ├── file_fixture.rb │ ├── gem │ │ └── load_fixture.rb │ ├── line_fixture.rb │ ├── load_ext_fixture.rb │ ├── load_fixture │ ├── load_fixture.bundle │ ├── load_fixture.dll │ ├── load_fixture.dylib │ ├── load_fixture.ext │ ├── load_fixture.ext.bundle │ ├── load_fixture.ext.dll │ ├── load_fixture.ext.dylib │ ├── load_fixture.ext.rb │ ├── load_fixture.ext.so │ ├── load_fixture.rb │ ├── load_fixture.so │ ├── load_fixture_and__FILE__.rb │ ├── load_wrap_fixture.rb │ ├── load_wrap_method_fixture.rb │ ├── methods_fixture.rb │ ├── raise_fixture.rb │ ├── recursive_load_fixture.rb │ ├── recursive_require_fixture.rb │ └── symlink │ │ ├── symlink1.rb │ │ └── symlink2 │ │ └── symlink2.rb └── code_loading.rb ├── require-hooks ├── around_load_spec.rb ├── bootsnap_spec.rb ├── fixtures │ ├── bootsnap-syntax-error.rb │ ├── bootsnap.rb │ ├── freeze.rb │ ├── hello.rb │ ├── hi_jack.rb │ └── syntax_error.rb ├── hijack_load_spec.rb └── source_transform_spec.rb ├── spec_helper.rb └── support └── command_testing.rb /.gem_release.yml: -------------------------------------------------------------------------------- 1 | bump: 2 | file: lib/require-hooks/version.rb 3 | skip_ci: true 4 | 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/docs-lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/workflows/docs-lint.yml -------------------------------------------------------------------------------- /.github/workflows/jruby-test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/workflows/jruby-test.yml -------------------------------------------------------------------------------- /.github/workflows/rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/workflows/rubocop.yml -------------------------------------------------------------------------------- /.github/workflows/test-edge.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/workflows/test-edge.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.github/workflows/truffle-test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.github/workflows/truffle-test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.gitignore -------------------------------------------------------------------------------- /.mdlrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.mdlrc -------------------------------------------------------------------------------- /.rubocop-md.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.rubocop-md.yml -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/README.md -------------------------------------------------------------------------------- /RELEASING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/RELEASING.md -------------------------------------------------------------------------------- /bin/mspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/bin/mspec -------------------------------------------------------------------------------- /default.mspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/default.mspec -------------------------------------------------------------------------------- /forspell.dict: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/forspell.dict -------------------------------------------------------------------------------- /gemfiles/rubocop.gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/gemfiles/rubocop.gemfile -------------------------------------------------------------------------------- /lib/require-hooks.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/lib/require-hooks.rb -------------------------------------------------------------------------------- /lib/require-hooks/api.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/lib/require-hooks/api.rb -------------------------------------------------------------------------------- /lib/require-hooks/mode/bootsnap.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/lib/require-hooks/mode/bootsnap.rb -------------------------------------------------------------------------------- /lib/require-hooks/mode/kernel_patch.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/lib/require-hooks/mode/kernel_patch.rb -------------------------------------------------------------------------------- /lib/require-hooks/mode/load_iseq.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/lib/require-hooks/mode/load_iseq.rb -------------------------------------------------------------------------------- /lib/require-hooks/setup.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/lib/require-hooks/setup.rb -------------------------------------------------------------------------------- /lib/require-hooks/version.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | module RequireHooks 4 | VERSION = "0.2.2" 5 | end 6 | -------------------------------------------------------------------------------- /require-hooks.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/require-hooks.gemspec -------------------------------------------------------------------------------- /spec/core/kernel/load_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/core/kernel/load_spec.rb -------------------------------------------------------------------------------- /spec/core/kernel/require_relative_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/core/kernel/require_relative_spec.rb -------------------------------------------------------------------------------- /spec/core/kernel/require_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/core/kernel/require_spec.rb -------------------------------------------------------------------------------- /spec/core/kernel/shared/load.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/core/kernel/shared/load.rb -------------------------------------------------------------------------------- /spec/core/kernel/shared/require.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/core/kernel/shared/require.rb -------------------------------------------------------------------------------- /spec/core/kernel/shared/then.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/core/kernel/shared/then.rb -------------------------------------------------------------------------------- /spec/fixtures/code/a/load_fixture.bundle: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_bundle 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/a/load_fixture.dll: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_dll 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/a/load_fixture.dylib: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_dylib 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/a/load_fixture.so: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_so 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/b/load_fixture.rb: -------------------------------------------------------------------------------- 1 | ScratchPad << :loaded 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/concurrent.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/concurrent.rb -------------------------------------------------------------------------------- /spec/fixtures/code/concurrent2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/concurrent2.rb -------------------------------------------------------------------------------- /spec/fixtures/code/concurrent3.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/concurrent3.rb -------------------------------------------------------------------------------- /spec/fixtures/code/concurrent_require_fixture.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/concurrent_require_fixture.rb -------------------------------------------------------------------------------- /spec/fixtures/code/file_fixture.rb: -------------------------------------------------------------------------------- 1 | ScratchPad << __FILE__ 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/gem/load_fixture.rb: -------------------------------------------------------------------------------- 1 | ScratchPad << :loaded_gem 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/line_fixture.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/line_fixture.rb -------------------------------------------------------------------------------- /spec/fixtures/code/load_ext_fixture.rb: -------------------------------------------------------------------------------- 1 | ScratchPad << :loaded 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture: -------------------------------------------------------------------------------- 1 | ScratchPad << :no_ext 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.bundle: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_bundle 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.dll: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_dll 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.dylib: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_dylib 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.ext: -------------------------------------------------------------------------------- 1 | ScratchPad << :no_rb_ext 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.ext.bundle: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_bundle 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.ext.dll: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_dll 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.ext.dylib: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_dylib 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.ext.rb: -------------------------------------------------------------------------------- 1 | ScratchPad << :loaded 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.ext.so: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_so 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.rb: -------------------------------------------------------------------------------- 1 | ScratchPad << :loaded 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture.so: -------------------------------------------------------------------------------- 1 | ScratchPad << :ext_so 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_fixture_and__FILE__.rb: -------------------------------------------------------------------------------- 1 | ScratchPad << __FILE__ 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/load_wrap_fixture.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/load_wrap_fixture.rb -------------------------------------------------------------------------------- /spec/fixtures/code/load_wrap_method_fixture.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/load_wrap_method_fixture.rb -------------------------------------------------------------------------------- /spec/fixtures/code/methods_fixture.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/methods_fixture.rb -------------------------------------------------------------------------------- /spec/fixtures/code/raise_fixture.rb: -------------------------------------------------------------------------------- 1 | raise "Exception loading a file" 2 | -------------------------------------------------------------------------------- /spec/fixtures/code/recursive_load_fixture.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/recursive_load_fixture.rb -------------------------------------------------------------------------------- /spec/fixtures/code/recursive_require_fixture.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/recursive_require_fixture.rb -------------------------------------------------------------------------------- /spec/fixtures/code/symlink/symlink1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code/symlink/symlink1.rb -------------------------------------------------------------------------------- /spec/fixtures/code/symlink/symlink2/symlink2.rb: -------------------------------------------------------------------------------- 1 | ScratchPad << :loaded 2 | -------------------------------------------------------------------------------- /spec/fixtures/code_loading.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/fixtures/code_loading.rb -------------------------------------------------------------------------------- /spec/require-hooks/around_load_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/around_load_spec.rb -------------------------------------------------------------------------------- /spec/require-hooks/bootsnap_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/bootsnap_spec.rb -------------------------------------------------------------------------------- /spec/require-hooks/fixtures/bootsnap-syntax-error.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/fixtures/bootsnap-syntax-error.rb -------------------------------------------------------------------------------- /spec/require-hooks/fixtures/bootsnap.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/fixtures/bootsnap.rb -------------------------------------------------------------------------------- /spec/require-hooks/fixtures/freeze.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/fixtures/freeze.rb -------------------------------------------------------------------------------- /spec/require-hooks/fixtures/hello.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/fixtures/hello.rb -------------------------------------------------------------------------------- /spec/require-hooks/fixtures/hi_jack.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/fixtures/hi_jack.rb -------------------------------------------------------------------------------- /spec/require-hooks/fixtures/syntax_error.rb: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | def x in y = 0 4 | -------------------------------------------------------------------------------- /spec/require-hooks/hijack_load_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/hijack_load_spec.rb -------------------------------------------------------------------------------- /spec/require-hooks/source_transform_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/require-hooks/source_transform_spec.rb -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/spec_helper.rb -------------------------------------------------------------------------------- /spec/support/command_testing.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ruby-next/require-hooks/HEAD/spec/support/command_testing.rb --------------------------------------------------------------------------------