Class Integer
In: lib/facets/core/facets/integer/of.rb
lib/facets/core/facets/integer/odd.rb
lib/facets/core/facets/integer/bitmask.rb
lib/facets/core/facets/integer/ordinal.rb
lib/facets/core/facets/integer/factorial.rb
lib/facets/core/facets/integer/multiple.rb
Parent: Object

Methods

bit   bit?   bit_clear   bitmask   bitmask?   even?   fac   factorial   multiple?   odd?   of   ordinal   ordinalize   times_collect   times_map  

Public Instance methods

Set a bit.

  0.bit(4)  #=> 16

Using a negative figure will clear a bit.

  10.bit(-4)      #=> 2

This is more easily seen using binary.

  0b0100.bit(-3)  #=> 0

CREDIT: Thomas Sawyer, George Moschovitis

[Source]

# File lib/facets/core/facets/integer/bitmask.rb, line 17
  def bit(bit)
    if bit < 0
      mask = (1 << ~bit)
      self & ~mask
    else
      mask = (1 << bit)
      self | mask
    end
  end

Is a bit set?

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

CREDIT: Thomas Sawyer, George Moschovitis

[Source]

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

Clear bit.

CREDIT: George Moschovitis

[Source]

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

Apply a bitmask.

  1.bitmask(6) #=> 7

Using a inverted bitmask clears bits.

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

CREDIT: George Moschovitis

[Source]

# File lib/facets/core/facets/integer/bitmask.rb, line 59
  def bitmask(mask)
    if mask < 0
      self & mask
    else
      self | mask
    end
  end

Is bitmask set?

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

CREDIT: George Moschovitis

[Source]

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

Returns true if this integer is even, false otherwise.

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

CREDIT: Daniel Schierbeck

[Source]

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

Alias for factorial

Calculate the factorial of an integer.

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

CREDIT: Malte Milatz

[Source]

# File lib/facets/core/facets/integer/factorial.rb, line 11
  def factorial
    return 1 if zero?
    f = 1
    2.upto(self) { |n| f *= n }
    f
  end

Is self a multiple of a given number?

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

CREDIT: Trans

[Source]

# File lib/facets/core/facets/integer/multiple.rb, line 10
  def multiple?(number)
    if number.zero?
      zero? ? true : false
    else
      self % number == 0
    end
  end

Returns true if this integer is odd, false otherwise.

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

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

CREDIT: Daniel Schierbeck

[Source]

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

Like times but returns a collection of the yield results.

  a = 3.of { |i| "#{i+1}" }
  a #=> [ "1", "2", "3" ]

[Source]

# File lib/facets/core/facets/integer/of.rb, line 9
  def of(&block)
    Array.new(self, &block)
  end

[Source]

# File lib/facets/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

times_collect(&block)

Alias for of

times_map(&block)

Alias for of

[Validate]