Module: RequireHooks::KernelPatch

Defined in:
lib/require-hooks/mode/kernel_patch.rb

Defined Under Namespace

Modules: Features

Class Method Summary collapse

Class Method Details

.load(path, ctx: nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/require-hooks/mode/kernel_patch.rb', line 8

def load(path, ctx: nil)
  ctx ||= RequireHooks.context_for(path)

  ctx.run_around_load_callbacks(path) do
    next load_without_require_hooks(path) unless ctx.source_transform? || ctx.hijack?

    new_contents = ctx.perform_source_transform(path)
    hijacked = ctx.try_hijack_load(path, new_contents)

    return try_evaluate(path, hijacked) if hijacked

    if new_contents
      evaluate(new_contents, path)
      true
    else
      load_without_require_hooks(path)
    end
  end
end