module Spectre::Delegator

Core Modules

Public Class Methods

delegate(*methods, target) click to toggle source
Calls superclass method
# File lib/spectre.rb, line 347
def self.delegate(*methods, target)
  methods.each do |method_name|
    define_method(method_name) do |*args, &block|
      return super(*args, &block) if respond_to? method_name
      target.send(method_name, *args, &block)
    end

    @@mappings[method_name] = target

    private method_name
  end
end
redirect(method_name, *args, **kwargs, &block) click to toggle source
# File lib/spectre.rb, line 360
def self.redirect method_name, *args, **kwargs, &block
  target = @@mappings[method_name]
  raise "No method or variable '#{method_name}' defined" if !target
  target.send(method_name, *args, **kwargs, &block)
end