Sha256: 9f3d630255ca067ecb1c59fe79e354c3757befec3d8cd051d766af11c7792553

Contents?: true

Size: 1.82 KB

Versions: 10

Compression:

Stored size: 1.82 KB

Contents

# frozen_string_literal: true
#
#   use-loader.rb -
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#

require_relative "../command/load"
require_relative "loader"

class Object
  alias __original__load__IRB_use_loader__ load
  alias __original__require__IRB_use_loader__ require
end

module IRB
  module ExtendCommandBundle
    remove_method :irb_load if method_defined?(:irb_load)
    # Loads the given file similarly to Kernel#load, see IrbLoader#irb_load
    def irb_load(*opts, &b)
      Command::Load.execute(irb_context, *opts, &b)
    end
    remove_method :irb_require if method_defined?(:irb_require)
    # Loads the given file similarly to Kernel#require
    def irb_require(*opts, &b)
      Command::Require.execute(irb_context, *opts, &b)
    end
  end

  class Context

    IRB.conf[:USE_LOADER] = false

    # Returns whether +irb+'s own file reader method is used by
    # +load+/+require+ or not.
    #
    # This mode is globally affected (irb-wide).
    def use_loader
      IRB.conf[:USE_LOADER]
    end

    alias use_loader? use_loader

    remove_method :use_loader= if method_defined?(:use_loader=)
    # Sets <code>IRB.conf[:USE_LOADER]</code>
    #
    # See #use_loader for more information.
    def use_loader=(opt)

      if IRB.conf[:USE_LOADER] != opt
        IRB.conf[:USE_LOADER] = opt
        if opt
          (class<<workspace.main;self;end).instance_eval {
            alias_method :load, :irb_load
            alias_method :require, :irb_require
          }
        else
          (class<<workspace.main;self;end).instance_eval {
            alias_method :load, :__original__load__IRB_use_loader__
            alias_method :require, :__original__require__IRB_use_loader__
          }
        end
      end
      print "Switch to load/require#{unless use_loader; ' non';end} trace mode.\n" if verbose?
      opt
    end
  end
end

Version data entries

10 entries across 10 versions & 3 rubygems

Version Path
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/irb-1.14.0/lib/irb/ext/use-loader.rb
irb-1.14.3 lib/irb/ext/use-loader.rb
irb-1.14.2 lib/irb/ext/use-loader.rb
irb-1.14.1 lib/irb/ext/use-loader.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/irb-1.13.2/lib/irb/ext/use-loader.rb
irb-1.14.0 lib/irb/ext/use-loader.rb
irb-1.13.2 lib/irb/ext/use-loader.rb
irb-1.13.1 lib/irb/ext/use-loader.rb
irb-1.13.0 lib/irb/ext/use-loader.rb
irb-1.12.0 lib/irb/ext/use-loader.rb