Sha256: bc7a98b7e962594e013f38f3272af6e97b058b1c4d53d833085102b0e92ba5fe

Contents?: true

Size: 783 Bytes

Versions: 100

Compression:

Stored size: 783 Bytes

Contents

module OpsManagerUiDrivers
  module BackportRefinements
    def self.should_refine?
      Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.3.0")
    end

    def self.ported_dig(obj, indices)
      head = indices.first
      new_obj = obj[head]
      if indices.count == 1
        new_obj
      elsif new_obj == nil
        return nil
      else
        tail = indices[1..-1]
        ported_dig(new_obj, tail)
      end
    end

    refine Array do
      next unless BackportRefinements.should_refine?

      def dig(*indices)
        BackportRefinements.ported_dig(self, indices)
      end
    end

    refine Hash do
      next unless BackportRefinements.should_refine?

      def dig(*indices)
        BackportRefinements.ported_dig(self, indices)
      end
    end
  end
end

Version data entries

100 entries across 100 versions & 1 rubygems

Version Path
ops_manager_ui_drivers-2.42.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.41.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.40.1 lib/backport_refinements.rb
ops_manager_ui_drivers-2.40.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.39.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.38.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.37.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.36.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.35.2 lib/backport_refinements.rb
ops_manager_ui_drivers-2.35.1 lib/backport_refinements.rb
ops_manager_ui_drivers-2.35.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.34.1 lib/backport_refinements.rb
ops_manager_ui_drivers-2.34.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.33.1 lib/backport_refinements.rb
ops_manager_ui_drivers-2.33.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.32.1 lib/backport_refinements.rb
ops_manager_ui_drivers-2.32.0 lib/backport_refinements.rb
ops_manager_ui_drivers-2.31.3 lib/backport_refinements.rb
ops_manager_ui_drivers-2.31.2 lib/backport_refinements.rb
ops_manager_ui_drivers-2.31.1 lib/backport_refinements.rb