pry--pry/lib/pry/forwardable.rb

24 lines
741 B
Ruby
Raw Normal View History

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
2017-06-04 21:28:25 +00:00
class_eval { private(*private_delegates) }
end
end
end