Sha256: fa2733b57a80f1400d9024a452af3aab2abb0ff63977b65da07910abec8fcafe

Contents?: true

Size: 728 Bytes

Versions: 1

Compression:

Stored size: 728 Bytes

Contents

module Rambling
  module Trie
    # Provides delegation behavior.
    module Forwardable
      # Custom delegation behavior due to Ruby 2.4 delegation performance
      # degradation. See {https://bugs.ruby-lang.org/issues/13111 Bug #13111}.
      # @param [Hash] methods_to_target a Hash consisting of the methods to be
      #   delegated and the target to delegate those methods to.
      # @return [Hash] the `methods_to_target` parameter.
      def delegate methods_to_target
        methods_to_target.each do |methods, target|
          methods.each do |method|
            define_method method do |*args|
              send(target).send method, *args
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rambling-trie-1.0.0 lib/rambling/trie/forwardable.rb