Sha256: 1f3a8700a0ec0b44d207cc17247f794dcfddd43a0ee970333f9515000a0db1c1

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

module Math
  unless (log(2, 2) rescue false)
    # Standard in Ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Math.html]
    class << self
      def log_with_optional_base(numeric, base = Backports::Undefined)
        if base.equal?(Backports::Undefined)
          # Math.log(n) in 1.9.1 no longer accepts string arguments as it
          # did on 1.8.x, but we won't risk redefining existing behavior
          # when called with just one argument.
          log_without_optional_base(numeric)
        else
          # Math.log(n, b) in 1.9.1 does not accept string arguments:
          raise TypeError, "can't convert String into Float" if numeric.is_a?(String) || base.is_a?(String)
          log_without_optional_base(numeric) / log_without_optional_base(base)
        end
      end
      Backports.alias_method_chain self, :log, :optional_base

      # Standard in Ruby 1.9. See official documentation[http://ruby-doc.org/core-1.9/classes/Math.html]
      def log2(numeric)
        log(numeric, 2)
      end unless method_defined? :log2
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
backports-3.0.3 lib/backports/1.9.1/math.rb