Sha256: 6c09bc2fd42736faec83299f56f08baadbe5c26698525367c57159fed056686e

Contents?: true

Size: 872 Bytes

Versions: 16

Compression:

Stored size: 872 Bytes

Contents

#!/usr/bin/env ruby
# -*- encoding: utf-8 -*-
# Copyright Steffie Dorn <mail@muflax.com>, 2017
# License: GNU APGLv3 (or later) <http://www.gnu.org/copyleft/gpl.html>

class Numeric
  def round_into num
    ((self / num) / num + 1) * num
  end

  def round_to num
    (self / num.to_f).round * num
  end

  def multiple_of?(number)
    number != 0 ? self % number == 0 : zero?
  end

  DELIMITER_REGEX = /(\d)(?=(\d\d\d)+(?!\d))/

  def delimit delimiter="_"
    left, right = self.to_s.split(".")
    left.gsub!(DELIMITER_REGEX) do |digit_to_delimit|
      "#{digit_to_delimit}#{delimiter}"
    end

    [left, right].compact.join(".")
  end

  def prime?
    return false if self < 2

    not (2..(Math.sqrt(self))).any?{|f| self.multiple_of? f}
  end

  def factorial
    Math.factorial self
  end

  def factors
    (1..self).select{|f| self.multiple_of? f}
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
muflax-0.5.5 lib/muflax/num.rb
muflax-0.5.3 lib/muflax/num.rb
muflax-0.5.2 lib/muflax/num.rb
muflax-0.5.1 lib/muflax/num.rb
muflax-0.5.0 lib/muflax/num.rb
muflax-0.4.2 lib/muflax/num.rb
muflax-0.4.1 lib/muflax/num.rb
muflax-0.4.0 lib/muflax/num.rb
muflax-0.3.23 lib/muflax/num.rb
muflax-0.3.22 lib/muflax/num.rb
muflax-0.3.21 lib/muflax/num.rb
muflax-0.3.20 lib/muflax/num.rb
muflax-0.3.19 lib/muflax/num.rb
muflax-0.3.18 lib/muflax/num.rb
muflax-0.3.17 lib/muflax/num.rb
muflax-0.3.16 lib/muflax/num.rb