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