Calculate the number of digits in an integer.
1.length #=> 1 10.length #=> 2 100.length #=> 3
CREDIT: Victor H. Goff III
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
# File lib/core/facets/bitmask.rb, line 14
14: def bit(bit)
15: if bit < 0
16: mask = (1 << ~bit)
17: self & ~mask
18: else
19: mask = (1 << bit)
20: self | mask
21: end
22: 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 31
31: def even?
32: #self % 2 == 0
33: self & 1 == 0
34: 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
15: def odd?
16: #self % 2 == 1
17: self & 1 == 1
18: end
# File lib/core/facets/integer/ordinal.rb, line 3
3: def ordinal
4: if [11,12,13].include?(self % 100)
5: "#{self}th"
6: else
7: case (self % 10)
8: when 1
9: "#{self}st"
10: when 2
11: "#{self}nd"
12: when 3
13: "#{self}rd"
14: else
15: "#{self}th"
16: end
17: end
18: end
See Float#round_at.
# File lib/core/facets/numeric/round.rb, line 27
27: def round_at(*args)
28: to_f.round_at(*args)
29: end
See Float#round_to.
# File lib/core/facets/numeric/round.rb, line 33
33: def round_to(*args)
34: to_f.round_to(*args)
35: end