mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
23 lines
741 B
Ruby
23 lines
741 B
Ruby
class Pry
|
|
module Forwardable
|
|
require 'forwardable'
|
|
include ::Forwardable
|
|
|
|
#
|
|
# Since Ruby 2.4, Forwardable will print a warning when
|
|
# calling a method that is private on a delegate, and
|
|
# in the future it could be an error: https://bugs.ruby-lang.org/issues/12782#note-3
|
|
#
|
|
# That's why we revert to a custom implementation for delegating one
|
|
# private method to another.
|
|
#
|
|
def def_private_delegators(target, *private_delegates)
|
|
private_delegates.each do |private_delegate|
|
|
define_method(private_delegate) do |*a, &b|
|
|
instance_variable_get(target).__send__(private_delegate, *a, &b)
|
|
end
|
|
end
|
|
class_eval { private(*private_delegates) }
|
|
end
|
|
end
|
|
end
|