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
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 CREDIT: George Moschovitis
This method is also aliased as
bit!
[ + ]
# File lib/core/facets/bitmask.rb, line 15 def bit(bit) if bit < 0 mask = (1 << ~bit) self & ~mask else mask = (1 << bit) self | mask end end
Alias for bit
Is a bit set?
8.bit?(3) #=> true 8.bit?(2) #=> false CREDIT: Thomas Sawyer CREDIT: George Moschovitis
[ + ]
# File lib/core/facets/bitmask.rb, line 45 def bit?(bit) mask = (1 << bit) (self & mask) != 0 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
This method is also aliased as
bitmask!
[ + ]
# File lib/core/facets/bitmask.rb, line 61 def bitmask(mask) if mask < 0 self & mask else self | mask end end
Alias for bitmask
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 80 def bitmask?(mask) (self & mask) != 0 end
Clear bit.
CREDIT: George Moschovitis
[ + ]
# File lib/core/facets/bitmask.rb, line 32 def clear_bit(bit) mask = (1 << bit) self & ~mask end
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
Alias for 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
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
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
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
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
Alias for ordinal
See Float#round_at.
[ + ]
# File lib/core/facets/numeric/round.rb, line 27 def round_at(*args) to_f.round_at(*args) end
See Float#round_to.
[ + ]
# File lib/core/facets/numeric/round.rb, line 33 def round_to(*args) to_f.round_to(*args) end
Alias for of
Alias for of