Methods
bit bit! bit? bitmask bitmask! bitmask? clear_bit even? fac factorial multiple? odd? of ordinal ordinalize round_at round_to times_collect times_map
Public Instance methods
bit(bit)

Set a bit.

  0.bit!(4)  #=> 8

Using an inverted bit will clear a bit.

  10.bit!(~3)      #=> 2
  0xb0100.bit(~3)  #=> 0

CREDIT: Thomas Sawyer, George Moschovitis

This method is also aliased as bit!
# File lib/core/facets/bitmask.rb, line 14
  def bit(bit)
    if bit < 0
      mask = (1 << ~bit)
      self & ~mask
    else
      mask = (1 << bit)
      self | mask
    end
  end
bit!(bit)

Alias for bit

bit?(bit)

Is a bit set?

  8.bit?(3)  #=> true
  8.bit?(2)  #=> false

CREDIT: Thomas Sawyer, George Moschovitis

# File lib/core/facets/bitmask.rb, line 43
  def bit?(bit)
    mask = (1 << bit)
    (self & mask) != 0
  end
bitmask(mask)

Apply a bitmask.

  1.bitmask(6) #=> 7

Using a inverted bitmask clears bits.

  7.bitmask(~2) #=> 5
  5.bitmask(~2) #=> 5

CREDIT: George Moschovitis

This method is also aliased as bitmask!
# File lib/core/facets/bitmask.rb, line 59
  def bitmask(mask)
    if mask < 0
      self & mask
    else
      self | mask
    end
  end
bitmask!(mask)

Alias for bitmask

bitmask?(mask)

Is bitmask set?

  7.bitmask?(7) #=> true
  7.bitmask?(5) #=> true
  8.bitmask?(3) #=> false

CREDIT: George Moschovitis

# File lib/core/facets/bitmask.rb, line 78
  def bitmask?(mask)
    (self & mask) != 0
  end
clear_bit(bit)

Clear bit.

CREDIT: George Moschovitis

# File lib/core/facets/bitmask.rb, line 31
  def clear_bit(bit)
    mask = (1 << bit)
    self & ~mask
  end
even?()

Returns true if this integer is even, false otherwise.

  2.even?  #=> true
  3.even?  #=> false

CREDIT: Daniel Schierbeck

# File lib/core/facets/integer/odd.rb, line 27
    def even?
      #self % 2 == 0
      self & 1 == 0
    end
fac()

Alias for factorial

factorial()

Calculate the factorial of an integer.

  2.factorial  #=> 2
  3.factorial  #=> 6
  3.factorial  #=> 24

CREDIT: Malte Milatz

This method is also aliased as fac
# File lib/core/facets/integer/factorial.rb, line 11
  def factorial
    return 1 if zero?
    f = 1
    2.upto(self) { |n| f *= n }
    f
  end
multiple?(number)

Is is a multiple of a given number?

  7.multiple?(2)  #=> false
  8.multiple?(2)  #=> true

CREDIT: Trans

# File lib/core/facets/integer/multiple.rb, line 10
  def multiple?(number)
    self % number == 0
  end
odd?()

Returns true if this integer is odd, false otherwise.

  2.odd?            #=> false
  3.odd?            #=> true

  -99.odd?          # -> true
  -98.odd?          # -> false

CREDIT: Daniel Schierbeck

# File lib/core/facets/integer/odd.rb, line 15
    def odd?
      #self % 2 == 1
      self & 1 == 1
    end
of(&block)

Like times but returns a collection of the yield results.

  a = 3.of { |i| "#{i+1}" }
  a => [ "1", "2", "3" ]
This method is also aliased as times_collect times_map
# File lib/core/facets/integer/of.rb, line 9
  def of(&block)
    Array.new(self, &block)
  end
ordinal()
This method is also aliased as ordinalize
# File lib/core/facets/integer/ordinal.rb, line 3
  def ordinal
    if [11,12,13].include?(self % 100)
      "#{self}th"
    else
      case (self % 10)
      when 1
        "#{self}st"
      when 2
        "#{self}nd"
      when 3
        "#{self}rd"
      else
        "#{self}th"
      end
    end
  end
ordinalize()

Alias for ordinal

round_at(*args)
# File lib/core/facets/numeric/round.rb, line 27
  def round_at(*args)
    to_f.round_at(*args)
  end
round_to(*args)
# File lib/core/facets/numeric/round.rb, line 33
  def round_to(*args)
    to_f.round_to(*args)
  end
times_collect(&block)

Alias for of

times_map(&block)

Alias for of