class Integer
Private Class Methods
_origin(name)
click to toggle source
# File lib/ruby_hex/integer.rb, line 2 def self._origin(name) alias_method "_origin_#{name}", name end
Public Instance Methods
ceil(ndigits = 0, base: 0x10)
click to toggle source
# File lib/ruby_hex/integer.rb, line 36 def ceil(ndigits = 0, base: 0x10) -(-self).floor(ndigits, base: base) end
digits(base = 0x10)
click to toggle source
# File lib/ruby_hex/integer.rb, line 13 def digits(base = 0x10) _origin_digits(base) end
floor(ndigits = 0, base: 0x10)
click to toggle source
# File lib/ruby_hex/integer.rb, line 41 def floor(ndigits = 0, base: 0x10) return self if ndigits >= 0 ndigits = -ndigits.to_i self - self % base**ndigits end
inspect(base: 0x10)
click to toggle source
# File lib/ruby_hex/integer.rb, line 18 def inspect(base: 0x10) per = case base when 0x2 '0b' when 0x10 '0x' when 0x8 '0' when 0xa '' else raise ArgumentError, "base #{base} can't inspect" end "#{'-' if negative?}#{per}#{abs.to_s(base)}" end
round(ndigits = 0, half: :up, base: 0x10)
click to toggle source
# File lib/ruby_hex/integer.rb, line 54 def round(ndigits = 0, half: :up, base: 0x10) return self if ndigits >= 0 ndigits = ndigits.to_i half = :up if half.nil? n = self % base**-ndigits / base**(-ndigits - 0x1) case n <=> (base / 0x2) when -1 floor(ndigits, base: base) when 1 ceil(ndigits, base: base) when 0 case half when :up (negative? ? -1 : 1) * abs.ceil(ndigits, base: base) when :down truncate(ndigits, base: base) when :even fl = floor(ndigits, base: base) if (fl % base**(-ndigits + 0x1) / base**-ndigits).even? fl else ceil(ndigits, base: base) end else raise ArgumentError, "invalid rounding mode: #{half}" end end end
to_s(base = 0x10)
click to toggle source
# File lib/ruby_hex/integer.rb, line 8 def to_s(base = 0x10) _origin_to_s(base) end
truncate(ndigits = 0, base: 0x10)
click to toggle source
# File lib/ruby_hex/integer.rb, line 49 def truncate(ndigits = 0, base: 0x10) (negative? ? -0x1 : 0x1) * abs.floor(ndigits, base: base) end