class ReloaderInterceptor::Wrapper

Public Class Methods

initialize(*options) click to toggle source
# File lib/reloader_interceptor/wrapper.rb, line 69
def initialize(*options)
  @options = options
end
wrap(klass) click to toggle source

@param [Class] klass An original class. @return [Class] A wrapping class. Return the original one if

`ReloaderInterceptor` is disabled.
# File lib/reloader_interceptor/wrapper.rb, line 54
def wrap(klass)
  return klass unless ReloaderInterceptor.enabled?

  klass_name = klass.name
  Class.new(klass.superclass) do
    extend Wrapper::DSL

    # Define `.name` and `.inspect` to mimic the original class.
    self.define_singleton_method :name do
      klass_name
    end
    self.define_singleton_method :inspect do
      klass_name
    end

    def initialize(*options)
      @options = options
    end

    define_instance_methods_using_class_name(self, klass)
    define_singleton_methods_using_class_name(self, klass)
  end
end