Sha256: e14593431c5d37739a3d513dbd90430301ce60e2de7feb58ac9624a5de65d090

Contents?: true

Size: 1.28 KB

Versions: 17

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module Datadog
  module Core
    # This module is used to provide features from Ruby 2.5+ to older Rubies
    module BackportFrom25
      if ::String.method_defined?(:delete_prefix)
        def self.string_delete_prefix(string, prefix)
          string.delete_prefix(prefix)
        end
      else
        def self.string_delete_prefix(string, prefix)
          prefix = prefix.to_s
          if string.start_with?(prefix)
            string[prefix.length..-1] || raise('rbs-guard: String#[] is non-nil as `prefix` is guaranteed present')
          else
            string.dup
          end
        end
      end
    end

    # This module is used to provide features from Ruby 2.4+ to older Rubies
    module BackportFrom24
      if RUBY_VERSION < '2.4'
        def self.dup(value)
          case value
          when NilClass, TrueClass, FalseClass, Numeric
            value
          else
            value.dup
          end
        end
      else
        def self.dup(value)
          value.dup
        end
      end

      if ::Hash.method_defined?(:compact!)
        def self.hash_compact!(hash)
          hash.compact!
        end
      else
        def self.hash_compact!(hash)
          hash.reject! { |_key, value| value.nil? }
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
ddtrace-1.23.3 lib/datadog/core/backport.rb
ddtrace-1.23.2 lib/datadog/core/backport.rb
ddtrace-1.23.1 lib/datadog/core/backport.rb
ddtrace-1.22.0 lib/datadog/core/backport.rb
ddtrace-1.21.1 lib/datadog/core/backport.rb
ddtrace-1.21.0 lib/datadog/core/backport.rb
ddtrace-1.20.0 lib/datadog/core/backport.rb
ddtrace-1.19.0 lib/datadog/core/backport.rb
ddtrace-1.18.0 lib/datadog/core/backport.rb
ddtrace-1.17.0 lib/datadog/core/backport.rb
ddtrace-1.16.2 lib/datadog/core/backport.rb
ddtrace-1.16.1 lib/datadog/core/backport.rb
ddtrace-1.16.0 lib/datadog/core/backport.rb
ddtrace-1.15.0 lib/datadog/core/backport.rb
ddtrace-1.14.0 lib/datadog/core/backport.rb
ddtrace-1.13.1 lib/datadog/core/backport.rb
ddtrace-1.13.0 lib/datadog/core/backport.rb